Sync with L2JServer Feb 7th 2015.
This commit is contained in:
@@ -242,6 +242,8 @@ public abstract class AbstractInstance extends AbstractNpcAI
|
||||
{
|
||||
case ALL:
|
||||
{
|
||||
player.stopAllEffectsExceptThoseThatLastThroughDeath();
|
||||
|
||||
final L2Summon pet = player.getPet();
|
||||
if (pet != null)
|
||||
{
|
||||
|
@@ -27,6 +27,7 @@ import java.util.logging.Level;
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.ThreadPoolManager;
|
||||
import com.l2jserver.gameserver.ai.CtrlIntention;
|
||||
import com.l2jserver.gameserver.enums.ChatType;
|
||||
import com.l2jserver.gameserver.instancemanager.InstanceManager;
|
||||
import com.l2jserver.gameserver.model.L2Object;
|
||||
import com.l2jserver.gameserver.model.L2Party;
|
||||
@@ -41,7 +42,6 @@ import com.l2jserver.gameserver.model.quest.QuestState;
|
||||
import com.l2jserver.gameserver.model.skills.Skill;
|
||||
import com.l2jserver.gameserver.network.NpcStringId;
|
||||
import com.l2jserver.gameserver.network.SystemMessageId;
|
||||
import com.l2jserver.gameserver.network.clientpackets.Say2;
|
||||
import com.l2jserver.gameserver.network.serverpackets.Earthquake;
|
||||
import com.l2jserver.gameserver.network.serverpackets.NpcSay;
|
||||
import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
|
||||
@@ -345,7 +345,7 @@ public abstract class Chamber extends AbstractInstance
|
||||
{
|
||||
if (npc.getId() == ROOM_GATEKEEPER_LAST)
|
||||
{
|
||||
npc.broadcastPacket(new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npc.getId(), NpcStringId.MINUTES_ARE_ADDED_TO_THE_REMAINING_TIME_IN_THE_INSTANT_ZONE));
|
||||
npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.MINUTES_ARE_ADDED_TO_THE_REMAINING_TIME_IN_THE_INSTANT_ZONE));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -30,6 +30,7 @@ import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.GeoData;
|
||||
import com.l2jserver.gameserver.ai.CtrlIntention;
|
||||
import com.l2jserver.gameserver.datatables.SkillData;
|
||||
import com.l2jserver.gameserver.enums.ChatType;
|
||||
import com.l2jserver.gameserver.enums.TrapAction;
|
||||
import com.l2jserver.gameserver.instancemanager.InstanceManager;
|
||||
import com.l2jserver.gameserver.model.L2Object;
|
||||
@@ -1312,7 +1313,7 @@ public final class CrystalCaverns extends AbstractInstance
|
||||
world._alarm = addSpawn(ALARMID, spawnLoc[0], spawnLoc[1], spawnLoc[2], 10800, false, 0, false, world.getInstanceId());
|
||||
world._alarm.disableCoreAI(true);
|
||||
world._alarm.setIsImmobilized(true);
|
||||
world._alarm.broadcastPacket(new CreatureSay(world._alarm.getObjectId(), 1, world._alarm.getName(), NpcStringId.AN_ALARM_HAS_BEEN_SET_OFF_EVERYBODY_WILL_BE_IN_DANGER_IF_THEY_ARE_NOT_TAKEN_CARE_OF_IMMEDIATELY));
|
||||
world._alarm.broadcastPacket(new CreatureSay(world._alarm.getObjectId(), ChatType.SHOUT, world._alarm.getName(), NpcStringId.AN_ALARM_HAS_BEEN_SET_OFF_EVERYBODY_WILL_BE_IN_DANGER_IF_THEY_ARE_NOT_TAKEN_CARE_OF_IMMEDIATELY));
|
||||
}
|
||||
}
|
||||
else if (event.equalsIgnoreCase("baylor_skill"))
|
||||
@@ -1332,12 +1333,12 @@ public final class CrystalCaverns extends AbstractInstance
|
||||
if ((nowHp < (maxHp * 0.15)) && (world._raidStatus == 2))
|
||||
{
|
||||
npc.doCast(SkillData.getInstance().getSkill(5225, 1));
|
||||
npc.broadcastPacket(new CreatureSay(npc.getObjectId(), 1, npc.getName(), NpcStringId.DEMON_KING_BELETH_GIVE_ME_THE_POWER_AAAHH));
|
||||
npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.SHOUT, npc.getName(), NpcStringId.DEMON_KING_BELETH_GIVE_ME_THE_POWER_AAAHH));
|
||||
}
|
||||
else if ((rand < 10) || (nowHp < (maxHp * 0.15)))
|
||||
{
|
||||
npc.doCast(SkillData.getInstance().getSkill(5225, 1));
|
||||
npc.broadcastPacket(new CreatureSay(npc.getObjectId(), 1, npc.getName(), NpcStringId.DEMON_KING_BELETH_GIVE_ME_THE_POWER_AAAHH));
|
||||
npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.SHOUT, npc.getName(), NpcStringId.DEMON_KING_BELETH_GIVE_ME_THE_POWER_AAAHH));
|
||||
startQuestTimer("baylor_remove_invul", 30000, world._baylor, null);
|
||||
}
|
||||
}
|
||||
@@ -1407,7 +1408,7 @@ public final class CrystalCaverns extends AbstractInstance
|
||||
{
|
||||
if (getRandom(100) < 5)
|
||||
{
|
||||
npc.broadcastPacket(new CreatureSay(npc.getObjectId(), 1, npc.getName(), NpcStringId.AH_I_M_HUNGRY));
|
||||
npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.SHOUT, npc.getName(), NpcStringId.AH_I_M_HUNGRY));
|
||||
}
|
||||
startQuestTimer("autoFood", 2000, npc, null);
|
||||
}
|
||||
|
@@ -22,6 +22,7 @@ import instances.AbstractInstance;
|
||||
import javolution.util.FastList;
|
||||
import javolution.util.FastMap;
|
||||
|
||||
import com.l2jserver.gameserver.enums.ChatType;
|
||||
import com.l2jserver.gameserver.instancemanager.InstanceManager;
|
||||
import com.l2jserver.gameserver.model.L2Party;
|
||||
import com.l2jserver.gameserver.model.Location;
|
||||
@@ -33,7 +34,6 @@ import com.l2jserver.gameserver.model.instancezone.InstanceWorld;
|
||||
import com.l2jserver.gameserver.model.skills.Skill;
|
||||
import com.l2jserver.gameserver.network.NpcStringId;
|
||||
import com.l2jserver.gameserver.network.SystemMessageId;
|
||||
import com.l2jserver.gameserver.network.clientpackets.Say2;
|
||||
import com.l2jserver.gameserver.network.serverpackets.MagicSkillUse;
|
||||
import com.l2jserver.gameserver.network.serverpackets.NpcSay;
|
||||
import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
|
||||
@@ -723,11 +723,11 @@ public final class DarkCloudMansion extends AbstractInstance
|
||||
FifthRoom.npcList.add(thisnpc);
|
||||
if ((temp[idx] == 1) && (getRandom(100) < 95))
|
||||
{
|
||||
thisnpc.npc.broadcastPacket(new NpcSay(thisnpc.npc.getObjectId(), 0, thisnpc.npc.getId(), _spawnChat[getRandom(_spawnChat.length)]));
|
||||
thisnpc.npc.broadcastPacket(new NpcSay(thisnpc.npc.getObjectId(), ChatType.NPC_GENERAL, thisnpc.npc.getId(), _spawnChat[getRandom(_spawnChat.length)]));
|
||||
}
|
||||
else if ((temp[idx] != 1) && (getRandom(100) < 67))
|
||||
{
|
||||
thisnpc.npc.broadcastPacket(new NpcSay(thisnpc.npc.getObjectId(), 0, thisnpc.npc.getId(), _spawnChat[getRandom(_spawnChat.length)]));
|
||||
thisnpc.npc.broadcastPacket(new NpcSay(thisnpc.npc.getObjectId(), ChatType.NPC_GENERAL, thisnpc.npc.getId(), _spawnChat[getRandom(_spawnChat.length)]));
|
||||
}
|
||||
idx++;
|
||||
}
|
||||
@@ -817,14 +817,14 @@ public final class DarkCloudMansion extends AbstractInstance
|
||||
mob.count = 1;
|
||||
if (mob.status == 1)
|
||||
{
|
||||
mob.npc.broadcastPacket(new NpcSay(mob.npc.getObjectId(), Say2.NPC_ALL, mob.npc.getId(), _successChat[getRandom(_successChat.length)]));
|
||||
mob.npc.broadcastPacket(new NpcSay(mob.npc.getObjectId(), ChatType.NPC_GENERAL, mob.npc.getId(), _successChat[getRandom(_successChat.length)]));
|
||||
FifthRoom.founded += 1;
|
||||
startQuestTimer("decayMe", 1500, npc, player);
|
||||
}
|
||||
else
|
||||
{
|
||||
FifthRoom.reset = 1;
|
||||
mob.npc.broadcastPacket(new NpcSay(mob.npc.getObjectId(), Say2.NPC_ALL, mob.npc.getId(), _faildChat[getRandom(_faildChat.length)]));
|
||||
mob.npc.broadcastPacket(new NpcSay(mob.npc.getObjectId(), ChatType.NPC_GENERAL, mob.npc.getId(), _faildChat[getRandom(_faildChat.length)]));
|
||||
startQuestTimer("decayChatBelethSamples", 4000, npc, player);
|
||||
startQuestTimer("decayBelethSamples", 4500, npc, player);
|
||||
}
|
||||
@@ -991,7 +991,7 @@ public final class DarkCloudMansion extends AbstractInstance
|
||||
{
|
||||
if (mob.status == 1)
|
||||
{
|
||||
mob.npc.broadcastPacket(new NpcSay(mob.npc.getObjectId(), Say2.NPC_ALL, mob.npc.getId(), _decayChat[getRandom(_decayChat.length)]));
|
||||
mob.npc.broadcastPacket(new NpcSay(mob.npc.getObjectId(), ChatType.NPC_GENERAL, mob.npc.getId(), _decayChat[getRandom(_decayChat.length)]));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -26,6 +26,7 @@ import java.util.Map;
|
||||
import javolution.util.FastList;
|
||||
import quests.Q00196_SevenSignsSealOfTheEmperor.Q00196_SevenSignsSealOfTheEmperor;
|
||||
|
||||
import com.l2jserver.gameserver.enums.ChatType;
|
||||
import com.l2jserver.gameserver.instancemanager.InstanceManager;
|
||||
import com.l2jserver.gameserver.model.Location;
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
@@ -35,7 +36,6 @@ import com.l2jserver.gameserver.model.instancezone.InstanceWorld;
|
||||
import com.l2jserver.gameserver.model.quest.QuestState;
|
||||
import com.l2jserver.gameserver.network.NpcStringId;
|
||||
import com.l2jserver.gameserver.network.SystemMessageId;
|
||||
import com.l2jserver.gameserver.network.clientpackets.Say2;
|
||||
import com.l2jserver.gameserver.network.serverpackets.NpcSay;
|
||||
import com.l2jserver.gameserver.util.Util;
|
||||
|
||||
@@ -224,12 +224,12 @@ public final class DisciplesNecropolisPast extends AbstractInstance
|
||||
{
|
||||
if (caster.isScriptValue(0))
|
||||
{
|
||||
caster.broadcastPacket(new NpcSay(caster.getObjectId(), Say2.NPC_SHOUT, caster.getId(), NpcStringId.YOU_SUCH_A_FOOL_THE_VICTORY_OVER_THIS_WAR_BELONGS_TO_SHILEN));
|
||||
caster.broadcastPacket(new NpcSay(caster.getObjectId(), ChatType.NPC_SHOUT, caster.getId(), NpcStringId.YOU_SUCH_A_FOOL_THE_VICTORY_OVER_THIS_WAR_BELONGS_TO_SHILEN));
|
||||
caster.setScriptValue(1);
|
||||
}
|
||||
else if (getRandom(100) < 10)
|
||||
{
|
||||
caster.broadcastPacket(new NpcSay(caster.getObjectId(), Say2.NPC_SHOUT, caster.getId(), LILITH_SHOUT[getRandom(3)]));
|
||||
caster.broadcastPacket(new NpcSay(caster.getObjectId(), ChatType.NPC_SHOUT, caster.getId(), LILITH_SHOUT[getRandom(3)]));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -243,10 +243,10 @@ public final class DisciplesNecropolisPast extends AbstractInstance
|
||||
{
|
||||
if (caster.isScriptValue(0))
|
||||
{
|
||||
caster.broadcastPacket(new NpcSay(caster.getObjectId(), Say2.NPC_SHOUT, caster.getId(), NpcStringId.FOR_THE_ETERNITY_OF_EINHASAD));
|
||||
caster.broadcastPacket(new NpcSay(caster.getObjectId(), ChatType.NPC_SHOUT, caster.getId(), NpcStringId.FOR_THE_ETERNITY_OF_EINHASAD));
|
||||
if (Util.checkIfInRange(2000, caster, player, true))
|
||||
{
|
||||
player.sendPacket(new NpcSay(caster.getObjectId(), Say2.TELL, caster.getId(), NpcStringId.MY_POWER_S_WEAKENING_HURRY_AND_TURN_ON_THE_SEALING_DEVICE));
|
||||
player.sendPacket(new NpcSay(caster.getObjectId(), ChatType.TELL, caster.getId(), NpcStringId.MY_POWER_S_WEAKENING_HURRY_AND_TURN_ON_THE_SEALING_DEVICE));
|
||||
}
|
||||
caster.setScriptValue(1);
|
||||
}
|
||||
@@ -256,28 +256,28 @@ public final class DisciplesNecropolisPast extends AbstractInstance
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
caster.broadcastPacket(new NpcSay(caster.getObjectId(), Say2.NPC_SHOUT, caster.getId(), NpcStringId.DEAR_SHILLIEN_S_OFFSPRINGS_YOU_ARE_NOT_CAPABLE_OF_CONFRONTING_US));
|
||||
caster.broadcastPacket(new NpcSay(caster.getObjectId(), ChatType.NPC_SHOUT, caster.getId(), NpcStringId.DEAR_SHILLIEN_S_OFFSPRINGS_YOU_ARE_NOT_CAPABLE_OF_CONFRONTING_US));
|
||||
if (Util.checkIfInRange(2000, caster, player, true))
|
||||
{
|
||||
player.sendPacket(new NpcSay(caster.getObjectId(), Say2.TELL, caster.getId(), NpcStringId.ALL_4_SEALING_DEVICES_MUST_BE_TURNED_ON));
|
||||
player.sendPacket(new NpcSay(caster.getObjectId(), ChatType.TELL, caster.getId(), NpcStringId.ALL_4_SEALING_DEVICES_MUST_BE_TURNED_ON));
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
caster.broadcastPacket(new NpcSay(caster.getObjectId(), Say2.NPC_SHOUT, caster.getId(), NpcStringId.I_LL_SHOW_YOU_THE_REAL_POWER_OF_EINHASAD));
|
||||
caster.broadcastPacket(new NpcSay(caster.getObjectId(), ChatType.NPC_SHOUT, caster.getId(), NpcStringId.I_LL_SHOW_YOU_THE_REAL_POWER_OF_EINHASAD));
|
||||
if (Util.checkIfInRange(2000, caster, player, true))
|
||||
{
|
||||
player.sendPacket(new NpcSay(caster.getObjectId(), Say2.TELL, caster.getId(), NpcStringId.LILITH_ATTACK_IS_GETTING_STRONGER_GO_AHEAD_AND_TURN_IT_ON));
|
||||
player.sendPacket(new NpcSay(caster.getObjectId(), ChatType.TELL, caster.getId(), NpcStringId.LILITH_ATTACK_IS_GETTING_STRONGER_GO_AHEAD_AND_TURN_IT_ON));
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
caster.broadcastPacket(new NpcSay(caster.getObjectId(), Say2.NPC_SHOUT, caster.getId(), NpcStringId.DEAR_MILITARY_FORCE_OF_LIGHT_GO_DESTROY_THE_OFFSPRINGS_OF_SHILLIEN));
|
||||
caster.broadcastPacket(new NpcSay(caster.getObjectId(), ChatType.NPC_SHOUT, caster.getId(), NpcStringId.DEAR_MILITARY_FORCE_OF_LIGHT_GO_DESTROY_THE_OFFSPRINGS_OF_SHILLIEN));
|
||||
if (Util.checkIfInRange(2000, caster, player, true))
|
||||
{
|
||||
player.sendPacket(new NpcSay(caster.getObjectId(), Say2.TELL, caster.getId(), NpcStringId.DEAR_S1_GIVE_ME_MORE_STRENGTH).addStringParameter(player.getName()));
|
||||
player.sendPacket(new NpcSay(caster.getObjectId(), ChatType.TELL, caster.getId(), NpcStringId.DEAR_S1_GIVE_ME_MORE_STRENGTH).addStringParameter(player.getName()));
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -303,7 +303,7 @@ public final class DisciplesNecropolisPast extends AbstractInstance
|
||||
{
|
||||
if (npc.isScriptValue(0))
|
||||
{
|
||||
npc.broadcastPacket(new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npc.getId(), NpcStringId.THIS_PLACE_ONCE_BELONGED_TO_LORD_SHILEN));
|
||||
npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.THIS_PLACE_ONCE_BELONGED_TO_LORD_SHILEN));
|
||||
npc.setScriptValue(1);
|
||||
}
|
||||
break;
|
||||
@@ -313,7 +313,7 @@ public final class DisciplesNecropolisPast extends AbstractInstance
|
||||
{
|
||||
if (npc.isScriptValue(0))
|
||||
{
|
||||
npc.broadcastPacket(new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npc.getId(), NpcStringId.WHO_DARES_ENTER_THIS_PLACE));
|
||||
npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.WHO_DARES_ENTER_THIS_PLACE));
|
||||
npc.setScriptValue(1);
|
||||
}
|
||||
break;
|
||||
@@ -323,7 +323,7 @@ public final class DisciplesNecropolisPast extends AbstractInstance
|
||||
{
|
||||
if (npc.isScriptValue(0))
|
||||
{
|
||||
npc.broadcastPacket(new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npc.getId(), NpcStringId.THOSE_WHO_ARE_AFRAID_SHOULD_GET_AWAY_AND_THOSE_WHO_ARE_BRAVE_SHOULD_FIGHT));
|
||||
npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.THOSE_WHO_ARE_AFRAID_SHOULD_GET_AWAY_AND_THOSE_WHO_ARE_BRAVE_SHOULD_FIGHT));
|
||||
npc.setScriptValue(1);
|
||||
}
|
||||
break;
|
||||
@@ -332,7 +332,7 @@ public final class DisciplesNecropolisPast extends AbstractInstance
|
||||
{
|
||||
if (npc.isScriptValue(0))
|
||||
{
|
||||
npc.broadcastPacket(new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npc.getId(), NpcStringId.LEAVE_NOW));
|
||||
npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.LEAVE_NOW));
|
||||
npc.setScriptValue(1);
|
||||
}
|
||||
break;
|
||||
@@ -388,19 +388,19 @@ public final class DisciplesNecropolisPast extends AbstractInstance
|
||||
case LILIM_MAGUS:
|
||||
case LILIM_GREAT_MAGUS:
|
||||
{
|
||||
npc.broadcastPacket(new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npc.getId(), NpcStringId.LORD_SHILEN_SOME_DAY_YOU_WILL_ACCOMPLISH_THIS_MISSION));
|
||||
npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.LORD_SHILEN_SOME_DAY_YOU_WILL_ACCOMPLISH_THIS_MISSION));
|
||||
break;
|
||||
}
|
||||
case LILIM_KNIGHT_ERRANT:
|
||||
case LILIM_KNIGHT:
|
||||
case LILIM_GUARD_KNIGHT:
|
||||
{
|
||||
npc.broadcastPacket(new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npc.getId(), NpcStringId.WHY_ARE_YOU_GETTING_IN_OUR_WAY));
|
||||
npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.WHY_ARE_YOU_GETTING_IN_OUR_WAY));
|
||||
break;
|
||||
}
|
||||
case LILIM_SLAYER:
|
||||
{
|
||||
npc.broadcastPacket(new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npc.getId(), NpcStringId.FOR_SHILEN));
|
||||
npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.FOR_SHILEN));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@@ -27,6 +27,7 @@ import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import com.l2jserver.gameserver.ai.CtrlIntention;
|
||||
import com.l2jserver.gameserver.enums.CategoryType;
|
||||
import com.l2jserver.gameserver.enums.ChatType;
|
||||
import com.l2jserver.gameserver.instancemanager.InstanceManager;
|
||||
import com.l2jserver.gameserver.model.Location;
|
||||
import com.l2jserver.gameserver.model.actor.L2Character;
|
||||
@@ -36,7 +37,6 @@ import com.l2jserver.gameserver.model.holders.SkillHolder;
|
||||
import com.l2jserver.gameserver.model.instancezone.InstanceWorld;
|
||||
import com.l2jserver.gameserver.model.zone.L2ZoneType;
|
||||
import com.l2jserver.gameserver.network.NpcStringId;
|
||||
import com.l2jserver.gameserver.network.clientpackets.Say2;
|
||||
import com.l2jserver.gameserver.network.serverpackets.ExSendUIEvent;
|
||||
import com.l2jserver.gameserver.network.serverpackets.ExShowScreenMessage;
|
||||
import com.l2jserver.gameserver.util.Util;
|
||||
@@ -154,42 +154,42 @@ public final class HarnakUndergroundRuins extends AbstractInstance
|
||||
}
|
||||
case "razkan_say":
|
||||
{
|
||||
broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.COME_ATTACK_ME_IF_YOU_DARE);
|
||||
broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.COME_ATTACK_ME_IF_YOU_DARE);
|
||||
break;
|
||||
}
|
||||
case "bathus_say":
|
||||
{
|
||||
broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.IT_S_THE_END_FOR_YOU_TRAITOR);
|
||||
broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.IT_S_THE_END_FOR_YOU_TRAITOR);
|
||||
break;
|
||||
}
|
||||
case "bamonti_say":
|
||||
{
|
||||
broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.I_WANT_TO_HEAR_YOU_CRY);
|
||||
broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.I_WANT_TO_HEAR_YOU_CRY);
|
||||
break;
|
||||
}
|
||||
case "carcass_say":
|
||||
{
|
||||
broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.I_WANT_TO_HEAR_YOU_CRY);
|
||||
broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.I_WANT_TO_HEAR_YOU_CRY);
|
||||
break;
|
||||
}
|
||||
case "khan_say":
|
||||
{
|
||||
broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.YOU_LL_HAVE_TO_KILL_US_FIRST);
|
||||
broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.YOU_LL_HAVE_TO_KILL_US_FIRST);
|
||||
break;
|
||||
}
|
||||
case "seknus_say":
|
||||
{
|
||||
broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.LETS_SEE_WHAT_YOU_ARE_MADE_OF);
|
||||
broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.LETS_SEE_WHAT_YOU_ARE_MADE_OF);
|
||||
break;
|
||||
}
|
||||
case "lotus_say":
|
||||
{
|
||||
broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.REPENT_AND_YOUR_DEATH_WILL_BE_QUICK);
|
||||
broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.REPENT_AND_YOUR_DEATH_WILL_BE_QUICK);
|
||||
break;
|
||||
}
|
||||
case "ele_say":
|
||||
{
|
||||
broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.DIE_TRAITOR);
|
||||
broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.DIE_TRAITOR);
|
||||
break;
|
||||
}
|
||||
case "spawn_npc1":
|
||||
@@ -205,7 +205,7 @@ public final class HarnakUndergroundRuins extends AbstractInstance
|
||||
{
|
||||
world.currentNpc = RAKZAN;
|
||||
razkan.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, NPC_ROOM1_LOC);
|
||||
broadcastNpcSay(razkan, Say2.NPC_ALL, NpcStringId.ARE_YOU_AGAINST_THE_WILL_OF_LIGHT);
|
||||
broadcastNpcSay(razkan, ChatType.NPC_GENERAL, NpcStringId.ARE_YOU_AGAINST_THE_WILL_OF_LIGHT);
|
||||
startQuestTimer("razkan_say", 1600, razkan, player);
|
||||
}
|
||||
world.setStatus(1);
|
||||
@@ -402,7 +402,7 @@ public final class HarnakUndergroundRuins extends AbstractInstance
|
||||
spawnedNpcs = spawnGroup("seal", world.getInstanceId());
|
||||
for (L2Npc spawnedNpc : spawnedNpcs)
|
||||
{
|
||||
broadcastNpcSay(spawnedNpc, Say2.NPC_ALL, NpcStringId.DISABLE_DEVICE_WILL_GO_OUT_OF_CONTROL_IN_1_MINUTE);
|
||||
broadcastNpcSay(spawnedNpc, ChatType.NPC_GENERAL, NpcStringId.DISABLE_DEVICE_WILL_GO_OUT_OF_CONTROL_IN_1_MINUTE);
|
||||
startQuestTimer("seal_say", 10000, spawnedNpc, player);
|
||||
}
|
||||
}
|
||||
@@ -439,52 +439,52 @@ public final class HarnakUndergroundRuins extends AbstractInstance
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
broadcastNpcSay(npc, Say2.NPC_SHOUT, NpcStringId.SECONDS_ARE_REMAINING41);
|
||||
broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.SECONDS_ARE_REMAINING41);
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
broadcastNpcSay(npc, Say2.NPC_SHOUT, NpcStringId.SECONDS_ARE_REMAINING42);
|
||||
broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.SECONDS_ARE_REMAINING42);
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
broadcastNpcSay(npc, Say2.NPC_SHOUT, NpcStringId.SECONDS_ARE_REMAINING43);
|
||||
broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.SECONDS_ARE_REMAINING43);
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
broadcastNpcSay(npc, Say2.NPC_SHOUT, NpcStringId.SECONDS_ARE_REMAINING44);
|
||||
broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.SECONDS_ARE_REMAINING44);
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
broadcastNpcSay(npc, Say2.NPC_SHOUT, NpcStringId.SECONDS_ARE_REMAINING45);
|
||||
broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.SECONDS_ARE_REMAINING45);
|
||||
break;
|
||||
}
|
||||
case 5:
|
||||
{
|
||||
broadcastNpcSay(npc, Say2.NPC_SHOUT, NpcStringId.SECONDS);
|
||||
broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.SECONDS);
|
||||
break;
|
||||
}
|
||||
case 6:
|
||||
{
|
||||
broadcastNpcSay(npc, Say2.NPC_SHOUT, NpcStringId.SECONDS2);
|
||||
broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.SECONDS2);
|
||||
break;
|
||||
}
|
||||
case 7:
|
||||
{
|
||||
broadcastNpcSay(npc, Say2.NPC_SHOUT, NpcStringId.SECONDS3);
|
||||
broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.SECONDS3);
|
||||
break;
|
||||
}
|
||||
case 8:
|
||||
{
|
||||
broadcastNpcSay(npc, Say2.NPC_SHOUT, NpcStringId.SECONDS4);
|
||||
broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.SECONDS4);
|
||||
break;
|
||||
}
|
||||
case 9:
|
||||
{
|
||||
broadcastNpcSay(npc, Say2.NPC_SHOUT, NpcStringId.SECOND);
|
||||
broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.SECOND);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -515,8 +515,8 @@ public final class HarnakUndergroundRuins extends AbstractInstance
|
||||
{
|
||||
showOnScreenMsg(player, NpcStringId.I_HERMUNCUS_GIVE_MY_POWER_TO_THOSE_WHO_FIGHT_FOR_ME, ExShowScreenMessage.TOP_CENTER, 5000);
|
||||
|
||||
broadcastNpcSay(npc, Say2.TELL, NpcStringId.RECEIVE_THIS_POWER_FORM_THE_ANCIENT_GIANT);
|
||||
broadcastNpcSay(npc, Say2.TELL, NpcStringId.USE_THIS_NEW_POWER_WHEN_THE_TIME_IS_RIGHT);
|
||||
broadcastNpcSay(npc, ChatType.TELL, NpcStringId.RECEIVE_THIS_POWER_FORM_THE_ANCIENT_GIANT);
|
||||
broadcastNpcSay(npc, ChatType.TELL, NpcStringId.USE_THIS_NEW_POWER_WHEN_THE_TIME_IS_RIGHT);
|
||||
|
||||
startQuestTimer("message4", 3000, npc, player);
|
||||
}
|
||||
@@ -567,7 +567,7 @@ public final class HarnakUndergroundRuins extends AbstractInstance
|
||||
if (bathius != null)
|
||||
{
|
||||
bathius.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, NPC_ROOM1_LOC);
|
||||
broadcastNpcSay(bathius, Say2.NPC_ALL, NpcStringId.ARE_YOU_PLANNING_TO_BETRAY_THE_GODS_AND_FOLLOW_A_GIANT);
|
||||
broadcastNpcSay(bathius, ChatType.NPC_GENERAL, NpcStringId.ARE_YOU_PLANNING_TO_BETRAY_THE_GODS_AND_FOLLOW_A_GIANT);
|
||||
startQuestTimer("bathus_say", 2600, bathius, killer);
|
||||
world.currentNpc = KRAKIA_BATHUS;
|
||||
}
|
||||
@@ -579,7 +579,7 @@ public final class HarnakUndergroundRuins extends AbstractInstance
|
||||
if (bamonti != null)
|
||||
{
|
||||
bamonti.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, NPC_ROOM1_LOC);
|
||||
broadcastNpcSay(bamonti, Say2.NPC_ALL, NpcStringId.HAHA);
|
||||
broadcastNpcSay(bamonti, ChatType.NPC_GENERAL, NpcStringId.HAHA);
|
||||
startQuestTimer("bamonti_say", 2600, bamonti, killer);
|
||||
world.currentNpc = BAMONTI;
|
||||
}
|
||||
@@ -591,7 +591,7 @@ public final class HarnakUndergroundRuins extends AbstractInstance
|
||||
if (carcass != null)
|
||||
{
|
||||
carcass.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, NPC_ROOM1_LOC);
|
||||
broadcastNpcSay(carcass, Say2.NPC_ALL, NpcStringId.HAHA);
|
||||
broadcastNpcSay(carcass, ChatType.NPC_GENERAL, NpcStringId.HAHA);
|
||||
startQuestTimer("carcass_say", 2600, carcass, killer);
|
||||
world.currentNpc = KRAKIA_CARCASS;
|
||||
}
|
||||
@@ -603,7 +603,7 @@ public final class HarnakUndergroundRuins extends AbstractInstance
|
||||
if (khan != null)
|
||||
{
|
||||
khan.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, NPC_ROOM1_LOC);
|
||||
broadcastNpcSay(khan, Say2.NPC_ALL, NpcStringId.YOU_WILL_NOT_FREE_HERMUNCUS);
|
||||
broadcastNpcSay(khan, ChatType.NPC_GENERAL, NpcStringId.YOU_WILL_NOT_FREE_HERMUNCUS);
|
||||
startQuestTimer("khan_say", 2600, khan, killer);
|
||||
world.currentNpc = WEISS_KHAN;
|
||||
}
|
||||
@@ -615,7 +615,7 @@ public final class HarnakUndergroundRuins extends AbstractInstance
|
||||
if (seknus != null)
|
||||
{
|
||||
seknus.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, NPC_ROOM1_LOC);
|
||||
broadcastNpcSay(seknus, Say2.NPC_ALL, NpcStringId.MORTAL);
|
||||
broadcastNpcSay(seknus, ChatType.NPC_GENERAL, NpcStringId.MORTAL);
|
||||
startQuestTimer("seknus_say", 2600, seknus, killer);
|
||||
world.currentNpc = SEKNUS;
|
||||
}
|
||||
@@ -627,7 +627,7 @@ public final class HarnakUndergroundRuins extends AbstractInstance
|
||||
if (lotus != null)
|
||||
{
|
||||
lotus.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, NPC_ROOM1_LOC);
|
||||
broadcastNpcSay(lotus, Say2.NPC_ALL, NpcStringId.TRYING_TO_FREE_HERMUNCUS);
|
||||
broadcastNpcSay(lotus, ChatType.NPC_GENERAL, NpcStringId.TRYING_TO_FREE_HERMUNCUS);
|
||||
startQuestTimer("lotus_say", 2600, lotus, killer);
|
||||
world.currentNpc = KRAKIA_LOTUS;
|
||||
}
|
||||
@@ -639,7 +639,7 @@ public final class HarnakUndergroundRuins extends AbstractInstance
|
||||
if (ele != null)
|
||||
{
|
||||
ele.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, NPC_ROOM1_LOC);
|
||||
broadcastNpcSay(ele, Say2.NPC_ALL, NpcStringId.YOU_WILL_NEVER_BREAK_THE_SEAL);
|
||||
broadcastNpcSay(ele, ChatType.NPC_GENERAL, NpcStringId.YOU_WILL_NEVER_BREAK_THE_SEAL);
|
||||
startQuestTimer("ele_say", 2600, ele, killer);
|
||||
world.currentNpc = WEISS_ELE;
|
||||
}
|
||||
|
@@ -22,6 +22,7 @@ import instances.AbstractInstance;
|
||||
import quests.Q10285_MeetingSirra.Q10285_MeetingSirra;
|
||||
|
||||
import com.l2jserver.gameserver.ai.CtrlIntention;
|
||||
import com.l2jserver.gameserver.enums.ChatType;
|
||||
import com.l2jserver.gameserver.instancemanager.InstanceManager;
|
||||
import com.l2jserver.gameserver.model.Location;
|
||||
import com.l2jserver.gameserver.model.actor.L2Attackable;
|
||||
@@ -34,7 +35,6 @@ import com.l2jserver.gameserver.model.quest.QuestState;
|
||||
import com.l2jserver.gameserver.model.skills.Skill;
|
||||
import com.l2jserver.gameserver.network.NpcStringId;
|
||||
import com.l2jserver.gameserver.network.SystemMessageId;
|
||||
import com.l2jserver.gameserver.network.clientpackets.Say2;
|
||||
|
||||
/**
|
||||
* Ice Queen's Castle instance zone.
|
||||
@@ -104,7 +104,7 @@ public final class IceQueensCastle extends AbstractInstance
|
||||
}
|
||||
case "TIMER_BLIZZARD":
|
||||
{
|
||||
broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.I_CAN_NO_LONGER_STAND_BY);
|
||||
broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.I_CAN_NO_LONGER_STAND_BY);
|
||||
npc.stopMove(null);
|
||||
npc.setTarget(player);
|
||||
npc.doCast(ETHERNAL_BLIZZARD.getSkill());
|
||||
@@ -154,7 +154,7 @@ public final class IceQueensCastle extends AbstractInstance
|
||||
startQuestTimer("ATTACK_KNIGHT", 5000, npc, null);
|
||||
}
|
||||
}
|
||||
broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.S1_MAY_THE_PROTECTION_OF_THE_GODS_BE_UPON_YOU, creature.getName());
|
||||
broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.S1_MAY_THE_PROTECTION_OF_THE_GODS_BE_UPON_YOU, creature.getName());
|
||||
}
|
||||
return super.onSeeCreature(npc, creature, isSummon);
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<html><body>Kegor:<br>
|
||||
Without you, we would have failed. I can't thank you enough.<br>
|
||||
Freya's last breath will flutter against your blade, I can feel it!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest IceQueensCastleHardBattle killFreya">Rest in peace!</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest IceQueensCastleHardBattle 18851-01.html">Can I have a second with you?</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest IceQueensCastleBattle killFreya">Rest in peace!</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest IceQueensCastleBattle 18851-01.html">Can I have a second with you?</Button>
|
||||
</body></html>
|
@@ -16,7 +16,7 @@
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package instances.IceQueensCastleNormalBattle;
|
||||
package instances.IceQueensCastleBattle;
|
||||
|
||||
import instances.AbstractInstance;
|
||||
|
||||
@@ -28,6 +28,7 @@ import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import quests.Q10286_ReunionWithSirra.Q10286_ReunionWithSirra;
|
||||
|
||||
import com.l2jserver.gameserver.ai.CtrlIntention;
|
||||
import com.l2jserver.gameserver.enums.ChatType;
|
||||
import com.l2jserver.gameserver.enums.MountType;
|
||||
import com.l2jserver.gameserver.instancemanager.InstanceManager;
|
||||
import com.l2jserver.gameserver.model.L2CommandChannel;
|
||||
@@ -50,19 +51,19 @@ import com.l2jserver.gameserver.model.skills.Skill;
|
||||
import com.l2jserver.gameserver.model.variables.NpcVariables;
|
||||
import com.l2jserver.gameserver.network.NpcStringId;
|
||||
import com.l2jserver.gameserver.network.SystemMessageId;
|
||||
import com.l2jserver.gameserver.network.clientpackets.Say2;
|
||||
import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
|
||||
import com.l2jserver.gameserver.network.serverpackets.ExChangeClientEffectInfo;
|
||||
import com.l2jserver.gameserver.network.serverpackets.ExSendUIEvent;
|
||||
import com.l2jserver.gameserver.network.serverpackets.OnEventTrigger;
|
||||
import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
|
||||
import com.l2jserver.gameserver.taskmanager.DecayTaskManager;
|
||||
import com.l2jserver.gameserver.util.Util;
|
||||
|
||||
/**
|
||||
* Ice Queen's Castle (Normal Battle) instance zone.
|
||||
* Ice Queen's Castle (Battle) instance zone.
|
||||
* @author St3eT
|
||||
*/
|
||||
public final class IceQueensCastleNormalBattle extends AbstractInstance
|
||||
public final class IceQueensCastleBattle extends AbstractInstance
|
||||
{
|
||||
protected class IQCNBWorld extends InstanceWorld
|
||||
{
|
||||
@@ -75,23 +76,29 @@ public final class IceQueensCastleNormalBattle extends AbstractInstance
|
||||
protected L2QuestGuardInstance supp_Kegor = null;
|
||||
protected boolean isSupportActive = false;
|
||||
protected boolean canSpawnMobs = true;
|
||||
protected boolean isHardCore = false;
|
||||
}
|
||||
|
||||
// Npcs
|
||||
private static final int FREYA_THRONE = 29177; // First freya
|
||||
private static final int FREYA_SPELLING = 29178; // Second freya
|
||||
private static final int FREYA_STAND = 29179; // Last freya
|
||||
private static final int FREYA_STAND_EASY = 29179; // Last freya - Easy mode
|
||||
private static final int FREYA_STAND_HARD = 29180; // Last freya - Hardcore mode
|
||||
private static final int INVISIBLE_NPC = 18919;
|
||||
private static final int KNIGHT = 18855; // Archery Knight
|
||||
private static final int KNIGHT_EASY = 18855; // Archery Knight - Easy mode
|
||||
private static final int KNIGHT_HARD = 18856; // Archery Knight - Hardcore mode
|
||||
private static final int GLACIER = 18853; // Glacier
|
||||
private static final int BREATH = 18854; // Archer's Breath
|
||||
private static final int GLAKIAS = 25699; // Glakias (Archery Knight Captain)
|
||||
private static final int GLAKIAS_EASY = 25699; // Glakias (Archery Knight Captain) - Easy mode
|
||||
private static final int GLAKIAS_HARD = 25700; // Glakias (Archery Knight Captain) - Hardcore mode
|
||||
private static final int SIRRA = 32762; // Sirra
|
||||
private static final int JINIA = 32781; // Jinia
|
||||
private static final int SUPP_JINIA = 18850; // Jinia
|
||||
private static final int SUPP_KEGOR = 18851; // Kegor
|
||||
// Skills
|
||||
private static final SkillHolder BLIZZARD = new SkillHolder(6274, 1); // Eternal Blizzard
|
||||
private static final SkillHolder BLIZZARD_EASY = new SkillHolder(6274, 1); // Eternal Blizzard
|
||||
private static final SkillHolder BLIZZARD_HARD = new SkillHolder(6275, 1); // Eternal Blizzard
|
||||
private static final SkillHolder BLIZZARD_FORCE = new SkillHolder(6697, 1); // Eternal Blizzard
|
||||
private static final SkillHolder BLIZZARD_BREATH = new SkillHolder(6299, 1); // Breath of Ice Palace - Ice Storm
|
||||
private static final SkillHolder SUICIDE_BREATH = new SkillHolder(6300, 1); // Self-Destruction
|
||||
private static final SkillHolder JINIA_SUPPORT = new SkillHolder(6288, 1); // Jinia's Prayer
|
||||
@@ -101,13 +108,15 @@ public final class IceQueensCastleNormalBattle extends AbstractInstance
|
||||
private static final SkillHolder POWER_STRIKE = new SkillHolder(6293, 1); // Power Strike
|
||||
private static final SkillHolder POINT_TARGET = new SkillHolder(6295, 1); // Point Target
|
||||
private static final SkillHolder CYLINDER_THROW = new SkillHolder(6297, 1); // Cylinder Throw
|
||||
private static final SkillHolder SelfRangeBuff = new SkillHolder(6294, 1); // Leader's Roar
|
||||
private static final SkillHolder SELF_RANGE_BUFF = new SkillHolder(6294, 1); // Leader's Roar
|
||||
private static final SkillHolder LEADER_RUSH = new SkillHolder(6296, 1); // Rush
|
||||
private static final SkillHolder ANTI_STRIDER = new SkillHolder(4258, 1); // Hinder Strider
|
||||
private static final SkillHolder ICE_BALL = new SkillHolder(6278, 1); // Ice Ball
|
||||
private static final SkillHolder SUMMON_ELEMENTAL = new SkillHolder(6277, 1); // Summon Spirits
|
||||
private static final SkillHolder SELF_NOVA = new SkillHolder(6279, 1); // Attack Nearby Range
|
||||
private static final SkillHolder REFLECT_MAGIC = new SkillHolder(6282, 1); // Reflect Magic
|
||||
private static final SkillHolder FREYA_ANGER = new SkillHolder(6285, 1); // Rage of Ice
|
||||
private static final SkillHolder FREYA_BUFF = new SkillHolder(6284, 1); // Freya's Bless
|
||||
// Locations
|
||||
private static final Location FREYA_SPAWN = new Location(114720, -117085, -11088, 15956);
|
||||
private static final Location FREYA_SPELLING_SPAWN = new Location(114723, -117502, -10672, 15956);
|
||||
@@ -158,26 +167,41 @@ public final class IceQueensCastleNormalBattle extends AbstractInstance
|
||||
private static final int MAX_PLAYERS = 27;
|
||||
private static final int MIN_PLAYERS = 10;
|
||||
private static final int MIN_LEVEL = 82;
|
||||
private static final int TEMPLATE_ID = 139; // Ice Queen's Castle
|
||||
private static final int TEMPLATE_ID_EASY = 139; // Ice Queen's Castle
|
||||
private static final int TEMPLATE_ID_HARD = 144; // Ice Queen's Castle (Epic)
|
||||
private static final int DOOR_ID = 23140101;
|
||||
|
||||
public IceQueensCastleNormalBattle()
|
||||
private static int[] EMMITERS =
|
||||
{
|
||||
super(IceQueensCastleNormalBattle.class.getSimpleName());
|
||||
23140202,
|
||||
23140204,
|
||||
23140206,
|
||||
23140208,
|
||||
23140212,
|
||||
23140214,
|
||||
23140216,
|
||||
};
|
||||
|
||||
public IceQueensCastleBattle()
|
||||
{
|
||||
super(IceQueensCastleBattle.class.getSimpleName());
|
||||
addStartNpc(SIRRA, SUPP_KEGOR, SUPP_JINIA);
|
||||
addFirstTalkId(SUPP_KEGOR, SUPP_JINIA);
|
||||
addTalkId(SIRRA, JINIA, SUPP_KEGOR);
|
||||
addAttackId(FREYA_THRONE, FREYA_STAND, GLAKIAS, GLACIER, BREATH, KNIGHT);
|
||||
addKillId(GLAKIAS, FREYA_STAND, KNIGHT, GLACIER, BREATH);
|
||||
addAttackId(FREYA_THRONE, FREYA_STAND_EASY, FREYA_STAND_HARD, GLAKIAS_EASY, GLAKIAS_HARD, GLACIER, BREATH, KNIGHT_EASY, KNIGHT_HARD);
|
||||
addKillId(GLAKIAS_EASY, GLAKIAS_HARD, FREYA_STAND_EASY, FREYA_STAND_HARD, KNIGHT_EASY, KNIGHT_HARD, GLACIER, BREATH);
|
||||
addSpellFinishedId(GLACIER, BREATH);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
if (event.equals("enter"))
|
||||
if (event.equals("enterEasy"))
|
||||
{
|
||||
enterInstance(player, new IQCNBWorld(), "IceQueensCastleNormalBattle.xml", TEMPLATE_ID);
|
||||
enterInstance(player, new IQCNBWorld(), "IceQueensCastleBattleEasy.xml", TEMPLATE_ID_EASY);
|
||||
}
|
||||
else if (event.equals("enterHardcore"))
|
||||
{
|
||||
enterInstance(player, new IQCNBWorld(), "IceQueensCastleBattleHardcore.xml", TEMPLATE_ID_HARD);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -203,14 +227,18 @@ public final class IceQueensCastleNormalBattle extends AbstractInstance
|
||||
world.knightStatues.add(statue);
|
||||
}
|
||||
}
|
||||
for (L2PcInstance players : world.playersInside)
|
||||
|
||||
if (!world.isHardCore)
|
||||
{
|
||||
if ((players != null) && !players.isDead() && (players.getInstanceId() == world.getInstanceId()))
|
||||
for (L2PcInstance players : world.playersInside)
|
||||
{
|
||||
final QuestState qs = player.getQuestState(Q10286_ReunionWithSirra.class.getSimpleName());
|
||||
if ((qs != null) && (qs.getState() == State.STARTED) && qs.isCond(5))
|
||||
if ((players != null) && !players.isDead() && (players.getInstanceId() == world.getInstanceId()))
|
||||
{
|
||||
qs.setCond(6, true);
|
||||
final QuestState qs = player.getQuestState(Q10286_ReunionWithSirra.class.getSimpleName());
|
||||
if ((qs != null) && (qs.getState() == State.STARTED) && qs.isCond(5))
|
||||
{
|
||||
qs.setCond(6, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -278,7 +306,7 @@ public final class IceQueensCastleNormalBattle extends AbstractInstance
|
||||
world.freya = (L2GrandBossInstance) addSpawn(FREYA_SPELLING, FREYA_SPELLING_SPAWN, false, 0, true, world.getInstanceId());
|
||||
world.freya.setIsInvul(true);
|
||||
world.freya.disableCoreAI(true);
|
||||
manageTimer(world, 60);
|
||||
manageTimer(world, 60, NpcStringId.TIME_REMAINING_UNTIL_NEXT_BATTLE);
|
||||
world.setStatus(2);
|
||||
startQuestTimer("STAGE_2_START", 60000, world.controller, null);
|
||||
break;
|
||||
@@ -288,6 +316,13 @@ public final class IceQueensCastleNormalBattle extends AbstractInstance
|
||||
world.canSpawnMobs = true;
|
||||
notifyEvent("START_SPAWN", world.controller, null);
|
||||
manageScreenMsg(world, NpcStringId.BEGIN_STAGE_2);
|
||||
|
||||
if (world.isHardCore)
|
||||
{
|
||||
startQuestTimer("STAGE_2_FAILED", 360000, world.controller, null);
|
||||
manageTimer(world, 360, NpcStringId.BATTLE_END_LIMIT_TIME);
|
||||
world.controller.getVariables().set("TIMER_END", System.currentTimeMillis() + 360000);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "STAGE_2_MOVIE":
|
||||
@@ -307,8 +342,25 @@ public final class IceQueensCastleNormalBattle extends AbstractInstance
|
||||
startQuestTimer("SPAWN_KNIGHT", 5000, statue, null);
|
||||
}
|
||||
}
|
||||
final L2RaidBossInstance glakias = (L2RaidBossInstance) addSpawn(GLAKIAS, GLAKIAS_SPAWN, false, 0, true, world.getInstanceId());
|
||||
|
||||
final L2RaidBossInstance glakias = (L2RaidBossInstance) addSpawn((world.isHardCore ? GLAKIAS_HARD : GLAKIAS_EASY), GLAKIAS_SPAWN, false, 0, true, world.getInstanceId());
|
||||
startQuestTimer("LEADER_DELAY", 5000, glakias, null);
|
||||
|
||||
if (world.isHardCore)
|
||||
{
|
||||
startQuestTimer("SHOW_GLAKIAS_TIMER", 3000, world.controller, null);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "STAGE_2_FAILED":
|
||||
{
|
||||
manageMovie(world, 22);
|
||||
startQuestTimer("STAGE_2_FAILED2", 22000, npc, null);
|
||||
break;
|
||||
}
|
||||
case "STAGE_2_FAILED2":
|
||||
{
|
||||
InstanceManager.getInstance().destroyInstance(world.getInstanceId());
|
||||
break;
|
||||
}
|
||||
case "STAGE_3_MOVIE":
|
||||
@@ -324,17 +376,34 @@ public final class IceQueensCastleNormalBattle extends AbstractInstance
|
||||
if (players != null)
|
||||
{
|
||||
players.broadcastPacket(ExChangeClientEffectInfo.STATIC_FREYA_DESTROYED);
|
||||
|
||||
for (int emmiterId : EMMITERS)
|
||||
{
|
||||
players.sendPacket(new OnEventTrigger(emmiterId, true));
|
||||
}
|
||||
}
|
||||
}
|
||||
world.setStatus(4);
|
||||
world.freya.deleteMe();
|
||||
world.canSpawnMobs = true;
|
||||
world.freya = (L2GrandBossInstance) addSpawn(FREYA_STAND, FREYA_SPAWN, false, 0, true, world.getInstanceId());
|
||||
world.freya = (L2GrandBossInstance) addSpawn((world.isHardCore ? FREYA_STAND_HARD : FREYA_STAND_EASY), FREYA_SPAWN, false, 0, true, world.getInstanceId());
|
||||
world.controller.getVariables().set("FREYA_MOVE", 0);
|
||||
notifyEvent("START_SPAWN", world.controller, null);
|
||||
startQuestTimer("START_MOVE", 10000, world.controller, null);
|
||||
startQuestTimer("CAST_BLIZZARD", 50000, world.controller, null);
|
||||
manageScreenMsg(world, NpcStringId.BEGIN_STAGE_3);
|
||||
|
||||
if (world.isHardCore)
|
||||
{
|
||||
world.freya.doCast(FREYA_ANGER.getSkill());
|
||||
startQuestTimer("FREYA_BUFF", 15000, world.controller, null);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "FREYA_BUFF":
|
||||
{
|
||||
world.freya.doCast(FREYA_BUFF.getSkill());
|
||||
startQuestTimer("FREYA_BUFF", 15000, world.controller, null);
|
||||
break;
|
||||
}
|
||||
case "START_MOVE":
|
||||
@@ -351,10 +420,25 @@ public final class IceQueensCastleNormalBattle extends AbstractInstance
|
||||
{
|
||||
if (!world.freya.isInvul())
|
||||
{
|
||||
world.freya.doCast(BLIZZARD.getSkill());
|
||||
manageScreenMsg(world, NpcStringId.STRONG_MAGIC_POWER_CAN_BE_FELT_FROM_SOMEWHERE);
|
||||
final int manaBurnUse = world.controller.getVariables().getInt("MANA_BURN_USE", 0);
|
||||
if (world.isHardCore && (manaBurnUse < 4) && (world.freya.getCurrentHp() < (world.freya.getMaxHp() * (0.8 - (0.2 * manaBurnUse)))))
|
||||
{
|
||||
world.controller.getVariables().set("MANA_BURN_USE", manaBurnUse + 1);
|
||||
world.freya.doCast(BLIZZARD_FORCE.getSkill());
|
||||
startQuestTimer("MANA_BURN", 7000, world.controller, null);
|
||||
manageScreenMsg(world, NpcStringId.MAGIC_POWER_SO_STRONG_THAT_IT_COULD_MAKE_YOU_LOSE_YOUR_MIND_CAN_BE_FELT_FROM_SOMEWHERE);
|
||||
}
|
||||
else
|
||||
{
|
||||
final Skill skill = (world.isHardCore ? BLIZZARD_HARD.getSkill() : BLIZZARD_EASY.getSkill());
|
||||
world.freya.doCast(skill);
|
||||
manageScreenMsg(world, NpcStringId.STRONG_MAGIC_POWER_CAN_BE_FELT_FROM_SOMEWHERE);
|
||||
}
|
||||
}
|
||||
|
||||
final int time = (world.isHardCore ? getRandom(35, 40) : getRandom(55, 60)) * 1000;
|
||||
startQuestTimer("CAST_BLIZZARD", time, world.controller, null);
|
||||
|
||||
for (L2Attackable minion : world.spawnedMobs)
|
||||
{
|
||||
if ((minion != null) && !minion.isDead() && !minion.isInCombat())
|
||||
@@ -362,7 +446,6 @@ public final class IceQueensCastleNormalBattle extends AbstractInstance
|
||||
manageRandomAttack(world, minion);
|
||||
}
|
||||
}
|
||||
startQuestTimer("CAST_BLIZZARD", getRandom(55, 60) * 1000, world.controller, null);
|
||||
break;
|
||||
}
|
||||
case "SPAWN_SUPPORT":
|
||||
@@ -381,12 +464,14 @@ public final class IceQueensCastleNormalBattle extends AbstractInstance
|
||||
world.supp_Jinia.setIsRunning(true);
|
||||
world.supp_Jinia.setIsInvul(true);
|
||||
world.supp_Jinia.setCanReturnToSpawnPoint(false);
|
||||
world.supp_Jinia.reduceCurrentHp(1, world.freya, null); // TODO: Find better way for attack
|
||||
world.freya.reduceCurrentHp(1, world.supp_Jinia, null);
|
||||
world.supp_Kegor = (L2QuestGuardInstance) addSpawn(SUPP_KEGOR, SUPP_KEGOR_SPAWN, false, 0, true, world.getInstanceId());
|
||||
world.supp_Kegor.setIsRunning(true);
|
||||
world.supp_Kegor.setIsInvul(true);
|
||||
world.supp_Kegor.setCanReturnToSpawnPoint(false);
|
||||
startQuestTimer("ATTACK_FREYA", 5000, world.supp_Jinia, null);
|
||||
startQuestTimer("ATTACK_FREYA", 5000, world.supp_Kegor, null);
|
||||
world.supp_Kegor.reduceCurrentHp(1, world.freya, null); // TODO: Find better way for attack
|
||||
world.freya.reduceCurrentHp(1, world.supp_Kegor, null);
|
||||
startQuestTimer("GIVE_SUPPORT", 1000, world.controller, null);
|
||||
break;
|
||||
}
|
||||
@@ -417,7 +502,7 @@ public final class IceQueensCastleNormalBattle extends AbstractInstance
|
||||
|
||||
for (Location loc : KNIGHTS_LOC)
|
||||
{
|
||||
final L2Attackable knight = (L2Attackable) addSpawn(KNIGHT, loc, false, 0, false, world.getInstanceId());
|
||||
final L2Attackable knight = (L2Attackable) addSpawn((world.isHardCore ? KNIGHT_HARD : KNIGHT_EASY), loc, false, 0, false, world.getInstanceId());
|
||||
knight.disableCoreAI(true);
|
||||
knight.setState(1);
|
||||
knight.getSpawn().setLocation(loc);
|
||||
@@ -436,14 +521,16 @@ public final class IceQueensCastleNormalBattle extends AbstractInstance
|
||||
if (world.canSpawnMobs)
|
||||
{
|
||||
final Location loc = new Location(MIDDLE_POINT.getX() + getRandom(-1000, 1000), MIDDLE_POINT.getY() + getRandom(-1000, 1000), MIDDLE_POINT.getZ());
|
||||
final L2Attackable knight = (L2Attackable) addSpawn(KNIGHT, npc.getLocation(), false, 0, false, world.getInstanceId());
|
||||
final L2Attackable knight = (L2Attackable) addSpawn(world.isHardCore ? KNIGHT_HARD : KNIGHT_EASY, npc.getLocation(), false, 0, false, world.getInstanceId());
|
||||
knight.getVariables().set("SPAWNED_NPC", npc);
|
||||
knight.disableCoreAI(true);
|
||||
knight.setIsImmobilized(true);
|
||||
knight.setState(1);
|
||||
knight.getSpawn().setLocation(loc);
|
||||
world.spawnedMobs.add(knight);
|
||||
startQuestTimer("ICE_RUPTURE", getRandom(5, 10) * 1000, knight, null);
|
||||
|
||||
final int time = (world.isHardCore ? getRandom(5, 10) : getRandom(15, 20)) * 1000;
|
||||
startQuestTimer("ICE_RUPTURE", time, knight, null);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -537,29 +624,6 @@ public final class IceQueensCastleNormalBattle extends AbstractInstance
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "ATTACK_FREYA":
|
||||
{
|
||||
final SkillHolder skill = npc.getTemplate().getParameters().getObject("Skill01_ID", SkillHolder.class);
|
||||
if (npc.isInsideRadius(world.freya, 100, true, false))
|
||||
{
|
||||
if (npc.checkDoCastConditions(skill.getSkill()) && !npc.isCastingNow())
|
||||
{
|
||||
npc.setTarget(world.freya);
|
||||
npc.doCast(skill.getSkill());
|
||||
startQuestTimer("ATTACK_FREYA", 20000, npc, null);
|
||||
}
|
||||
else
|
||||
{
|
||||
startQuestTimer("ATTACK_FREYA", 5000, npc, null);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
npc.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, world.freya);
|
||||
startQuestTimer("ATTACK_FREYA", 5000, npc, null);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "FINISH_WORLD":
|
||||
{
|
||||
if (world.freya != null)
|
||||
@@ -579,10 +643,10 @@ public final class IceQueensCastleNormalBattle extends AbstractInstance
|
||||
}
|
||||
case "LEADER_RANGEBUFF":
|
||||
{
|
||||
if (npc.checkDoCastConditions(SelfRangeBuff.getSkill()) && !npc.isCastingNow())
|
||||
if (npc.checkDoCastConditions(SELF_RANGE_BUFF.getSkill()) && !npc.isCastingNow())
|
||||
{
|
||||
npc.setTarget(npc);
|
||||
npc.doCast(SelfRangeBuff.getSkill());
|
||||
npc.doCast(SELF_RANGE_BUFF.getSkill());
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -627,22 +691,22 @@ public final class IceQueensCastleNormalBattle extends AbstractInstance
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
broadcastNpcSay(npc, Say2.SHOUT, NpcStringId.ARCHER_GIVE_YOUR_BREATH_FOR_THE_INTRUDER);
|
||||
broadcastNpcSay(npc, ChatType.SHOUT, NpcStringId.ARCHER_GIVE_YOUR_BREATH_FOR_THE_INTRUDER);
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
broadcastNpcSay(npc, Say2.SHOUT, NpcStringId.MY_KNIGHTS_SHOW_YOUR_LOYALTY);
|
||||
broadcastNpcSay(npc, ChatType.SHOUT, NpcStringId.MY_KNIGHTS_SHOW_YOUR_LOYALTY);
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
broadcastNpcSay(npc, Say2.SHOUT, NpcStringId.I_CAN_TAKE_IT_NO_LONGER);
|
||||
broadcastNpcSay(npc, ChatType.SHOUT, NpcStringId.I_CAN_TAKE_IT_NO_LONGER);
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
broadcastNpcSay(npc, Say2.SHOUT, NpcStringId.ARCHER_HEED_MY_CALL);
|
||||
broadcastNpcSay(npc, ChatType.SHOUT, NpcStringId.ARCHER_HEED_MY_CALL);
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
final L2Attackable breath = (L2Attackable) addSpawn(BREATH, npc.getLocation(), true, 0, false, world.getInstanceId());
|
||||
@@ -666,6 +730,24 @@ public final class IceQueensCastleNormalBattle extends AbstractInstance
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "SHOW_GLAKIAS_TIMER":
|
||||
{
|
||||
final int time = (int) ((world.controller.getVariables().getLong("TIMER_END", 0) - System.currentTimeMillis()) / 1000);
|
||||
manageTimer(world, time, NpcStringId.BATTLE_END_LIMIT_TIME);
|
||||
break;
|
||||
}
|
||||
case "MANA_BURN":
|
||||
{
|
||||
for (L2PcInstance temp : world.playersInside)
|
||||
{
|
||||
if ((temp != null) && (temp.getInstanceId() == world.getInstanceId()))
|
||||
{
|
||||
temp.setCurrentMp(0);
|
||||
temp.broadcastStatusUpdate();
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -788,7 +870,8 @@ public final class IceQueensCastleNormalBattle extends AbstractInstance
|
||||
}
|
||||
break;
|
||||
}
|
||||
case FREYA_STAND:
|
||||
case FREYA_STAND_EASY:
|
||||
case FREYA_STAND_HARD:
|
||||
{
|
||||
if (world.controller.getVariables().getInt("FREYA_MOVE") == 0)
|
||||
{
|
||||
@@ -898,7 +981,8 @@ public final class IceQueensCastleNormalBattle extends AbstractInstance
|
||||
}
|
||||
break;
|
||||
}
|
||||
case KNIGHT:
|
||||
case KNIGHT_EASY:
|
||||
case KNIGHT_HARD:
|
||||
{
|
||||
if (npc.isCoreAIDisabled())
|
||||
{
|
||||
@@ -910,7 +994,8 @@ public final class IceQueensCastleNormalBattle extends AbstractInstance
|
||||
}
|
||||
break;
|
||||
}
|
||||
case GLAKIAS:
|
||||
case GLAKIAS_EASY:
|
||||
case GLAKIAS_HARD:
|
||||
{
|
||||
if (npc.getCurrentHp() < (npc.getMaxHp() * 0.02))
|
||||
{
|
||||
@@ -1055,29 +1140,32 @@ public final class IceQueensCastleNormalBattle extends AbstractInstance
|
||||
final IQCNBWorld world = (IQCNBWorld) tmpworld;
|
||||
switch (npc.getId())
|
||||
{
|
||||
case GLAKIAS:
|
||||
case GLAKIAS_EASY:
|
||||
case GLAKIAS_HARD:
|
||||
{
|
||||
manageDespawnMinions(world);
|
||||
manageTimer(world, 60);
|
||||
manageTimer(world, 60, NpcStringId.TIME_REMAINING_UNTIL_NEXT_BATTLE);
|
||||
cancelQuestTimer("STAGE_2_FAILED", world.controller, null);
|
||||
startQuestTimer("STAGE_3_MOVIE", 60000, world.controller, null);
|
||||
break;
|
||||
}
|
||||
case FREYA_STAND:
|
||||
case FREYA_STAND_EASY:
|
||||
case FREYA_STAND_HARD:
|
||||
{
|
||||
world.isSupportActive = false;
|
||||
manageMovie(world, 19);
|
||||
manageDespawnMinions(world);
|
||||
finishInstance(world);
|
||||
DecayTaskManager.getInstance().cancel(world.freya);
|
||||
cancelQuestTimer("ATTACK_FREYA", world.supp_Jinia, null);
|
||||
cancelQuestTimer("ATTACK_FREYA", world.supp_Kegor, null);
|
||||
cancelQuestTimer("GIVE_SUPPORT", world.controller, null);
|
||||
cancelQuestTimer("CAST_BLIZZARD", world.controller, null);
|
||||
cancelQuestTimer("FREYA_BUFF", world.controller, null);
|
||||
startQuestTimer("FINISH_STAGE", 16000, world.controller, null);
|
||||
startQuestTimer("FINISH_WORLD", 300000, world.controller, null);
|
||||
break;
|
||||
}
|
||||
case KNIGHT:
|
||||
case KNIGHT_EASY:
|
||||
case KNIGHT_HARD:
|
||||
{
|
||||
final L2Npc spawnedBy = npc.getVariables().getObject("SPAWNED_NPC", L2Npc.class);
|
||||
final NpcVariables var = world.controller.getVariables();
|
||||
@@ -1105,7 +1193,8 @@ public final class IceQueensCastleNormalBattle extends AbstractInstance
|
||||
|
||||
if (spawnedBy != null)
|
||||
{
|
||||
startQuestTimer("SPAWN_KNIGHT", getRandom(30, 60) * 1000, spawnedBy, null);
|
||||
final int time = (world.isHardCore ? getRandom(30, 60) : getRandom(50, 60)) * 1000;
|
||||
startQuestTimer("SPAWN_KNIGHT", time, spawnedBy, null);
|
||||
}
|
||||
world.spawnedMobs.remove(npc);
|
||||
break;
|
||||
@@ -1131,22 +1220,38 @@ public final class IceQueensCastleNormalBattle extends AbstractInstance
|
||||
{
|
||||
if (firstEntrance)
|
||||
{
|
||||
final IQCNBWorld curworld = (IQCNBWorld) world;
|
||||
curworld.isHardCore = curworld.getTemplateId() == TEMPLATE_ID_HARD;
|
||||
|
||||
if (!player.isInParty())
|
||||
{
|
||||
managePlayerEnter(player, (IQCNBWorld) world);
|
||||
managePlayerEnter(player, curworld);
|
||||
}
|
||||
else if (player.getParty().isInCommandChannel())
|
||||
{
|
||||
for (L2PcInstance players : player.getParty().getCommandChannel().getMembers())
|
||||
{
|
||||
managePlayerEnter(players, (IQCNBWorld) world);
|
||||
managePlayerEnter(players, curworld);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (L2PcInstance players : player.getParty().getMembers())
|
||||
{
|
||||
managePlayerEnter(players, (IQCNBWorld) world);
|
||||
managePlayerEnter(players, curworld);
|
||||
}
|
||||
}
|
||||
|
||||
for (L2PcInstance players : curworld.playersInside)
|
||||
{
|
||||
if (players != null)
|
||||
{
|
||||
players.broadcastPacket(ExChangeClientEffectInfo.STATIC_FREYA_DEFAULT);
|
||||
|
||||
for (int emmiterId : EMMITERS)
|
||||
{
|
||||
players.sendPacket(new OnEventTrigger(emmiterId, false));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1169,7 +1274,7 @@ public final class IceQueensCastleNormalBattle extends AbstractInstance
|
||||
final L2Party party = player.getParty();
|
||||
final L2CommandChannel channel = party != null ? party.getCommandChannel() : null;
|
||||
|
||||
if (player.isGM() && player.canOverrideCond(PcCondOverride.INSTANCE_CONDITIONS))
|
||||
if (player.canOverrideCond(PcCondOverride.INSTANCE_CONDITIONS))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
@@ -1210,7 +1315,14 @@ public final class IceQueensCastleNormalBattle extends AbstractInstance
|
||||
party.broadcastPacket(sm);
|
||||
return false;
|
||||
}
|
||||
else if (System.currentTimeMillis() < InstanceManager.getInstance().getInstanceTime(channelMember.getObjectId(), TEMPLATE_ID))
|
||||
else if (System.currentTimeMillis() < InstanceManager.getInstance().getInstanceTime(channelMember.getObjectId(), TEMPLATE_ID_EASY))
|
||||
{
|
||||
SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.C1_MAY_NOT_RE_ENTER_YET);
|
||||
sm.addPcName(channelMember);
|
||||
party.broadcastPacket(sm);
|
||||
return false;
|
||||
}
|
||||
else if (System.currentTimeMillis() < InstanceManager.getInstance().getInstanceTime(channelMember.getObjectId(), TEMPLATE_ID_HARD))
|
||||
{
|
||||
SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.C1_MAY_NOT_RE_ENTER_YET);
|
||||
sm.addPcName(channelMember);
|
||||
@@ -1258,13 +1370,13 @@ public final class IceQueensCastleNormalBattle extends AbstractInstance
|
||||
}
|
||||
}
|
||||
|
||||
private void manageTimer(IQCNBWorld world, int time)
|
||||
private void manageTimer(IQCNBWorld world, int time, NpcStringId npcStringId)
|
||||
{
|
||||
for (L2PcInstance players : world.playersInside)
|
||||
{
|
||||
if ((players != null) && (players.getInstanceId() == world.getInstanceId()))
|
||||
{
|
||||
players.sendPacket(new ExSendUIEvent(players, false, false, time, 0, "Time remaining until next battle"));
|
||||
players.sendPacket(new ExSendUIEvent(players, false, false, time, 0, npcStringId));
|
||||
}
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@@ -1,3 +0,0 @@
|
||||
<html><body>Kegor:<br>
|
||||
I'd entrust your associate with this mission, but..
|
||||
</body></html>
|
@@ -1,6 +0,0 @@
|
||||
<html><body>Kegor:<br>
|
||||
Without you, we would have failed. I can't thank you enough.<br>
|
||||
Freya's last breath will flutter against your blade, I can feel it!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest IceQueensCastleNormalBattle killFreya">Rest in peace!</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest IceQueensCastleNormalBattle 18851-01.html">Can I have a second with you?</Button>
|
||||
</body></html>
|
@@ -35,8 +35,7 @@ import instances.FinalEmperialTomb.FinalEmperialTomb;
|
||||
import instances.HarnakUndergroundRuins.HarnakUndergroundRuins;
|
||||
import instances.HideoutOfTheDawn.HideoutOfTheDawn;
|
||||
import instances.IceQueensCastle.IceQueensCastle;
|
||||
import instances.IceQueensCastleHardBattle.IceQueensCastleHardBattle;
|
||||
import instances.IceQueensCastleNormalBattle.IceQueensCastleNormalBattle;
|
||||
import instances.IceQueensCastleBattle.IceQueensCastleBattle;
|
||||
import instances.JiniaGuildHideout1.JiniaGuildHideout1;
|
||||
import instances.JiniaGuildHideout2.JiniaGuildHideout2;
|
||||
import instances.JiniaGuildHideout3.JiniaGuildHideout3;
|
||||
@@ -81,8 +80,7 @@ public final class InstanceLoader
|
||||
ChamberOfDelusionTower.class,
|
||||
ChamberOfDelusionWest.class,
|
||||
IceQueensCastle.class,
|
||||
IceQueensCastleHardBattle.class,
|
||||
IceQueensCastleNormalBattle.class,
|
||||
IceQueensCastleBattle.class,
|
||||
JiniaGuildHideout1.class,
|
||||
JiniaGuildHideout2.class,
|
||||
JiniaGuildHideout3.class,
|
||||
|
@@ -20,13 +20,13 @@ package instances.LibraryOfSages;
|
||||
|
||||
import instances.AbstractInstance;
|
||||
|
||||
import com.l2jserver.gameserver.enums.ChatType;
|
||||
import com.l2jserver.gameserver.instancemanager.InstanceManager;
|
||||
import com.l2jserver.gameserver.model.Location;
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.instancezone.InstanceWorld;
|
||||
import com.l2jserver.gameserver.network.NpcStringId;
|
||||
import com.l2jserver.gameserver.network.clientpackets.Say2;
|
||||
|
||||
/**
|
||||
* Library of Sages instance zone.
|
||||
@@ -98,7 +98,7 @@ public final class LibraryOfSages extends AbstractInstance
|
||||
{
|
||||
npc.setIsRunning(true);
|
||||
npc.getAI().startFollow(player);
|
||||
broadcastNpcSay(npc, Say2.NPC_ALL, ELCADIA_DIALOGS[getRandom(ELCADIA_DIALOGS.length)]);
|
||||
broadcastNpcSay(npc, ChatType.NPC_GENERAL, ELCADIA_DIALOGS[getRandom(ELCADIA_DIALOGS.length)]);
|
||||
startQuestTimer("FOLLOW", 10000, npc, player);
|
||||
break;
|
||||
}
|
||||
|
@@ -22,6 +22,7 @@ import instances.AbstractInstance;
|
||||
import quests.Q10284_AcquisitionOfDivineSword.Q10284_AcquisitionOfDivineSword;
|
||||
|
||||
import com.l2jserver.gameserver.ai.CtrlIntention;
|
||||
import com.l2jserver.gameserver.enums.ChatType;
|
||||
import com.l2jserver.gameserver.instancemanager.InstanceManager;
|
||||
import com.l2jserver.gameserver.model.Location;
|
||||
import com.l2jserver.gameserver.model.actor.L2Attackable;
|
||||
@@ -32,7 +33,6 @@ import com.l2jserver.gameserver.model.holders.SkillHolder;
|
||||
import com.l2jserver.gameserver.model.instancezone.InstanceWorld;
|
||||
import com.l2jserver.gameserver.model.quest.QuestState;
|
||||
import com.l2jserver.gameserver.network.NpcStringId;
|
||||
import com.l2jserver.gameserver.network.clientpackets.Say2;
|
||||
|
||||
/**
|
||||
* Mithril Mine instance zone.
|
||||
@@ -120,7 +120,7 @@ public final class MithrilMine extends AbstractInstance
|
||||
kegor.setWalking();
|
||||
kegor.setTarget(player);
|
||||
kegor.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, player);
|
||||
broadcastNpcSay(kegor, Say2.NPC_ALL, NpcStringId.I_CAN_FINALLY_TAKE_A_BREATHER_BY_THE_WAY_WHO_ARE_YOU_HMM_I_THINK_I_KNOW_WHO_SENT_YOU);
|
||||
broadcastNpcSay(kegor, ChatType.NPC_GENERAL, NpcStringId.I_CAN_FINALLY_TAKE_A_BREATHER_BY_THE_WAY_WHO_ARE_YOU_HMM_I_THINK_I_KNOW_WHO_SENT_YOU);
|
||||
}
|
||||
}
|
||||
InstanceManager.getInstance().getInstance(world.getInstanceId()).setDuration(3000);
|
||||
@@ -163,7 +163,7 @@ public final class MithrilMine extends AbstractInstance
|
||||
|
||||
if (npc.getId() == KEGOR)
|
||||
{
|
||||
broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.HOW_COULD_I_FALL_IN_A_PLACE_LIKE_THIS);
|
||||
broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.HOW_COULD_I_FALL_IN_A_PLACE_LIKE_THIS);
|
||||
InstanceManager.getInstance().getInstance(world.getInstanceId()).setDuration(1000);
|
||||
}
|
||||
else
|
||||
|
@@ -20,6 +20,7 @@ package instances.MonasteryOfSilence1;
|
||||
|
||||
import instances.AbstractInstance;
|
||||
|
||||
import com.l2jserver.gameserver.enums.ChatType;
|
||||
import com.l2jserver.gameserver.instancemanager.InstanceManager;
|
||||
import com.l2jserver.gameserver.model.Location;
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
@@ -27,7 +28,6 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.holders.SkillHolder;
|
||||
import com.l2jserver.gameserver.model.instancezone.InstanceWorld;
|
||||
import com.l2jserver.gameserver.network.NpcStringId;
|
||||
import com.l2jserver.gameserver.network.clientpackets.Say2;
|
||||
|
||||
/**
|
||||
* Monastery of Silence instance zone.
|
||||
@@ -171,13 +171,13 @@ public final class MonasteryOfSilence1 extends AbstractInstance
|
||||
npc.getAI().startFollow(player);
|
||||
if (player.isInCombat())
|
||||
{
|
||||
broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.YOUR_WORK_HERE_IS_DONE_SO_RETURN_TO_THE_CENTRAL_GUARDIAN);
|
||||
broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.YOUR_WORK_HERE_IS_DONE_SO_RETURN_TO_THE_CENTRAL_GUARDIAN);
|
||||
npc.setTarget(player);
|
||||
npc.doCast(BUFFS[getRandom(BUFFS.length)].getSkill());
|
||||
}
|
||||
else
|
||||
{
|
||||
broadcastNpcSay(npc, Say2.NPC_ALL, ELCADIA_DIALOGS[getRandom(ELCADIA_DIALOGS.length)]);
|
||||
broadcastNpcSay(npc, ChatType.NPC_GENERAL, ELCADIA_DIALOGS[getRandom(ELCADIA_DIALOGS.length)]);
|
||||
}
|
||||
startQuestTimer("FOLLOW", 10000, npc, player);
|
||||
break;
|
||||
|
@@ -29,6 +29,7 @@ import ai.npc.AbstractNpcAI;
|
||||
|
||||
import com.l2jserver.gameserver.ai.CtrlIntention;
|
||||
import com.l2jserver.gameserver.datatables.SkillData;
|
||||
import com.l2jserver.gameserver.enums.ChatType;
|
||||
import com.l2jserver.gameserver.instancemanager.InstanceManager;
|
||||
import com.l2jserver.gameserver.model.actor.L2Character;
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
@@ -313,18 +314,18 @@ public class MonasteryOfSilence2 extends AbstractNpcAI
|
||||
{
|
||||
if (getRandom(10) < 1)
|
||||
{
|
||||
npc.broadcastPacket(new NpcSay(npc.getObjectId(), 0, npc.getId(), NpcStringId.IT_SEEMS_THAT_YOU_CANNOT_REMEMBER_TO_THE_ROOM_OF_THE_WATCHER_WHO_FOUND_THE_BOOK));
|
||||
npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.IT_SEEMS_THAT_YOU_CANNOT_REMEMBER_TO_THE_ROOM_OF_THE_WATCHER_WHO_FOUND_THE_BOOK));
|
||||
}
|
||||
else
|
||||
{
|
||||
npc.broadcastPacket(new NpcSay(npc.getObjectId(), 0, npc.getId(), NpcStringId.REMEMBER_THE_CONTENT_OF_THE_BOOKS_THAT_YOU_FOUND_YOU_CAN_T_TAKE_THEM_OUT_WITH_YOU));
|
||||
npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.REMEMBER_THE_CONTENT_OF_THE_BOOKS_THAT_YOU_FOUND_YOU_CAN_T_TAKE_THEM_OUT_WITH_YOU));
|
||||
}
|
||||
}
|
||||
if ((qs != null) && (qs.getCond() == 3))
|
||||
{
|
||||
if (getRandom(8) < 1)
|
||||
{
|
||||
npc.broadcastPacket(new NpcSay(npc.getObjectId(), 0, npc.getId(), NpcStringId.YOUR_WORK_HERE_IS_DONE_SO_RETURN_TO_THE_CENTRAL_GUARDIAN));
|
||||
npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.YOUR_WORK_HERE_IS_DONE_SO_RETURN_TO_THE_CENTRAL_GUARDIAN));
|
||||
}
|
||||
}
|
||||
if ((qs1 != null) && (qs1.getCond() == 1))
|
||||
@@ -333,15 +334,15 @@ public class MonasteryOfSilence2 extends AbstractNpcAI
|
||||
{
|
||||
if (getRandom(10) < 1)
|
||||
{
|
||||
npc.broadcastPacket(new NpcSay(npc.getObjectId(), 0, npc.getId(), NpcStringId.TO_REMOVE_THE_BARRIER_YOU_MUST_FIND_THE_RELICS_THAT_FIT_THE_BARRIER_AND_ACTIVATE_THE_DEVICE));
|
||||
npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.TO_REMOVE_THE_BARRIER_YOU_MUST_FIND_THE_RELICS_THAT_FIT_THE_BARRIER_AND_ACTIVATE_THE_DEVICE));
|
||||
}
|
||||
else if (getRandom(15) < 1)
|
||||
{
|
||||
npc.broadcastPacket(new NpcSay(npc.getObjectId(), 0, npc.getId(), NpcStringId.THE_GUARDIAN_OF_THE_SEAL_DOESN_T_SEEM_TO_GET_INJURED_AT_ALL_UNTIL_THE_BARRIER_IS_DESTROYED));
|
||||
npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.THE_GUARDIAN_OF_THE_SEAL_DOESN_T_SEEM_TO_GET_INJURED_AT_ALL_UNTIL_THE_BARRIER_IS_DESTROYED));
|
||||
}
|
||||
else
|
||||
{
|
||||
npc.broadcastPacket(new NpcSay(npc.getObjectId(), 0, npc.getId(), NpcStringId.THE_DEVICE_LOCATED_IN_THE_ROOM_IN_FRONT_OF_THE_GUARDIAN_OF_THE_SEAL_IS_DEFINITELY_THE_BARRIER_THAT_CONTROLS_THE_GUARDIAN_S_POWER));
|
||||
npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.THE_DEVICE_LOCATED_IN_THE_ROOM_IN_FRONT_OF_THE_GUARDIAN_OF_THE_SEAL_IS_DEFINITELY_THE_BARRIER_THAT_CONTROLS_THE_GUARDIAN_S_POWER));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -20,6 +20,7 @@ package instances.PailakaSongOfIceAndFire;
|
||||
|
||||
import instances.AbstractInstance;
|
||||
|
||||
import com.l2jserver.gameserver.enums.ChatType;
|
||||
import com.l2jserver.gameserver.instancemanager.InstanceManager;
|
||||
import com.l2jserver.gameserver.model.Location;
|
||||
import com.l2jserver.gameserver.model.actor.L2Character;
|
||||
@@ -28,7 +29,6 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.instancezone.InstanceWorld;
|
||||
import com.l2jserver.gameserver.model.zone.L2ZoneType;
|
||||
import com.l2jserver.gameserver.network.NpcStringId;
|
||||
import com.l2jserver.gameserver.network.clientpackets.Say2;
|
||||
|
||||
/**
|
||||
* Pailaka Song of Ice and Fire Instance zone.
|
||||
@@ -92,7 +92,7 @@ public final class PailakaSongOfIceAndFire extends AbstractInstance
|
||||
}
|
||||
case "GARGOS_LAUGH":
|
||||
{
|
||||
broadcastNpcSay(npc, Say2.NPC_SHOUT, NpcStringId.OHH_OH_OH);
|
||||
broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.OHH_OH_OH);
|
||||
break;
|
||||
}
|
||||
case "TELEPORT":
|
||||
|
@@ -27,6 +27,7 @@ import java.util.Map.Entry;
|
||||
|
||||
import quests.Q00195_SevenSignsSecretRitualOfThePriests.Q00195_SevenSignsSecretRitualOfThePriests;
|
||||
|
||||
import com.l2jserver.gameserver.enums.ChatType;
|
||||
import com.l2jserver.gameserver.instancemanager.InstanceManager;
|
||||
import com.l2jserver.gameserver.model.L2World;
|
||||
import com.l2jserver.gameserver.model.Location;
|
||||
@@ -37,7 +38,6 @@ import com.l2jserver.gameserver.model.instancezone.InstanceWorld;
|
||||
import com.l2jserver.gameserver.model.quest.QuestState;
|
||||
import com.l2jserver.gameserver.network.NpcStringId;
|
||||
import com.l2jserver.gameserver.network.SystemMessageId;
|
||||
import com.l2jserver.gameserver.network.clientpackets.Say2;
|
||||
import com.l2jserver.gameserver.network.serverpackets.MagicSkillUse;
|
||||
|
||||
/**
|
||||
@@ -116,17 +116,17 @@ public final class SanctumOftheLordsOfDawn extends AbstractInstance
|
||||
{
|
||||
case GUARDS_OF_THE_DAWN:
|
||||
{
|
||||
broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.INTRUDER_PROTECT_THE_PRIESTS_OF_DAWN);
|
||||
broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.INTRUDER_PROTECT_THE_PRIESTS_OF_DAWN);
|
||||
break;
|
||||
}
|
||||
case GUARDS_OF_THE_DAWN_2:
|
||||
{
|
||||
broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.HOW_DARE_YOU_INTRUDE_WITH_THAT_TRANSFORMATION_GET_LOST);
|
||||
broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.HOW_DARE_YOU_INTRUDE_WITH_THAT_TRANSFORMATION_GET_LOST);
|
||||
break;
|
||||
}
|
||||
case GUARDS_OF_THE_DAWN_3:
|
||||
{
|
||||
broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.WHO_ARE_YOU_A_NEW_FACE_LIKE_YOU_CAN_T_APPROACH_THIS_PLACE);
|
||||
broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.WHO_ARE_YOU_A_NEW_FACE_LIKE_YOU_CAN_T_APPROACH_THIS_PLACE);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user