Sync with L2JServer Feb 7th 2015.

This commit is contained in:
mobius
2015-02-07 23:48:56 +00:00
parent 1e166ca657
commit ecd17fdefb
1949 changed files with 3120 additions and 33466 deletions

View File

@@ -242,6 +242,8 @@ public abstract class AbstractInstance extends AbstractNpcAI
{
case ALL:
{
player.stopAllEffectsExceptThoseThatLastThroughDeath();
final L2Summon pet = player.getPet();
if (pet != null)
{

View File

@@ -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));
}
}
}

View File

@@ -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);
}

View File

@@ -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)]));
}
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}

View File

@@ -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);
}

View File

@@ -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>

View File

@@ -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));
}
}
}

View File

@@ -1,3 +0,0 @@
<html><body>Kegor:<br>
I'd entrust your associate with this mission, but..
</body></html>

View File

@@ -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>

View File

@@ -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,

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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;

View File

@@ -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));
}
}
}

View File

@@ -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":

View File

@@ -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;
}
}