-
+
\ No newline at end of file
diff --git a/trunk/dist/game/data/instances/CavernOfThePirateCaptainWorldDay60.xml b/trunk/dist/game/data/instances/CavernOfThePirateCaptainWorldDay60.xml
index 6459dac93c..57f2e1322d 100644
--- a/trunk/dist/game/data/instances/CavernOfThePirateCaptainWorldDay60.xml
+++ b/trunk/dist/game/data/instances/CavernOfThePirateCaptainWorldDay60.xml
@@ -9,4 +9,5 @@
+
diff --git a/trunk/dist/game/data/instances/CavernOfThePirateCaptainWorldNight60.xml b/trunk/dist/game/data/instances/CavernOfThePirateCaptainWorldNight60.xml
index 49539f1726..b3d5b4ee6d 100644
--- a/trunk/dist/game/data/instances/CavernOfThePirateCaptainWorldNight60.xml
+++ b/trunk/dist/game/data/instances/CavernOfThePirateCaptainWorldNight60.xml
@@ -9,4 +9,5 @@
+
diff --git a/trunk/dist/game/data/instances/IceQueensCastleHardBattle.xml b/trunk/dist/game/data/instances/IceQueensCastleBattleEasy.xml
similarity index 93%
rename from trunk/dist/game/data/instances/IceQueensCastleHardBattle.xml
rename to trunk/dist/game/data/instances/IceQueensCastleBattleEasy.xml
index af7eb7ab2e..aceef7f6f7 100644
--- a/trunk/dist/game/data/instances/IceQueensCastleHardBattle.xml
+++ b/trunk/dist/game/data/instances/IceQueensCastleBattleEasy.xml
@@ -8,6 +8,7 @@
+
diff --git a/trunk/dist/game/data/instances/IceQueensCastleNormalBattle.xml b/trunk/dist/game/data/instances/IceQueensCastleBattleHardcore.xml
similarity index 74%
rename from trunk/dist/game/data/instances/IceQueensCastleNormalBattle.xml
rename to trunk/dist/game/data/instances/IceQueensCastleBattleHardcore.xml
index af7eb7ab2e..a15e96a3df 100644
--- a/trunk/dist/game/data/instances/IceQueensCastleNormalBattle.xml
+++ b/trunk/dist/game/data/instances/IceQueensCastleBattleHardcore.xml
@@ -1,5 +1,5 @@
-
+
@@ -8,6 +8,7 @@
+
diff --git a/trunk/dist/game/data/multisell/305986001.xml b/trunk/dist/game/data/multisell/305986001.xml
deleted file mode 100644
index 8ca67dcf1f..0000000000
--- a/trunk/dist/game/data/multisell/305986001.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-
- 30598
- 30599
- 30600
- 30601
- 30602
- 31076
- 31077
- 32135
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/multisell/305986002.xml b/trunk/dist/game/data/multisell/305986002.xml
deleted file mode 100644
index dd6f91851e..0000000000
--- a/trunk/dist/game/data/multisell/305986002.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- 30598
- 30599
- 30600
- 30601
- 30602
- 31076
- 31077
- 32135
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts.cfg b/trunk/dist/game/data/scripts.cfg
index 9a8655d87d..e1d4a30dd3 100644
--- a/trunk/dist/game/data/scripts.cfg
+++ b/trunk/dist/game/data/scripts.cfg
@@ -31,7 +31,6 @@ ai/npc/CastleSiegeManager/CastleSiegeManager.java
ai/npc/CastleTeleporter/CastleTeleporter.java
ai/npc/CastleWarehouse/CastleWarehouse.java
ai/npc/ClanTrader/ClanTrader.java
-ai/npc/Dorian/Dorian.java
ai/npc/DragonVortex/DragonVortex.java
ai/npc/FameManager/FameManager.java
ai/npc/ForgeOfTheGods/ForgeOfTheGods.java
@@ -51,7 +50,6 @@ ai/npc/Minigame/Minigame.java
ai/npc/MonkOfChaos/MonkOfChaos.java
ai/npc/MonumentOfHeroes/MonumentOfHeroes.java
ai/npc/NpcBuffers/NpcBuffers.java
-ai/npc/Oris/Oris.java
ai/npc/Pantheon/Pantheon.java
ai/npc/Proclaimer/Proclaimer.java
ai/npc/Rignos/Rignos.java
@@ -82,7 +80,6 @@ ai/npc/Teleports/TeleportToRaceTrack/TeleportToRaceTrack.java
ai/npc/Teleports/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java
ai/npc/Teleports/TeleportWithCharm/TeleportWithCharm.java
ai/npc/Teleports/ToIVortex/ToIVortex.java
-ai/npc/TownPets/TownPets.java
ai/npc/Trainers/HealerTrainer/HealerTrainer.java
ai/npc/Trandon/Trandon.java
ai/npc/Tunatun/Tunatun.java
@@ -120,7 +117,6 @@ ai/group_template/PolymorphingOnAttack.java
ai/group_template/PrimevalIsle.java
ai/group_template/PrisonGuards.java
ai/group_template/RandomSpawn.java
-ai/group_template/RangeGuard.java
ai/group_template/Remnants.java
ai/group_template/Sandstorms.java
ai/group_template/SeeThroughSilentMove.java
@@ -130,7 +126,6 @@ ai/group_template/SilentValley.java
ai/group_template/StakatoNest.java
ai/group_template/SummonPc.java
ai/group_template/TurekOrcs.java
-ai/group_template/VarkaKetra.java
ai/group_template/WarriorFishingBlock.java
# Individual
@@ -141,19 +136,35 @@ ai/individual/Venom/Venom.java
ai/individual/Anais.java
ai/individual/Ballista.java
ai/individual/Beleth.java
+ai/individual/Banette.java
+ai/individual/Bink.java
ai/individual/CrimsonHatuOtis.java
ai/individual/Core.java
+ai/individual/Devno.java
ai/individual/DarkWaterDragon.java
ai/individual/DivineBeast.java
ai/individual/DrChaos.java
ai/individual/DrillSergeant.java
+ai/individual/Eleve.java
ai/individual/Epidos.java
ai/individual/EvasGiftBox.java
ai/individual/FrightenedRagnaOrc.java
+ai/individual/Gagabu.java
+ai/individual/Galad.java
ai/individual/Gordon.java
ai/individual/GraveRobbers.java
+ai/individual/GuardSoldier.java
+ai/individual/Handermonkey.java
+ai/individual/Heymond.java
+ai/individual/Holly.java
+ai/individual/Karonf.java
+ai/individual/Luderic.java
+ai/individual/Lumi.java
ai/individual/Mahram.java
+ai/individual/Mai.java
+ai/individual/MarinSmith.java
ai/individual/Orfen.java
+ai/individual/Oris.java
ai/individual/QueenAnt.java
ai/individual/QueenShyeed.java
ai/individual/RagnaOrcCommander.java
@@ -163,7 +174,11 @@ ai/individual/ScarletVanHalisha.java
ai/individual/Shannon.java
ai/individual/SinEater.java
ai/individual/SinWardens.java
+ai/individual/Sodian.java
+ai/individual/Stiller.java
ai/individual/Theodore.java
+ai/individual/TomaJunior.java
+ai/individual/TrainingGolem.java
ai/individual/TrainningSoldier.java
ai/individual/Valakas.java
@@ -190,9 +205,6 @@ features/SkillTransfer/SkillTransfer.java
# Custom
custom/ShadowWeapons/ShadowWeapons.java
-custom/NewbieCoupons/NewbieCoupons.java
-custom/RaidbossInfo/RaidbossInfo.java
-custom/NpcLocationInfo/NpcLocationInfo.java
custom/FactionManager/FactionManager.java
# Custom Events
diff --git a/trunk/dist/game/data/scripts/ai/fantasy_isle/MC_Show.java b/trunk/dist/game/data/scripts/ai/fantasy_isle/MC_Show.java
index e02226ecf9..73bce16010 100644
--- a/trunk/dist/game/data/scripts/ai/fantasy_isle/MC_Show.java
+++ b/trunk/dist/game/data/scripts/ai/fantasy_isle/MC_Show.java
@@ -28,11 +28,11 @@ import com.l2jserver.Config;
import com.l2jserver.gameserver.GameTimeController;
import com.l2jserver.gameserver.ThreadPoolManager;
import com.l2jserver.gameserver.ai.CtrlIntention;
+import com.l2jserver.gameserver.enums.ChatType;
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.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.NpcSay;
import com.l2jserver.gameserver.network.serverpackets.PlaySound;
@@ -318,7 +318,7 @@ public class MC_Show extends AbstractNpcAI
ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new StartMCShow(), diff, 14400000L);
}
- private void autoChat(L2Npc npc, NpcStringId npcString, int type)
+ private void autoChat(L2Npc npc, NpcStringId npcString, ChatType type)
{
npc.broadcastPacket(new NpcSay(npc.getObjectId(), type, npc.getId(), npcString));
}
@@ -331,7 +331,7 @@ public class MC_Show extends AbstractNpcAI
switch (npc.getId())
{
case 32433:
- autoChat(npc, MESSAGES[0], Say2.NPC_SHOUT);
+ autoChat(npc, MESSAGES[0], ChatType.NPC_SHOUT);
startQuestTimer("1", 30000, npc, null);
break;
case 32431:
@@ -383,7 +383,7 @@ public class MC_Show extends AbstractNpcAI
// TODO switch on event
if (event.equalsIgnoreCase("6"))
{
- autoChat(npc, MESSAGES[6], Say2.NPC_SHOUT);
+ autoChat(npc, MESSAGES[6], ChatType.NPC_SHOUT);
npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(-56511, -56647, -2008, 36863));
npc.broadcastPacket(new PlaySound(1, "NS22_F", 0, 0, 0, 0, 0));
addSpawn(SINGERS[0], -56344, -56328, -2008, 32768, false, 224000);
@@ -400,7 +400,7 @@ public class MC_Show extends AbstractNpcAI
switch (npc.getId())
{
case 32433:
- autoChat(npc, MESSAGES[7], Say2.NPC_SHOUT);
+ autoChat(npc, MESSAGES[7], ChatType.NPC_SHOUT);
npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(-56698, -56430, -2008, 32768));
startQuestTimer("8", 12000, npc, null);
break;
@@ -430,7 +430,7 @@ public class MC_Show extends AbstractNpcAI
switch (npc.getId())
{
case 32433:
- autoChat(npc, MESSAGES[11], Say2.NPC_SHOUT);
+ autoChat(npc, MESSAGES[11], ChatType.NPC_SHOUT);
npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(-56698, -56430, -2008, 32768));
startQuestTimer("12", 5000, npc, null);
break;
@@ -446,7 +446,7 @@ public class MC_Show extends AbstractNpcAI
}
else if (event.equalsIgnoreCase("17"))
{
- autoChat(npc, MESSAGES[16], Say2.NPC_SHOUT);
+ autoChat(npc, MESSAGES[16], ChatType.NPC_SHOUT);
startQuestTimer("social1", 2000, addSpawn(INDIVIDUALS[1], -56700, -56340, -2008, 32768, false, 32000), null);
startQuestTimer("18", 9000, npc, null);
}
@@ -467,7 +467,7 @@ public class MC_Show extends AbstractNpcAI
}
else if (event.equalsIgnoreCase("28"))
{
- autoChat(npc, MESSAGES[23], Say2.NPC_ALL);
+ autoChat(npc, MESSAGES[23], ChatType.NPC_GENERAL);
startQuestTimer("social1", 1, npc, null);
}
else if (event.equalsIgnoreCase("29"))
@@ -492,7 +492,7 @@ public class MC_Show extends AbstractNpcAI
final ShoutInfo si = talks.get(event);
if (si != null)
{
- autoChat(npc, si.getNpcStringId(), Say2.NPC_SHOUT);
+ autoChat(npc, si.getNpcStringId(), ChatType.NPC_SHOUT);
startQuestTimer(si.getNextEvent(), si.getTime(), npc, null);
}
}
diff --git a/trunk/dist/game/data/scripts/ai/group_template/AdenReconstructorManager.java b/trunk/dist/game/data/scripts/ai/group_template/AdenReconstructorManager.java
index cce0181202..026e8382cd 100644
--- a/trunk/dist/game/data/scripts/ai/group_template/AdenReconstructorManager.java
+++ b/trunk/dist/game/data/scripts/ai/group_template/AdenReconstructorManager.java
@@ -20,10 +20,10 @@ package ai.group_template;
import ai.npc.AbstractNpcAI;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
/**
* Aden Reconstructor Manager AI.
@@ -40,7 +40,7 @@ public final class AdenReconstructorManager extends AbstractNpcAI
private AdenReconstructorManager()
{
- super(AdenReconstructorManager.class.getSimpleName(), "ai/individual");
+ super(AdenReconstructorManager.class.getSimpleName(), "ai/group_template");
addSpawnId(NPCS);
}
@@ -53,19 +53,19 @@ public final class AdenReconstructorManager extends AbstractNpcAI
{
case "SPAM_TEXT":
{
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.THE_LAND_OF_ADEN_IS_IN_NEED_OF_MATERIALS_TO_REBUILD_FROM_SHILEN_S_DESTRUCTION);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.THE_LAND_OF_ADEN_IS_IN_NEED_OF_MATERIALS_TO_REBUILD_FROM_SHILEN_S_DESTRUCTION);
startQuestTimer("SPAM_TEXT2", 1000, npc, null);
break;
}
case "SPAM_TEXT2":
{
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.PLEASE_DONATE_ANY_UNUSED_MATERIALS_YOU_HAVE_TO_HELP_REBUILD_ADEN);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.PLEASE_DONATE_ANY_UNUSED_MATERIALS_YOU_HAVE_TO_HELP_REBUILD_ADEN);
startQuestTimer("SPAM_TEXT3", 1000, npc, null);
break;
}
case "SPAM_TEXT3":
{
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.YOU_LL_RECEIVE_A_GIFT_FOR_ANY_APPLICABLE_DONATION);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.YOU_LL_RECEIVE_A_GIFT_FOR_ANY_APPLICABLE_DONATION);
break;
}
}
diff --git a/trunk/dist/game/data/scripts/ai/group_template/FeedableBeasts.java b/trunk/dist/game/data/scripts/ai/group_template/FeedableBeasts.java
index ba3f9e43b0..1971fc3d64 100644
--- a/trunk/dist/game/data/scripts/ai/group_template/FeedableBeasts.java
+++ b/trunk/dist/game/data/scripts/ai/group_template/FeedableBeasts.java
@@ -26,6 +26,7 @@ import quests.Q00655_AGrandPlanForTamingWildBeasts.Q00655_AGrandPlanForTamingWil
import ai.npc.AbstractNpcAI;
import com.l2jserver.gameserver.ai.CtrlIntention;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.actor.L2Attackable;
import com.l2jserver.gameserver.model.actor.L2Npc;
@@ -441,7 +442,7 @@ public final class FeedableBeasts extends AbstractNpcAI
if (getRandom(20) == 0)
{
NpcStringId message = NpcStringId.getNpcStringId(getRandom(2024, 2029));
- NpcSay packet = new NpcSay(nextNpc, 0, message);
+ NpcSay packet = new NpcSay(nextNpc, ChatType.NPC_GENERAL, message);
if (message.getParamCount() > 0) // player name, $s1
{
packet.addStringParameter(player.getName());
@@ -570,7 +571,7 @@ public final class FeedableBeasts extends AbstractNpcAI
if (getRandom(20) == 0)
{
NpcStringId message = TEXT[growthLevel][getRandom(TEXT[growthLevel].length)];
- NpcSay packet = new NpcSay(npc, 0, message);
+ NpcSay packet = new NpcSay(npc, ChatType.NPC_GENERAL, message);
if (message.getParamCount() > 0) // player name, $s1
{
packet.addStringParameter(caster.getName());
@@ -598,7 +599,7 @@ public final class FeedableBeasts extends AbstractNpcAI
{
beast.onReceiveFood();
NpcStringId message = TAMED_TEXT[getRandom(TAMED_TEXT.length)];
- NpcSay packet = new NpcSay(npc, 0, message);
+ NpcSay packet = new NpcSay(npc, ChatType.NPC_GENERAL, message);
if (message.getParamCount() > 0)
{
packet.addStringParameter(caster.getName());
diff --git a/trunk/dist/game/data/scripts/ai/group_template/GiantsCave.java b/trunk/dist/game/data/scripts/ai/group_template/GiantsCave.java
index 3508a9de51..0f509c8bba 100644
--- a/trunk/dist/game/data/scripts/ai/group_template/GiantsCave.java
+++ b/trunk/dist/game/data/scripts/ai/group_template/GiantsCave.java
@@ -20,11 +20,11 @@ package ai.group_template;
import ai.npc.AbstractNpcAI;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
/**
* Giant's Cave AI.
@@ -53,11 +53,11 @@ public final class GiantsCave extends AbstractNpcAI
{
if (npc.getId() == SCOUTS[0]) // Gamlin
{
- broadcastNpcSay(npc, Say2.NPC_SHOUT, NpcStringId.INTRUDER_DETECTED);
+ broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.INTRUDER_DETECTED);
}
else
{
- broadcastNpcSay(npc, Say2.NPC_SHOUT, NpcStringId.OH_GIANTS_AN_INTRUDER_HAS_BEEN_DISCOVERED);
+ broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.OH_GIANTS_AN_INTRUDER_HAS_BEEN_DISCOVERED);
}
for (L2Character characters : npc.getKnownList().getKnownCharactersInRadius(450))
@@ -95,11 +95,11 @@ public final class GiantsCave extends AbstractNpcAI
npc.setScriptValue(1);
if (getRandomBoolean())
{
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.YOU_GUYS_ARE_DETECTED);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.YOU_GUYS_ARE_DETECTED);
}
else
{
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.WHAT_KIND_OF_CREATURES_ARE_YOU);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.WHAT_KIND_OF_CREATURES_ARE_YOU);
}
startQuestTimer("ATTACK", 6000, npc, player);
startQuestTimer("CLEAR", 120000, npc, null);
@@ -111,4 +111,4 @@ public final class GiantsCave extends AbstractNpcAI
{
new GiantsCave();
}
-}
+}
diff --git a/trunk/dist/game/data/scripts/ai/group_template/LairOfAntharas.java b/trunk/dist/game/data/scripts/ai/group_template/LairOfAntharas.java
index a8437d033e..8e7aac5fd2 100644
--- a/trunk/dist/game/data/scripts/ai/group_template/LairOfAntharas.java
+++ b/trunk/dist/game/data/scripts/ai/group_template/LairOfAntharas.java
@@ -20,11 +20,11 @@ package ai.group_template;
import ai.npc.AbstractNpcAI;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.actor.L2Attackable;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.ValidateLocation;
/**
@@ -82,7 +82,7 @@ public final class LairOfAntharas extends AbstractNpcAI
{
npc.setScriptValue(1);
}
- broadcastNpcSay(npc, Say2.NPC_SHOUT, NpcStringId.WHO_S_THERE_IF_YOU_DISTURB_THE_TEMPER_OF_THE_GREAT_LAND_DRAGON_ANTHARAS_I_WILL_NEVER_FORGIVE_YOU);
+ broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.WHO_S_THERE_IF_YOU_DISTURB_THE_TEMPER_OF_THE_GREAT_LAND_DRAGON_ANTHARAS_I_WILL_NEVER_FORGIVE_YOU);
}
return super.onAggroRangeEnter(npc, player, isSummon);
}
@@ -98,7 +98,7 @@ public final class LairOfAntharas extends AbstractNpcAI
{
final L2Npc newKnight = addSpawn(DRAGON_KNIGHT2, npc, false, 0, true);
npc.deleteMe();
- broadcastNpcSay(newKnight, Say2.NPC_SHOUT, NpcStringId.THOSE_WHO_SET_FOOT_IN_THIS_PLACE_SHALL_NOT_LEAVE_ALIVE);
+ broadcastNpcSay(newKnight, ChatType.NPC_SHOUT, NpcStringId.THOSE_WHO_SET_FOOT_IN_THIS_PLACE_SHALL_NOT_LEAVE_ALIVE);
addAttackPlayerDesire(newKnight, killer);
}
break;
@@ -109,7 +109,7 @@ public final class LairOfAntharas extends AbstractNpcAI
{
final L2Npc eliteKnight = addSpawn(ELITE_DRAGON_KNIGHT, npc, false, 0, true);
npc.deleteMe();
- broadcastNpcSay(eliteKnight, Say2.NPC_SHOUT, NpcStringId.IF_YOU_WISH_TO_SEE_HELL_I_WILL_GRANT_YOU_YOUR_WISH);
+ broadcastNpcSay(eliteKnight, ChatType.NPC_SHOUT, NpcStringId.IF_YOU_WISH_TO_SEE_HELL_I_WILL_GRANT_YOU_YOUR_WISH);
addAttackPlayerDesire(eliteKnight, killer);
}
break;
diff --git a/trunk/dist/game/data/scripts/ai/group_template/MinionSpawnManager.java b/trunk/dist/game/data/scripts/ai/group_template/MinionSpawnManager.java
index 7c356ad93c..864aaa74ea 100644
--- a/trunk/dist/game/data/scripts/ai/group_template/MinionSpawnManager.java
+++ b/trunk/dist/game/data/scripts/ai/group_template/MinionSpawnManager.java
@@ -23,12 +23,12 @@ import java.util.Set;
import ai.npc.AbstractNpcAI;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2MonsterInstance;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.holders.MinionHolder;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
/**
* Minion Spawn Manager.
@@ -441,7 +441,7 @@ public final class MinionSpawnManager extends AbstractNpcAI
{
addMinion((L2MonsterInstance) npc, is.getId());
}
- broadcastNpcSay(npc, Say2.NPC_ALL, ON_ATTACK_MSG[getRandom(ON_ATTACK_MSG.length)]);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, ON_ATTACK_MSG[getRandom(ON_ATTACK_MSG.length)]);
}
}
}
diff --git a/trunk/dist/game/data/scripts/ai/group_template/MonasteryOfSilence.java b/trunk/dist/game/data/scripts/ai/group_template/MonasteryOfSilence.java
index cf8d577785..abe409ab4f 100644
--- a/trunk/dist/game/data/scripts/ai/group_template/MonasteryOfSilence.java
+++ b/trunk/dist/game/data/scripts/ai/group_template/MonasteryOfSilence.java
@@ -21,6 +21,7 @@ package ai.group_template;
import ai.npc.AbstractNpcAI;
import com.l2jserver.gameserver.ai.CtrlIntention;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.actor.L2Attackable;
import com.l2jserver.gameserver.model.actor.L2Character;
@@ -30,7 +31,6 @@ import com.l2jserver.gameserver.model.effects.L2EffectType;
import com.l2jserver.gameserver.model.holders.SkillHolder;
import com.l2jserver.gameserver.model.skills.Skill;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
/**
* Monastery of Silence AI.
@@ -97,7 +97,7 @@ public final class MonasteryOfSilence extends AbstractNpcAI
if ((character.getId() == CAPTAIN) && (getRandom(100) < 10) && npc.isScriptValue(0))
{
final L2Npc captain = (L2Npc) character;
- broadcastNpcSay(captain, Say2.NPC_ALL, SOLINA_KNIGHTS_MSG[getRandom(SOLINA_KNIGHTS_MSG.length)]);
+ broadcastNpcSay(captain, ChatType.NPC_GENERAL, SOLINA_KNIGHTS_MSG[getRandom(SOLINA_KNIGHTS_MSG.length)]);
captain.setScriptValue(1);
startQuestTimer("TIMER", 10000, captain, null);
}
@@ -162,7 +162,7 @@ public final class MonasteryOfSilence extends AbstractNpcAI
npc.doCast(KNIGHT_BLESS.getSkill());
}
npc.setScriptValue(1);
- broadcastNpcSay(npc, Say2.ALL, NpcStringId.FOR_THE_GLORY_OF_SOLINA);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.FOR_THE_GLORY_OF_SOLINA);
addAttackPlayerDesire(addSpawn(KNIGHT, npc), player);
}
break;
@@ -254,7 +254,7 @@ public final class MonasteryOfSilence extends AbstractNpcAI
if (!npc.isInCombat())
{
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.YOU_CANNOT_CARRY_A_WEAPON_WITHOUT_AUTHORIZATION);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.YOU_CANNOT_CARRY_A_WEAPON_WITHOUT_AUTHORIZATION);
}
addAttackPlayerDesire(npc, player);
@@ -271,7 +271,7 @@ public final class MonasteryOfSilence extends AbstractNpcAI
{
if (obj.equals(npc))
{
- broadcastNpcSay(npc, Say2.NPC_ALL, DIVINITY_MSG[getRandom(DIVINITY_MSG.length)], caster.getName());
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, DIVINITY_MSG[getRandom(DIVINITY_MSG.length)], caster.getName());
addAttackPlayerDesire(npc, caster);
break;
}
diff --git a/trunk/dist/game/data/scripts/ai/group_template/PlainsOfDion.java b/trunk/dist/game/data/scripts/ai/group_template/PlainsOfDion.java
index 7d6b7accce..b76630b4ea 100644
--- a/trunk/dist/game/data/scripts/ai/group_template/PlainsOfDion.java
+++ b/trunk/dist/game/data/scripts/ai/group_template/PlainsOfDion.java
@@ -21,11 +21,11 @@ package ai.group_template;
import ai.npc.AbstractNpcAI;
import com.l2jserver.gameserver.GeoData;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.util.Util;
/**
@@ -71,11 +71,11 @@ public final class PlainsOfDion extends AbstractNpcAI
final int i = getRandom(5);
if (i < 2)
{
- broadcastNpcSay(npc, Say2.NPC_ALL, MONSTERS_MSG[i], player.getName());
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, MONSTERS_MSG[i], player.getName());
}
else
{
- broadcastNpcSay(npc, Say2.NPC_ALL, MONSTERS_MSG[i]);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, MONSTERS_MSG[i]);
}
for (L2Character obj : npc.getKnownList().getKnownCharactersInRadius(npc.getTemplate().getClanHelpRange()))
@@ -84,7 +84,7 @@ public final class PlainsOfDion extends AbstractNpcAI
{
final L2Npc monster = (L2Npc) obj;
addAttackPlayerDesire(monster, player);
- broadcastNpcSay(monster, Say2.NPC_ALL, MONSTERS_ASSIST_MSG[getRandom(3)]);
+ broadcastNpcSay(monster, ChatType.NPC_GENERAL, MONSTERS_ASSIST_MSG[getRandom(3)]);
}
}
npc.setScriptValue(1);
diff --git a/trunk/dist/game/data/scripts/ai/group_template/PolymorphingOnAttack.java b/trunk/dist/game/data/scripts/ai/group_template/PolymorphingOnAttack.java
index ade91134f1..4f9f3c597b 100644
--- a/trunk/dist/game/data/scripts/ai/group_template/PolymorphingOnAttack.java
+++ b/trunk/dist/game/data/scripts/ai/group_template/PolymorphingOnAttack.java
@@ -26,12 +26,12 @@ import java.util.Map;
import ai.npc.AbstractNpcAI;
import com.l2jserver.gameserver.ai.CtrlIntention;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.actor.L2Attackable;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
/**
@@ -98,7 +98,7 @@ public final class PolymorphingOnAttack extends AbstractNpcAI
if (tmp.get(3) >= 0)
{
NpcStringId npcString = MOBTEXTS[tmp.get(3)][getRandom(MOBTEXTS[tmp.get(3)].length)];
- npc.broadcastPacket(new CreatureSay(npc.getObjectId(), Say2.NPC_ALL, npc.getName(), npcString));
+ npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), npcString));
}
npc.deleteMe();
diff --git a/trunk/dist/game/data/scripts/ai/group_template/PrimevalIsle.java b/trunk/dist/game/data/scripts/ai/group_template/PrimevalIsle.java
index ecc838201a..689d845954 100644
--- a/trunk/dist/game/data/scripts/ai/group_template/PrimevalIsle.java
+++ b/trunk/dist/game/data/scripts/ai/group_template/PrimevalIsle.java
@@ -22,6 +22,7 @@ import ai.npc.AbstractNpcAI;
import com.l2jserver.gameserver.GeoData;
import com.l2jserver.gameserver.ai.CtrlIntention;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.handler.IItemHandler;
import com.l2jserver.gameserver.handler.ItemHandler;
import com.l2jserver.gameserver.model.Location;
@@ -34,7 +35,6 @@ import com.l2jserver.gameserver.model.holders.SkillHolder;
import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
import com.l2jserver.gameserver.model.skills.Skill;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.util.Util;
/**
@@ -311,7 +311,7 @@ public final class PrimevalIsle extends AbstractNpcAI
if (npc.isScriptValue(0))
{
npc.setScriptValue(1);
- broadcastNpcSay(npc, Say2.NPC_ALL, "?");
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, "?");
((L2Attackable) npc).clearAggroList();
startQuestTimer("TREX_ATTACK", 6000, npc, player);
}
diff --git a/trunk/dist/game/data/scripts/ai/group_template/PrisonGuards.java b/trunk/dist/game/data/scripts/ai/group_template/PrisonGuards.java
index 10fddab7b3..96b6fee785 100644
--- a/trunk/dist/game/data/scripts/ai/group_template/PrisonGuards.java
+++ b/trunk/dist/game/data/scripts/ai/group_template/PrisonGuards.java
@@ -20,6 +20,7 @@ package ai.group_template;
import ai.npc.AbstractNpcAI;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.actor.L2Attackable;
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.skills.Skill;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
/**
* Prison Guards AI.
@@ -94,7 +94,7 @@ public final class PrisonGuards extends AbstractNpcAI
{
npc.setTarget(player);
npc.doCast(STONE.getSkill());
- broadcastNpcSay(npc, Say2.ALL, NpcStringId.IT_S_NOT_EASY_TO_OBTAIN);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.IT_S_NOT_EASY_TO_OBTAIN);
}
}
else
@@ -103,7 +103,7 @@ public final class PrisonGuards extends AbstractNpcAI
{
npc.setTarget(player);
npc.doCast(STONE.getSkill());
- broadcastNpcSay(npc, Say2.ALL, NpcStringId.YOU_RE_OUT_OF_YOUR_MIND_COMING_HERE);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.YOU_RE_OUT_OF_YOUR_MIND_COMING_HERE);
}
}
return super.onAttack(npc, player, damage, isSummon);
diff --git a/trunk/dist/game/data/scripts/ai/group_template/RangeGuard.java b/trunk/dist/game/data/scripts/ai/group_template/RangeGuard.java
deleted file mode 100644
index 79f424f19b..0000000000
--- a/trunk/dist/game/data/scripts/ai/group_template/RangeGuard.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package ai.group_template;
-
-import ai.npc.AbstractNpcAI;
-
-import com.l2jserver.gameserver.data.xml.impl.NpcData;
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.L2Playable;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
-import com.l2jserver.gameserver.model.holders.SkillHolder;
-import com.l2jserver.gameserver.model.skills.Skill;
-import com.l2jserver.gameserver.util.Util;
-
-/**
- * Range Guard AI.
- * @author St3eT.
- */
-public final class RangeGuard extends AbstractNpcAI
-{
- // Skill
- private static SkillHolder ULTIMATE_DEFENSE = new SkillHolder(5044, 3); // NPC Ultimate Defense
- //@formatter:off
- private static final int[] NOT_ALLOWED_SKILLS =
- {
- 15, 28, // Charm / Aggression
- 51, 65, // Lure / Horror
- 106, 115, // Veil / Power Break
- 122, 127, // Hex / Hamstring
- 254, 352, // Spoil / Shield Bash
- 353, 358, // Shield Slam / Bluff
- 402, 403, // Arrest / Shackle
- 412, 485, // Sand Bomb / Disarm
- 501, 511, // Violent Temper / Temptation
- 522, 531, // Real Target / Critical Wound
- 680, 695, // Divine Knight Hate / Divine Wizard Divine Cloud
- 696, 716, // Divine Wizard Surrender to Divine / Zaken Hold
- 775, 792, // Weapon Blockade / Betrayal Mark
- 1042, 1049, // Hold Undead / Requiem
- 1069, 1071, // Sleep / Surrender To Water
- 1072, 1074, // Sleeping Cloud / Surrender To Wind
- 1083, 1097, // Surrender To Fire / Dreaming Spirit
- 1092, 1064, // Fear / Silence
- 1160, 1164, // Slow / Curse Weakness
- 1169, 1170, // Curse Fear / Anchor
- 1201, 1206, // Dryad Root / Wind Shackle
- 1222, 1223, // Curse Chaos / Surrender To Earth
- 1224, 1263, // Surrender To Poison / Curse Gloom
- 1269, 1336, // Curse Disease / Curse of Doom
- 1337, 1338, // Curse of Abyss / Arcane Chaos
- 1358, 1359, // Block Shield / Block Wind Walk
- 1386, 1394, // Arcane Disruption / Trance
- 1396, 1445, // Magical BackFire / Surrender to Dark
- 1446, 1447, // Shadow Bind / Voice Bind
- 1481, 1482, // Oblivion / Weak Constitution
- 1483, 1484, // Thin Skin / Enervation
- 1485, 1486, // Spite / Mental Impoverish
- 1511, 1524, // Curse of Life Flow / Surrender to the Divine
- 1529, // Soul Web
- };
- //@formatter:on
- // Misc
- private static final int MIN_DISTANCE = 150;
-
- private RangeGuard()
- {
- super(RangeGuard.class.getSimpleName(), "ai/group_template");
-
- for (L2NpcTemplate template : NpcData.getInstance().getAllNpcOfClassType("L2Monster"))
- {
- if (template.getParameters().getInt("LongRangeGuardRate", -1) > 0)
- {
- addAttackId(template.getId());
- }
- }
- }
-
- @Override
- public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon, Skill skill)
- {
- final L2Playable playable = (isSummon) ? attacker.getServitors().values().stream().findFirst().orElse(attacker.getPet()) : attacker;
- final int longRangeGuardRate = npc.getTemplate().getParameters().getInt("LongRangeGuardRate");
- final double distance = Util.calculateDistance(npc, playable, true, false);
-
- if (npc.isAffectedBySkill(ULTIMATE_DEFENSE.getSkillId()) && (distance <= MIN_DISTANCE))
- {
- npc.stopSkillEffects(true, ULTIMATE_DEFENSE.getSkillId());
- }
- else if ((distance > MIN_DISTANCE) && !npc.isSkillDisabled(ULTIMATE_DEFENSE.getSkillId()) && !((skill != null) && Util.contains(NOT_ALLOWED_SKILLS, skill.getId())) && (getRandom(100) < longRangeGuardRate))
- {
- npc.setTarget(npc);
- npc.doCast(ULTIMATE_DEFENSE.getSkill());
- }
- return super.onAttack(npc, attacker, damage, isSummon, skill);
- }
-
- public static void main(String[] args)
- {
- new RangeGuard();
- }
-}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/ai/group_template/SelMahumDrill.java b/trunk/dist/game/data/scripts/ai/group_template/SelMahumDrill.java
index b657af2335..530c86906e 100644
--- a/trunk/dist/game/data/scripts/ai/group_template/SelMahumDrill.java
+++ b/trunk/dist/game/data/scripts/ai/group_template/SelMahumDrill.java
@@ -22,6 +22,7 @@ import ai.npc.AbstractNpcAI;
import com.l2jserver.gameserver.ai.CtrlIntention;
import com.l2jserver.gameserver.datatables.SpawnTable;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.L2Spawn;
import com.l2jserver.gameserver.model.Location;
@@ -29,7 +30,6 @@ import com.l2jserver.gameserver.model.actor.L2Attackable;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.util.Util;
/**
@@ -233,7 +233,7 @@ public final class SelMahumDrill extends AbstractNpcAI
{
if (getRandom(4) < 1)
{
- broadcastNpcSay(receiver, Say2.NPC_ALL, SOLDIER_FSTRINGS[getRandom(2)]);
+ broadcastNpcSay(receiver, ChatType.NPC_GENERAL, SOLDIER_FSTRINGS[getRandom(2)]);
}
if (receiver.canBeAttacked())
{
@@ -251,7 +251,7 @@ public final class SelMahumDrill extends AbstractNpcAI
{
if (Util.contains(MAHUM_CHIEFS, receiver.getId()))
{
- broadcastNpcSay(receiver, Say2.NPC_ALL, CHIEF_FSTRINGS[getRandom(2)]);
+ broadcastNpcSay(receiver, ChatType.NPC_GENERAL, CHIEF_FSTRINGS[getRandom(2)]);
}
break;
}
diff --git a/trunk/dist/game/data/scripts/ai/group_template/SelMahumSquad.java b/trunk/dist/game/data/scripts/ai/group_template/SelMahumSquad.java
index 62d89651b5..bb71318ca9 100644
--- a/trunk/dist/game/data/scripts/ai/group_template/SelMahumSquad.java
+++ b/trunk/dist/game/data/scripts/ai/group_template/SelMahumSquad.java
@@ -23,6 +23,7 @@ import ai.npc.AbstractNpcAI;
import com.l2jserver.gameserver.GameTimeController;
import com.l2jserver.gameserver.ai.CtrlIntention;
import com.l2jserver.gameserver.datatables.SkillData;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.Location;
import com.l2jserver.gameserver.model.actor.L2Npc;
@@ -30,7 +31,6 @@ import com.l2jserver.gameserver.model.actor.instance.L2MonsterInstance;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.skills.Skill;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.util.Util;
/**
@@ -230,7 +230,7 @@ public final class SelMahumSquad extends AbstractNpcAI
final L2Npc stove = addSpawn(STOVE, receiver.getX(), receiver.getY(), receiver.getZ() + 100, 0, false, 0);
stove.setSummoner(receiver);
startQuestTimer("notify_dinner", 2000, receiver, null); // @SCE_DINNER_EAT
- broadcastNpcSay(sender, Say2.NPC_ALL, CHEF_FSTRINGS[getRandom(2)], 1250);
+ broadcastNpcSay(sender, ChatType.NPC_GENERAL, CHEF_FSTRINGS[getRandom(2)], 1250);
}
break;
}
@@ -275,7 +275,7 @@ public final class SelMahumSquad extends AbstractNpcAI
receiver.setIsNoRndWalk(true); // Moving to fire - i_ai0 = 1
receiver.getVariables().set("BUSY_STATE", 1); // Eating - i_ai3 = 1
receiver.setIsRunning(true);
- broadcastNpcSay(receiver, Say2.NPC_ALL, (getRandom(3) < 1) ? NpcStringId.LOOKS_DELICIOUS : NpcStringId.LET_S_GO_EAT);
+ broadcastNpcSay(receiver, ChatType.NPC_GENERAL, (getRandom(3) < 1) ? NpcStringId.LOOKS_DELICIOUS : NpcStringId.LET_S_GO_EAT);
final Location loc = sender.getPointInRange(100, 200);
loc.setHeading(receiver.getHeading());
receiver.stopMove(null);
diff --git a/trunk/dist/game/data/scripts/ai/group_template/SilentValley.java b/trunk/dist/game/data/scripts/ai/group_template/SilentValley.java
index 748be55017..71daab7556 100644
--- a/trunk/dist/game/data/scripts/ai/group_template/SilentValley.java
+++ b/trunk/dist/game/data/scripts/ai/group_template/SilentValley.java
@@ -20,6 +20,7 @@ package ai.group_template;
import ai.npc.AbstractNpcAI;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Npc;
@@ -27,7 +28,6 @@ import com.l2jserver.gameserver.model.actor.L2Summon;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.holders.SkillHolder;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
/**
* Silent Valley AI
@@ -104,7 +104,7 @@ public final class SilentValley extends AbstractNpcAI
if (!isSummon && npc.isScriptValue(0))
{
npc.setScriptValue(1);
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.YOU_WILL_BE_CURSED_FOR_SEEKING_THE_TREASURE);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.YOU_WILL_BE_CURSED_FOR_SEEKING_THE_TREASURE);
npc.setTarget(player);
npc.doCast(BETRAYAL.getSkill());
}
diff --git a/trunk/dist/game/data/scripts/ai/group_template/TurekOrcs.java b/trunk/dist/game/data/scripts/ai/group_template/TurekOrcs.java
index c29e2c5ad1..f1a3622b7e 100644
--- a/trunk/dist/game/data/scripts/ai/group_template/TurekOrcs.java
+++ b/trunk/dist/game/data/scripts/ai/group_template/TurekOrcs.java
@@ -21,6 +21,7 @@ package ai.group_template;
import ai.npc.AbstractNpcAI;
import com.l2jserver.gameserver.ai.CtrlIntention;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.L2World;
import com.l2jserver.gameserver.model.Location;
@@ -83,7 +84,7 @@ public final class TurekOrcs extends AbstractNpcAI
else if ((npc.getCurrentHp() < (npc.getMaxHp() * 0.5)) && (npc.getCurrentHp() > (npc.getMaxHp() * 0.3)) && (attacker.getCurrentHp() > (attacker.getMaxHp() * 0.25)) && npc.hasAIValue("fleeX") && npc.hasAIValue("fleeY") && npc.hasAIValue("fleeZ") && (npc.getVariables().getInt("state") == 0) && (getRandom(100) < 10))
{
// Say and flee
- broadcastNpcSay(npc, 0, NpcStringId.getNpcStringId(getRandom(1000007, 1000027)));
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.getNpcStringId(getRandom(1000007, 1000027)));
npc.disableCoreAI(true); // to avoid attacking behaviour, while flee
npc.setIsRunning(true);
npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(npc.getAIValue("fleeX"), npc.getAIValue("fleeY"), npc.getAIValue("fleeZ")));
diff --git a/trunk/dist/game/data/scripts/ai/group_template/VarkaKetra.java b/trunk/dist/game/data/scripts/ai/group_template/VarkaKetra.java
deleted file mode 100644
index d957b129d5..0000000000
--- a/trunk/dist/game/data/scripts/ai/group_template/VarkaKetra.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package ai.group_template;
-
-import quests.Q00605_AllianceWithKetraOrcs.Q00605_AllianceWithKetraOrcs;
-import quests.Q00606_BattleAgainstVarkaSilenos.Q00606_BattleAgainstVarkaSilenos;
-import quests.Q00607_ProveYourCourageKetra.Q00607_ProveYourCourageKetra;
-import quests.Q00608_SlayTheEnemyCommanderKetra.Q00608_SlayTheEnemyCommanderKetra;
-import quests.Q00609_MagicalPowerOfWaterPart1.Q00609_MagicalPowerOfWaterPart1;
-import quests.Q00610_MagicalPowerOfWaterPart2.Q00610_MagicalPowerOfWaterPart2;
-import quests.Q00611_AllianceWithVarkaSilenos.Q00611_AllianceWithVarkaSilenos;
-import quests.Q00612_BattleAgainstKetraOrcs.Q00612_BattleAgainstKetraOrcs;
-import quests.Q00613_ProveYourCourageVarka.Q00613_ProveYourCourageVarka;
-import quests.Q00614_SlayTheEnemyCommanderVarka.Q00614_SlayTheEnemyCommanderVarka;
-import quests.Q00615_MagicalPowerOfFirePart1.Q00615_MagicalPowerOfFirePart1;
-import quests.Q00616_MagicalPowerOfFirePart2.Q00616_MagicalPowerOfFirePart2;
-import ai.npc.AbstractNpcAI;
-
-import com.l2jserver.gameserver.model.actor.L2Attackable;
-import com.l2jserver.gameserver.model.actor.L2Character;
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.util.Util;
-
-/**
- * Varka Silenos Barracks and Ketra Orc Outpost AI
- * @author malyelfik
- */
-public class VarkaKetra extends AbstractNpcAI
-{
- // Monsters
- private static final int[] KETRA =
- {
- 21324, // Ketra Orc Footman
- 21325, // Ketra's War Hound
- 21327, // Ketra Orc Raider
- 21328, // Ketra Orc Scout
- 21329, // Ketra Orc Shaman
- 21331, // Ketra Orc Warrior
- 21332, // Ketra Orc Lieutenant
- 21334, // Ketra Orc Medium
- 21336, // Ketra Orc White Captain
- 21338, // Ketra Orc Seer
- 21339, // Ketra Orc General
- 21340, // Ketra Orc Battalion Commander
- 21342, // Ketra Orc Grand Seer
- 21343, // Ketra Commander
- 21344, // Ketra Elite Guard
- 21345, // Ketra's Head Shaman
- 21346, // Ketra's Head Guard
- 21347, // Ketra Prophet
- 21348, // Prophet's Guard
- 21349, // Prophet's Aide
- 25299, // Ketra's Hero Hekaton (Raid Boss)
- 25302, // Ketra's Commander Tayr (Raid Boss)
- 25305, // Ketra's Chief Brakki (Raid Boss)
- 25306, // Soul of Fire Nastron (Raid Boss)
- };
- private static final int[] VARKA =
- {
- 21350, // Varka Silenos Recruit
- 21351, // Varka Silenos Footman
- 21353, // Varka Silenos Scout
- 21354, // Varka Silenos Hunter
- 21355, // Varka Silenos Shaman
- 21357, // Varka Silenos Priest
- 21358, // Varka Silenos Warrior
- 21360, // Varka Silenos Medium
- 21361, // Varka Silenos Magus
- 21362, // Varka Silenos Officer
- 21364, // Varka Silenos Seer
- 21365, // Varka Silenos Great Magus
- 21366, // Varka Silenos General
- 21368, // Varka Silenos Great Seer
- 21369, // Varka's Commander
- 21370, // Varka's Elite Guard
- 21371, // Varka's Head Magus
- 21372, // Varka's Head Guard
- 21373, // Varka's Prophet
- 21374, // Prophet's Guard
- 21375, // Disciple of Prophet
- 25309, // Varka's Hero Shadith (Raid Boss)
- 25312, // Varka's Commander Mos (Raid Boss)
- 25315, // Varka's Chief Horus (Raid Boss)
- 25316, // Soul of Water Ashutar (Raid Boss)
- };
- // Items
- private static final int[] KETRA_MARKS =
- {
- 7211, // Mark of Ketra's Alliance - Level 1
- 7212, // Mark of Ketra's Alliance - Level 2
- 7213, // Mark of Ketra's Alliance - Level 3
- 7214, // Mark of Ketra's Alliance - Level 4
- 7215, // Mark of Ketra's Alliance - Level 5
- };
- private static final int[] VARKA_MARKS =
- {
- 7221, // Mark of Varka's Alliance - Level 1
- 7222, // Mark of Varka's Alliance - Level 2
- 7223, // Mark of Varka's Alliance - Level 3
- 7224, // Mark of Varka's Alliance - Level 4
- 7225, // Mark of Varka's Alliance - Level 5
- };
- // Quests
- private static final String[] KETRA_QUESTS =
- {
- Q00605_AllianceWithKetraOrcs.class.getSimpleName(),
- Q00606_BattleAgainstVarkaSilenos.class.getSimpleName(),
- Q00607_ProveYourCourageKetra.class.getSimpleName(),
- Q00608_SlayTheEnemyCommanderKetra.class.getSimpleName(),
- Q00609_MagicalPowerOfWaterPart1.class.getSimpleName(),
- Q00610_MagicalPowerOfWaterPart2.class.getSimpleName()
- };
- private static final String[] VARKA_QUESTS =
- {
- Q00611_AllianceWithVarkaSilenos.class.getSimpleName(),
- Q00612_BattleAgainstKetraOrcs.class.getSimpleName(),
- Q00613_ProveYourCourageVarka.class.getSimpleName(),
- Q00614_SlayTheEnemyCommanderVarka.class.getSimpleName(),
- Q00615_MagicalPowerOfFirePart1.class.getSimpleName(),
- Q00616_MagicalPowerOfFirePart2.class.getSimpleName()
- };
-
- private VarkaKetra()
- {
- super(VarkaKetra.class.getSimpleName(), "ai/group_template");
- addKillId(KETRA);
- addKillId(VARKA);
- addNpcHateId(KETRA);
- addNpcHateId(VARKA);
- }
-
- @Override
- public void actionForEachPlayer(L2PcInstance player, L2Npc npc, boolean isSummon)
- {
- if (Util.checkIfInRange(1500, player, npc, false))
- {
- if (Util.contains(KETRA, npc.getId()) && hasAtLeastOneQuestItem(player, KETRA_MARKS))
- {
- decreaseAlliance(player, KETRA_MARKS);
- exitQuests(player, KETRA_QUESTS);
- }
- else if (Util.contains(VARKA, npc.getId()) && hasAtLeastOneQuestItem(player, VARKA_MARKS))
- {
- decreaseAlliance(player, VARKA_MARKS);
- exitQuests(player, VARKA_QUESTS);
- }
- }
- }
-
- private final void decreaseAlliance(L2PcInstance player, int[] marks)
- {
- for (int i = 0; i < marks.length; i++)
- {
- if (hasQuestItems(player, marks[i]))
- {
- takeItems(player, marks[i], -1);
- if (i > 0)
- {
- giveItems(player, marks[i - 1], 1);
- }
- return;
- }
- }
- }
-
- private final void exitQuests(L2PcInstance player, String[] quests)
- {
- for (String quest : quests)
- {
- final QuestState qs = player.getQuestState(quest);
- if ((qs != null) && qs.isStarted())
- {
- qs.exitQuest(true);
- }
- }
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
- {
- executeForEachPlayer(killer, npc, isSummon, true, false);
- return super.onKill(npc, killer, isSummon);
- }
-
- @Override
- public boolean onNpcHate(L2Attackable mob, L2PcInstance player, boolean isSummon)
- {
- return stopAttack(player, mob) ? false : super.onNpcHate(mob, player, isSummon);
- }
-
- private final boolean stopAttack(L2PcInstance player, L2Character monster)
- {
- return (Util.contains(KETRA, monster.getId()) && hasAtLeastOneQuestItem(player, KETRA_MARKS)) || (Util.contains(VARKA, monster.getId()) && hasAtLeastOneQuestItem(player, VARKA_MARKS));
- }
-
- public static void main(String[] args)
- {
- new VarkaKetra();
- }
-}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/ai/group_template/WarriorFishingBlock.java b/trunk/dist/game/data/scripts/ai/group_template/WarriorFishingBlock.java
index 4a3a8b3529..89dfcd3f93 100644
--- a/trunk/dist/game/data/scripts/ai/group_template/WarriorFishingBlock.java
+++ b/trunk/dist/game/data/scripts/ai/group_template/WarriorFishingBlock.java
@@ -21,12 +21,12 @@ package ai.group_template;
import ai.npc.AbstractNpcAI;
import com.l2jserver.gameserver.ai.CtrlEvent;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.actor.L2Attackable;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
/**
* Warrior Fishing Block AI.
@@ -92,7 +92,7 @@ public final class WarriorFishingBlock extends AbstractNpcAI
else
{
final L2PcInstance target = obj.getActingPlayer();
- broadcastNpcSay(npc, Say2.NPC_ALL, NPC_STRINGS_ON_SPAWN[getRandom(NPC_STRINGS_ON_SPAWN.length)], target.getName());
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NPC_STRINGS_ON_SPAWN[getRandom(NPC_STRINGS_ON_SPAWN.length)], target.getName());
((L2Attackable) npc).addDamageHate(target, 0, 2000);
npc.getAI().notifyEvent(CtrlEvent.EVT_ATTACKED, target);
npc.addAttackerToAttackByList(target);
@@ -115,7 +115,7 @@ public final class WarriorFishingBlock extends AbstractNpcAI
{
if (getRandom(100) < CHANCE_TO_SHOUT_ON_ATTACK)
{
- broadcastNpcSay(npc, Say2.NPC_ALL, NPC_STRINGS_ON_ATTACK[getRandom(NPC_STRINGS_ON_ATTACK.length)]);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NPC_STRINGS_ON_ATTACK[getRandom(NPC_STRINGS_ON_ATTACK.length)]);
}
return super.onAttack(npc, attacker, damage, isSummon);
}
@@ -123,7 +123,7 @@ public final class WarriorFishingBlock extends AbstractNpcAI
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
- broadcastNpcSay(npc, Say2.NPC_ALL, NPC_STRINGS_ON_KILL[getRandom(NPC_STRINGS_ON_KILL.length)]);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NPC_STRINGS_ON_KILL[getRandom(NPC_STRINGS_ON_KILL.length)]);
cancelQuestTimer("DESPAWN", npc, killer);
return super.onKill(npc, killer, isSummon);
}
diff --git a/trunk/dist/game/data/scripts/ai/individual/Baium/Baium.java b/trunk/dist/game/data/scripts/ai/individual/Baium/Baium.java
index b3331294e4..c08c045abc 100644
--- a/trunk/dist/game/data/scripts/ai/individual/Baium/Baium.java
+++ b/trunk/dist/game/data/scripts/ai/individual/Baium/Baium.java
@@ -23,6 +23,7 @@ import ai.npc.AbstractNpcAI;
import com.l2jserver.Config;
import com.l2jserver.gameserver.ai.CtrlIntention;
import com.l2jserver.gameserver.enums.CategoryType;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.enums.MountType;
import com.l2jserver.gameserver.instancemanager.GrandBossManager;
import com.l2jserver.gameserver.instancemanager.ZoneManager;
@@ -39,7 +40,6 @@ import com.l2jserver.gameserver.model.skills.Skill;
import com.l2jserver.gameserver.model.variables.NpcVariables;
import com.l2jserver.gameserver.model.zone.type.L2NoRestartZone;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.Earthquake;
import com.l2jserver.gameserver.network.serverpackets.ExShowScreenMessage;
import com.l2jserver.gameserver.network.serverpackets.PlaySound;
@@ -266,7 +266,7 @@ public final class Baium extends AbstractNpcAI
if ((player != null) && player.isInsideRadius(npc, 16000, true, false))
{
zone.broadcastPacket(new SocialAction(npc.getObjectId(), 1));
- broadcastNpcSay(npc, Say2.NPC_ALL, player.getName() + ", How dare you wake me! Now you shall die!"); // TODO: replace with NpcStringId when are done core support
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, player.getName() + ", How dare you wake me! Now you shall die!"); // TODO: replace with NpcStringId when are done core support
npc.setTarget(player);
npc.doCast(BAIUM_PRESENT.getSkill());
}
diff --git a/trunk/dist/game/data/scripts/ai/individual/Banette.java b/trunk/dist/game/data/scripts/ai/individual/Banette.java
new file mode 100644
index 0000000000..fae3ff3f38
--- /dev/null
+++ b/trunk/dist/game/data/scripts/ai/individual/Banette.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2004-2015 L2J DataPack
+ *
+ * This file is part of L2J DataPack.
+ *
+ * L2J DataPack is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * L2J DataPack is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package ai.individual;
+
+import ai.npc.AbstractNpcAI;
+
+import com.l2jserver.gameserver.enums.ChatType;
+import com.l2jserver.gameserver.model.actor.L2Npc;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.network.NpcStringId;
+
+/**
+ * Banette AI.
+ * @author Gladicek
+ */
+public final class Banette extends AbstractNpcAI
+{
+ // NPCs
+ private static final int BANETTE = 33114;
+ // Misc
+ private static final NpcStringId[] BANETTE_SHOUT =
+ {
+ NpcStringId.TRAINING_GROUND_IS_LOCATED_STRAIGHT_AHEAD,
+ NpcStringId.WHILE_TRAINING_IN_THE_TRAINING_GROUNDS_IT_BECOMES_PROGRESSIVELY_DIFFICULT,
+ NpcStringId.TRAINING_GROUNDS_ACCESS_YOU_NEED_TO_SPEAK_WITH_PANTHEON_IN_THE_MUSEUM
+ };
+
+ private Banette()
+ {
+ super(Banette.class.getSimpleName(), "ai/individual");
+ addSpawnId(BANETTE);
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ if (event.equals("SPAM_TEXT") && (npc != null))
+ {
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, BANETTE_SHOUT[getRandom(3)], 1000);
+ }
+ return super.onAdvEvent(event, npc, player);
+ }
+
+ @Override
+ public String onSpawn(L2Npc npc)
+ {
+ startQuestTimer("SPAM_TEXT", 5000, npc, null, true);
+ return super.onSpawn(npc);
+ }
+
+ public static void main(String[] args)
+ {
+ new Banette();
+ }
+}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/ai/individual/Beleth.java b/trunk/dist/game/data/scripts/ai/individual/Beleth.java
index 7c830a7da1..79ca45482b 100644
--- a/trunk/dist/game/data/scripts/ai/individual/Beleth.java
+++ b/trunk/dist/game/data/scripts/ai/individual/Beleth.java
@@ -29,6 +29,7 @@ import com.l2jserver.gameserver.ai.CtrlIntention;
import com.l2jserver.gameserver.cache.HtmCache;
import com.l2jserver.gameserver.data.xml.impl.DoorData;
import com.l2jserver.gameserver.data.xml.impl.NpcData;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.instancemanager.GrandBossManager;
import com.l2jserver.gameserver.instancemanager.ZoneManager;
import com.l2jserver.gameserver.model.L2Object;
@@ -496,7 +497,7 @@ public final class Beleth extends AbstractNpcAI
{
fakeBeleth = MINIONS.get(getRandom(MINIONS.size()));
}
- ZONE.broadcastPacket(new CreatureSay(fakeBeleth.getObjectId(), 0, fakeBeleth.getName(), "Miss text."));
+ ZONE.broadcastPacket(new CreatureSay(fakeBeleth.getObjectId(), ChatType.NPC_GENERAL, fakeBeleth.getName(), "Miss text."));
}
if (getRandom(100) < 40)
{
diff --git a/trunk/dist/game/data/scripts/ai/individual/Bink.java b/trunk/dist/game/data/scripts/ai/individual/Bink.java
new file mode 100644
index 0000000000..0e3b90ef58
--- /dev/null
+++ b/trunk/dist/game/data/scripts/ai/individual/Bink.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2004-2015 L2J DataPack
+ *
+ * This file is part of L2J DataPack.
+ *
+ * L2J DataPack is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * L2J DataPack is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package ai.individual;
+
+import ai.npc.AbstractNpcAI;
+
+import com.l2jserver.gameserver.enums.ChatType;
+import com.l2jserver.gameserver.model.actor.L2Npc;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.network.NpcStringId;
+
+/**
+ * Bink AI.
+ * @author Gladicek
+ */
+public final class Bink extends AbstractNpcAI
+{
+ // NPCs
+ private static final int BINK = 33223;
+
+ private Bink()
+ {
+ super(Bink.class.getSimpleName(), "ai/individual");
+ addSpawnId(BINK);
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ if (event.equals("SPAM_TEXT") && (npc != null))
+ {
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.TALKING_ISLAND_VILLAGE_IS_REALLY_BEAUTIFUL, 1000);
+ }
+ return super.onAdvEvent(event, npc, player);
+ }
+
+ @Override
+ public String onSpawn(L2Npc npc)
+ {
+ startQuestTimer("SPAM_TEXT", 10000, npc, null, true);
+ return super.onSpawn(npc);
+ }
+
+ public static void main(String[] args)
+ {
+ new Bink();
+ }
+}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/ai/individual/Core.java b/trunk/dist/game/data/scripts/ai/individual/Core.java
index a028722087..4e6813f6c6 100644
--- a/trunk/dist/game/data/scripts/ai/individual/Core.java
+++ b/trunk/dist/game/data/scripts/ai/individual/Core.java
@@ -24,6 +24,7 @@ import javolution.util.FastList;
import ai.npc.AbstractNpcAI;
import com.l2jserver.Config;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.instancemanager.GrandBossManager;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.actor.L2Attackable;
@@ -31,7 +32,6 @@ import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2GrandBossInstance;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.NpcSay;
import com.l2jserver.gameserver.network.serverpackets.PlaySound;
@@ -177,14 +177,14 @@ public final class Core extends AbstractNpcAI
{
if (getRandom(100) == 0)
{
- npc.broadcastPacket(new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npc.getId(), NpcStringId.REMOVING_INTRUDERS));
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.REMOVING_INTRUDERS));
}
}
else
{
_FirstAttacked = true;
- npc.broadcastPacket(new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npc.getId(), NpcStringId.A_NON_PERMITTED_TARGET_HAS_BEEN_DISCOVERED));
- npc.broadcastPacket(new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npc.getId(), NpcStringId.INTRUDER_REMOVAL_SYSTEM_INITIATED));
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.A_NON_PERMITTED_TARGET_HAS_BEEN_DISCOVERED));
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.INTRUDER_REMOVAL_SYSTEM_INITIATED));
}
}
return super.onAttack(npc, attacker, damage, isSummon);
@@ -198,9 +198,9 @@ public final class Core extends AbstractNpcAI
{
int objId = npc.getObjectId();
npc.broadcastPacket(new PlaySound(1, "BS02_D", 1, objId, npc.getX(), npc.getY(), npc.getZ()));
- npc.broadcastPacket(new NpcSay(objId, Say2.NPC_ALL, npcId, NpcStringId.A_FATAL_ERROR_HAS_OCCURRED));
- npc.broadcastPacket(new NpcSay(objId, Say2.NPC_ALL, npcId, NpcStringId.SYSTEM_IS_BEING_SHUT_DOWN));
- npc.broadcastPacket(new NpcSay(objId, Say2.NPC_ALL, npcId, NpcStringId.EMPTY));
+ npc.broadcastPacket(new NpcSay(objId, ChatType.NPC_GENERAL, npcId, NpcStringId.A_FATAL_ERROR_HAS_OCCURRED));
+ npc.broadcastPacket(new NpcSay(objId, ChatType.NPC_GENERAL, npcId, NpcStringId.SYSTEM_IS_BEING_SHUT_DOWN));
+ npc.broadcastPacket(new NpcSay(objId, ChatType.NPC_GENERAL, npcId, NpcStringId.EMPTY));
_FirstAttacked = false;
GrandBossManager.getInstance().setBossStatus(CORE, DEAD);
// Calculate Min and Max respawn times randomly.
diff --git a/trunk/dist/game/data/scripts/ai/individual/CrimsonHatuOtis.java b/trunk/dist/game/data/scripts/ai/individual/CrimsonHatuOtis.java
index 4a766836c9..ea19963e48 100644
--- a/trunk/dist/game/data/scripts/ai/individual/CrimsonHatuOtis.java
+++ b/trunk/dist/game/data/scripts/ai/individual/CrimsonHatuOtis.java
@@ -20,11 +20,11 @@ package ai.individual;
import ai.npc.AbstractNpcAI;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.holders.SkillHolder;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
/**
* AI for Kamaloka (33) - Crimson Hatu Otis
@@ -85,7 +85,7 @@ public final class CrimsonHatuOtis extends AbstractNpcAI
}
else if (npc.isScriptValue(1) && (npc.getCurrentHp() < (npc.getMaxHp() * 0.3)))
{
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.I_VE_HAD_IT_UP_TO_HERE_WITH_YOU_I_LL_TAKE_CARE_OF_YOU);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.I_VE_HAD_IT_UP_TO_HERE_WITH_YOU_I_LL_TAKE_CARE_OF_YOU);
npc.setScriptValue(2);
startQuestTimer("BUFF", 1000, npc, null);
}
diff --git a/trunk/dist/game/data/scripts/ai/individual/Devno.java b/trunk/dist/game/data/scripts/ai/individual/Devno.java
new file mode 100644
index 0000000000..ac5bc57bc3
--- /dev/null
+++ b/trunk/dist/game/data/scripts/ai/individual/Devno.java
@@ -0,0 +1,93 @@
+/*
+ * Copyright (C) 2004-2015 L2J DataPack
+ *
+ * This file is part of L2J DataPack.
+ *
+ * L2J DataPack is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * L2J DataPack is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package ai.individual;
+
+import ai.npc.AbstractNpcAI;
+
+import com.l2jserver.gameserver.enums.ChatType;
+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.network.NpcStringId;
+
+/**
+ * Devno AI.
+ * @author Gladicek
+ */
+public final class Devno extends AbstractNpcAI
+{
+ // NPC
+ private static final int DEVNO = 33241;
+ // Misc
+ private static final NpcStringId[] DEVNO_SHOUT =
+ {
+ NpcStringId.CARRY_OUT_YOUR_QUESTS_FAITHFULLY_IN_TALKING_ISLAND_AND_YOU_LL_GET_TO_THE_1ST_CLASS_TRANSFER_IN_NO_TIME,
+ NpcStringId.I_SEE_THAT_ADVENTURERS_ARE_RETURNING_TO_TALKING_ISLAND_FOR_THE_AWAKENING,
+ NpcStringId.YOU_CAN_SEE_VARIOUS_STATISTICS_IN_THE_MUSEUM_STATS_IN_THE_MAIN_MENU
+ };
+ private final static Location[] DEVNO_LOC =
+ {
+ new Location(-114448, 259106, -1203),
+ new Location(-114565, 258686, -1203),
+ new Location(-115047, 258883, -1204),
+ new Location(-114904, 259038, -1203),
+ new Location(-114673, 258981, -1203),
+ new Location(-114595, 259277, -1203),
+ new Location(-114866, 259350, -1203),
+ new Location(-114601, 258926, -1203),
+ new Location(-114702, 259080, -1203),
+ new Location(-114973, 259306, -1203),
+ };
+
+ private Devno()
+ {
+ super(Devno.class.getSimpleName(), "ai/individual");
+ addSpawnId(DEVNO);
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ if (event.equalsIgnoreCase("npc_move") && (npc != null))
+ {
+ if (getRandom(100) > 40)
+ {
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, DEVNO_SHOUT[getRandom(3)], 1000);
+ addMoveToDesire(npc, DEVNO_LOC[getRandom(10)], 0);
+ }
+ else
+ {
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, DEVNO_SHOUT[getRandom(3)], 1000);
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public String onSpawn(L2Npc npc)
+ {
+ startQuestTimer("npc_move", 10000, npc, null, true);
+ return super.onSpawn(npc);
+ }
+
+ public static void main(String[] args)
+ {
+ new Devno();
+ }
+}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/ai/individual/DrChaos.java b/trunk/dist/game/data/scripts/ai/individual/DrChaos.java
index 7db38b1eac..c8d9b35144 100644
--- a/trunk/dist/game/data/scripts/ai/individual/DrChaos.java
+++ b/trunk/dist/game/data/scripts/ai/individual/DrChaos.java
@@ -21,13 +21,13 @@ package ai.individual;
import ai.npc.AbstractNpcAI;
import com.l2jserver.gameserver.ai.CtrlIntention;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.instancemanager.GrandBossManager;
import com.l2jserver.gameserver.model.Location;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2GrandBossInstance;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.PlaySound;
import com.l2jserver.gameserver.network.serverpackets.SocialAction;
import com.l2jserver.gameserver.network.serverpackets.SpecialCamera;
@@ -190,7 +190,7 @@ public class DrChaos extends AbstractNpcAI
// Make him speak.
if (_pissedOffTimer == 15)
{
- broadcastNpcSay(npc, Say2.NPC_ALL, "How dare you trespass into my territory! Have you no fear?");
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, "How dare you trespass into my territory! Have you no fear?");
}
// That was "too much" for that time.
@@ -251,7 +251,7 @@ public class DrChaos extends AbstractNpcAI
public String onKill(L2Npc npc, L2PcInstance player, boolean isPet)
{
cancelQuestTimer("golem_despawn", npc, null);
- broadcastNpcSay(npc, Say2.NPC_ALL, "Urggh! You will pay dearly for this insult.");
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, "Urggh! You will pay dearly for this insult.");
// "lock" Dr. Chaos for regular RB time (36H fixed +- 24H random)
long respawnTime = (36 + Rnd.get(-24, 24)) * 3600000;
@@ -290,7 +290,7 @@ public class DrChaos extends AbstractNpcAI
}
// Make him speak.
- broadcastNpcSay(npc, Say2.NPC_ALL, message);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, message);
}
return null;
}
@@ -311,7 +311,7 @@ public class DrChaos extends AbstractNpcAI
// Makes the NPC moves near the Strange Box speaking.
npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(96323, -110914, -3328, 0));
- broadcastNpcSay(npc, Say2.NPC_ALL, "Fools! Why haven't you fled yet? Prepare to learn a lesson!");
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, "Fools! Why haven't you fled yet? Prepare to learn a lesson!");
// Delayed animation timers.
startQuestTimer("1", 2000, npc, null, false); // 2 secs, time to launch dr.C anim 2. Cam 1 on.
diff --git a/trunk/dist/game/data/scripts/ai/individual/Eleve.java b/trunk/dist/game/data/scripts/ai/individual/Eleve.java
new file mode 100644
index 0000000000..d4c284c5c6
--- /dev/null
+++ b/trunk/dist/game/data/scripts/ai/individual/Eleve.java
@@ -0,0 +1,92 @@
+/*
+ * Copyright (C) 2004-2015 L2J DataPack
+ *
+ * This file is part of L2J DataPack.
+ *
+ * L2J DataPack is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * L2J DataPack is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package ai.individual;
+
+import ai.npc.AbstractNpcAI;
+
+import com.l2jserver.gameserver.enums.ChatType;
+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.network.NpcStringId;
+
+/**
+ * Eleve AI.
+ * @author Gladicek
+ */
+public final class Eleve extends AbstractNpcAI
+{
+ // NPC
+ private static final int ELEVE = 33246;
+ // Misc
+ private static final NpcStringId[] ELEVE_SHOUT =
+ {
+ NpcStringId.DON_T_KNOW_WHAT_TO_DO_LOOK_AT_THE_MAP,
+ NpcStringId.DO_YOU_SEE_A_SCROLL_ICON_GO_THAT_LOCATION
+ };
+ private final static Location[] ELEVE_LOC =
+ {
+ new Location(-114936, 259918, -1203),
+ new Location(-114687, 259872, -1203),
+ new Location(-114552, 259699, -1203),
+ new Location(-114689, 259453, -1203),
+ new Location(-114990, 259335, -1203),
+ new Location(-115142, 259523, -1203),
+ new Location(-114894, 259137, -1203),
+ new Location(-114832, 259363, -1203),
+ new Location(-114809, 259260, -1203),
+ new Location(-115036, 260006, -1203),
+ };
+
+ private Eleve()
+ {
+ super(Eleve.class.getSimpleName(), "ai/individual");
+ addSpawnId(ELEVE);
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ if (event.equalsIgnoreCase("npc_move") && (npc != null))
+ {
+ if (getRandom(100) > 40)
+ {
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, ELEVE_SHOUT[getRandom(2)], 1000);
+ addMoveToDesire(npc, ELEVE_LOC[getRandom(10)], 0);
+ }
+ else
+ {
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, ELEVE_SHOUT[getRandom(2)], 1000);
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public String onSpawn(L2Npc npc)
+ {
+ startQuestTimer("npc_move", 6000, npc, null, true);
+ return super.onSpawn(npc);
+ }
+
+ public static void main(String[] args)
+ {
+ new Eleve();
+ }
+}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/ai/individual/FrightenedRagnaOrc.java b/trunk/dist/game/data/scripts/ai/individual/FrightenedRagnaOrc.java
index e06177c9be..f93040f836 100644
--- a/trunk/dist/game/data/scripts/ai/individual/FrightenedRagnaOrc.java
+++ b/trunk/dist/game/data/scripts/ai/individual/FrightenedRagnaOrc.java
@@ -21,6 +21,7 @@ package ai.individual;
import ai.npc.AbstractNpcAI;
import com.l2jserver.gameserver.ai.CtrlIntention;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.Location;
import com.l2jserver.gameserver.model.actor.L2Attackable;
import com.l2jserver.gameserver.model.actor.L2Npc;
@@ -28,7 +29,6 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.holders.SkillHolder;
import com.l2jserver.gameserver.model.itemcontainer.Inventory;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
/**
* Frightened Ragna Orc AI.
@@ -64,7 +64,7 @@ public final class FrightenedRagnaOrc extends AbstractNpcAI
else if ((npc.getCurrentHp() < (npc.getMaxHp() * 0.2)) && npc.isScriptValue(1))
{
startQuestTimer("reward", 10000, npc, attacker);
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.WAIT_WAIT_STOP_SAVE_ME_AND_I_LL_GIVE_YOU_10_000_000_ADENA);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.WAIT_WAIT_STOP_SAVE_ME_AND_I_LL_GIVE_YOU_10_000_000_ADENA);
npc.setScriptValue(2);
}
return super.onAttack(npc, attacker, damage, isSummon);
@@ -74,7 +74,7 @@ public final class FrightenedRagnaOrc extends AbstractNpcAI
public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
{
final NpcStringId msg = getRandomBoolean() ? NpcStringId.UGH_A_CURSE_UPON_YOU : NpcStringId.I_REALLY_DIDN_T_WANT_TO_FIGHT;
- broadcastNpcSay(npc, Say2.NPC_ALL, msg);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, msg);
cancelQuestTimer("say", npc, null);
cancelQuestTimer("reward", npc, player);
return super.onKill(npc, player, isSummon);
@@ -93,7 +93,7 @@ public final class FrightenedRagnaOrc extends AbstractNpcAI
return null;
}
final NpcStringId msg = getRandomBoolean() ? NpcStringId.I_DON_T_WANT_TO_FIGHT : NpcStringId.IS_THIS_REALLY_NECESSARY;
- broadcastNpcSay(npc, Say2.NPC_ALL, msg);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, msg);
break;
}
case "reward":
@@ -103,7 +103,7 @@ public final class FrightenedRagnaOrc extends AbstractNpcAI
if (getRandom(100000) < CHANCE2)
{
final NpcStringId msg = getRandomBoolean() ? NpcStringId.TH_THANKS_I_COULD_HAVE_BECOME_GOOD_FRIENDS_WITH_YOU : NpcStringId.I_LL_GIVE_YOU_10_000_000_ADENA_LIKE_I_PROMISED_I_MIGHT_BE_AN_ORC_WHO_KEEPS_MY_PROMISES;
- broadcastNpcSay(npc, Say2.NPC_ALL, msg);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, msg);
npc.setScriptValue(3);
npc.doCast(SKILL.getSkill());
for (int i = 0; i < 10; i++)
@@ -114,7 +114,7 @@ public final class FrightenedRagnaOrc extends AbstractNpcAI
else if (getRandom(100000) < CHANCE)
{
final NpcStringId msg = getRandomBoolean() ? NpcStringId.TH_THANKS_I_COULD_HAVE_BECOME_GOOD_FRIENDS_WITH_YOU : NpcStringId.SORRY_BUT_THIS_IS_ALL_I_HAVE_GIVE_ME_A_BREAK;
- broadcastNpcSay(npc, Say2.NPC_ALL, msg);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, msg);
npc.setScriptValue(3);
npc.doCast(SKILL.getSkill());
for (int i = 0; i < 10; i++)
@@ -125,7 +125,7 @@ public final class FrightenedRagnaOrc extends AbstractNpcAI
else
{
final NpcStringId msg = getRandomBoolean() ? NpcStringId.THANKS_BUT_THAT_THING_ABOUT_10_000_000_ADENA_WAS_A_LIE_SEE_YA : NpcStringId.YOU_RE_PRETTY_DUMB_TO_BELIEVE_ME;
- broadcastNpcSay(npc, Say2.NPC_ALL, msg);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, msg);
}
startQuestTimer("despawn", 1000, npc, null);
}
diff --git a/trunk/dist/game/data/scripts/ai/individual/Gagabu.java b/trunk/dist/game/data/scripts/ai/individual/Gagabu.java
new file mode 100644
index 0000000000..1cd7762bf1
--- /dev/null
+++ b/trunk/dist/game/data/scripts/ai/individual/Gagabu.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2004-2015 L2J DataPack
+ *
+ * This file is part of L2J DataPack.
+ *
+ * L2J DataPack is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * L2J DataPack is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package ai.individual;
+
+import ai.npc.AbstractNpcAI;
+
+import com.l2jserver.gameserver.enums.ChatType;
+import com.l2jserver.gameserver.model.actor.L2Npc;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.network.NpcStringId;
+
+/**
+ * Gagabu AI.
+ * @author Gladicek
+ */
+public final class Gagabu extends AbstractNpcAI
+{
+ // NPCs
+ private static final int GAGABU = 33284;
+ // Misc
+ private static final NpcStringId[] GAGABU_SHOUT =
+ {
+ NpcStringId.SPIRITSHOTS_ARE_MIXED,
+ NpcStringId.WHEN_WILL_I_ORGANIZE_THIS_ALL
+ };
+
+ private Gagabu()
+ {
+ super(Gagabu.class.getSimpleName(), "ai/individual");
+ addSpawnId(GAGABU);
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ if (event.equals("SPAM_TEXT") && (npc != null))
+ {
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, GAGABU_SHOUT[getRandom(2)], 1000);
+ }
+ return super.onAdvEvent(event, npc, player);
+ }
+
+ @Override
+ public String onSpawn(L2Npc npc)
+ {
+ startQuestTimer("SPAM_TEXT", 8000, npc, null, true);
+ return super.onSpawn(npc);
+ }
+
+ public static void main(String[] args)
+ {
+ new Gagabu();
+ }
+}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/ai/individual/Galad.java b/trunk/dist/game/data/scripts/ai/individual/Galad.java
new file mode 100644
index 0000000000..43e5dad848
--- /dev/null
+++ b/trunk/dist/game/data/scripts/ai/individual/Galad.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2004-2015 L2J DataPack
+ *
+ * This file is part of L2J DataPack.
+ *
+ * L2J DataPack is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * L2J DataPack is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package ai.individual;
+
+import ai.npc.AbstractNpcAI;
+
+import com.l2jserver.gameserver.enums.ChatType;
+import com.l2jserver.gameserver.model.actor.L2Npc;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.network.NpcStringId;
+
+/**
+ * Galad AI.
+ * @author Gladicek
+ */
+public final class Galad extends AbstractNpcAI
+{
+ // NPCs
+ private static final int GALAD = 33572;
+
+ private Galad()
+ {
+ super(Galad.class.getSimpleName(), "ai/individual");
+ addSpawnId(GALAD);
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ if (event.equals("SPAM_TEXT") && (npc != null))
+ {
+ npc.broadcastSocialAction(3);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.OCCASIONALLY_RARE_JEWELS_OF_GIANTS_ARE_DISCOVERED_IN_THE_BEACH, 1000);
+
+ }
+ return super.onAdvEvent(event, npc, player);
+ }
+
+ @Override
+ public String onSpawn(L2Npc npc)
+ {
+ startQuestTimer("SPAM_TEXT", 8000, npc, null, true);
+ return super.onSpawn(npc);
+ }
+
+ public static void main(String[] args)
+ {
+ new Galad();
+ }
+}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/ai/individual/GuardSoldier.java b/trunk/dist/game/data/scripts/ai/individual/GuardSoldier.java
new file mode 100644
index 0000000000..6160c5480d
--- /dev/null
+++ b/trunk/dist/game/data/scripts/ai/individual/GuardSoldier.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2004-2015 L2J DataPack
+ *
+ * This file is part of L2J DataPack.
+ *
+ * L2J DataPack is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * L2J DataPack is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package ai.individual;
+
+import ai.npc.AbstractNpcAI;
+
+import com.l2jserver.gameserver.enums.ChatType;
+import com.l2jserver.gameserver.model.actor.L2Npc;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.network.NpcStringId;
+
+/**
+ * Guard Soldier AI.
+ * @author Gladicek
+ */
+public final class GuardSoldier extends AbstractNpcAI
+{
+ // NPCs
+ private static final int GUARD_SOLDIER = 33286;
+
+ private GuardSoldier()
+ {
+ super(GuardSoldier.class.getSimpleName(), "ai/individual");
+ addSpawnId(GUARD_SOLDIER);
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ if (event.equals("SPAM_TEXT") && (npc != null))
+ {
+ npc.broadcastSocialAction(3);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.LADY_YOU_MUST_GO_IN, 1000);
+
+ }
+ else if (event.equals("SOCIAL_ACTION") && (npc != null))
+ {
+ npc.broadcastSocialAction(2);
+ }
+ return super.onAdvEvent(event, npc, player);
+ }
+
+ @Override
+ public String onSpawn(L2Npc npc)
+ {
+ startQuestTimer("SPAM_TEXT", 12000, npc, null, true);
+ startQuestTimer("SOCIAL_ACTION", 15000, npc, null, true);
+ return super.onSpawn(npc);
+ }
+
+ public static void main(String[] args)
+ {
+ new GuardSoldier();
+ }
+}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/ai/npc/TownPets/TownPets.java b/trunk/dist/game/data/scripts/ai/individual/Handermonkey.java
similarity index 54%
rename from trunk/dist/game/data/scripts/ai/npc/TownPets/TownPets.java
rename to trunk/dist/game/data/scripts/ai/individual/Handermonkey.java
index c5e1e7de15..c18c521510 100644
--- a/trunk/dist/game/data/scripts/ai/npc/TownPets/TownPets.java
+++ b/trunk/dist/game/data/scripts/ai/individual/Handermonkey.java
@@ -16,59 +16,45 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package ai.npc.TownPets;
+package ai.individual;
import ai.npc.AbstractNpcAI;
-import com.l2jserver.Config;
import com.l2jserver.gameserver.ai.CtrlIntention;
import com.l2jserver.gameserver.model.Location;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
/**
- * Town Pets AI
- * @author malyelfik
+ * Handermonkey AI.
+ * @author Gladicek
*/
-public final class TownPets extends AbstractNpcAI
+public final class Handermonkey extends AbstractNpcAI
{
- // Pet IDs
- private static final int[] PETS =
- {
- 31202, // Maximus
- 31203, // Moon Dancer
- 31204, // Georgio
- 31205, // Katz
- 31206, // Ten Ten
- 31207, // Sardinia
- 31208, // La Grange
- 31209, // Misty Rain
- 31266, // Kaiser
- 31593, // Dorothy
- 31758, // Rafi
- 31955, // Ruby
- };
+ // NPC
+ private static final int HANDERMONKEY = 33203;
- private TownPets()
+ private Handermonkey()
{
- super(TownPets.class.getSimpleName(), "ai/npc");
-
- if (Config.ALLOW_PET_WALKERS)
- {
- addSpawnId(PETS);
- }
+ super(Handermonkey.class.getSimpleName(), "ai/npc");
+ addSpawnId(HANDERMONKEY);
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
- if (event.equalsIgnoreCase("move"))
+ if (event.equalsIgnoreCase("npc_move"))
{
- final int locX = (npc.getSpawn().getX() - 50) + getRandom(100);
- final int locY = (npc.getSpawn().getY() - 50) + getRandom(100);
- npc.setRunning();
- npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(locX, locY, npc.getZ(), 0));
- startQuestTimer("move", 5000, npc, null);
+ if (getRandom(100) > 30)
+ {
+ final int locX = (npc.getSpawn().getX() - 70) + getRandom(100);
+ final int locY = (npc.getSpawn().getY() - 70) + getRandom(100);
+ npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(locX, locY, npc.getZ(), 0));
+ }
+ else
+ {
+ npc.broadcastSocialAction(9);
+ }
}
return null;
}
@@ -76,12 +62,13 @@ public final class TownPets extends AbstractNpcAI
@Override
public String onSpawn(L2Npc npc)
{
- startQuestTimer("move", 3000, npc, null);
+ npc.setRunning();
+ startQuestTimer("npc_move", 5000, npc, null, true);
return super.onSpawn(npc);
}
public static void main(String[] args)
{
- new TownPets();
+ new Handermonkey();
}
}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/ai/individual/Heymond.java b/trunk/dist/game/data/scripts/ai/individual/Heymond.java
new file mode 100644
index 0000000000..d907ae085b
--- /dev/null
+++ b/trunk/dist/game/data/scripts/ai/individual/Heymond.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2004-2015 L2J DataPack
+ *
+ * This file is part of L2J DataPack.
+ *
+ * L2J DataPack is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * L2J DataPack is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package ai.individual;
+
+import ai.npc.AbstractNpcAI;
+
+import com.l2jserver.gameserver.enums.ChatType;
+import com.l2jserver.gameserver.model.actor.L2Npc;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.network.NpcStringId;
+
+/**
+ * Heymond AI.
+ * @author Gladicek
+ */
+public final class Heymond extends AbstractNpcAI
+{
+ // NPCs
+ private static final int HEYMOND = 33026;
+ // Misc
+ private static final NpcStringId[] HEYMOND_SHOUT =
+ {
+ NpcStringId.VIEW_OUR_WIDE_VARIETY_OF_ACCESSORIES,
+ NpcStringId.THE_BEST_WEAPON_DOESN_T_MAKE_YOU_THE_BEST,
+ NpcStringId.WE_BUY_AND_SELL_COME_TAKE_A_LOOK
+ };
+
+ private Heymond()
+ {
+ super(Heymond.class.getSimpleName(), "ai/individual");
+ addSpawnId(HEYMOND);
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ if (event.equals("SPAM_TEXT") && (npc != null))
+ {
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, HEYMOND_SHOUT[getRandom(3)], 1000);
+ }
+ return super.onAdvEvent(event, npc, player);
+ }
+
+ @Override
+ public String onSpawn(L2Npc npc)
+ {
+ startQuestTimer("SPAM_TEXT", 7000, npc, null, true);
+ return super.onSpawn(npc);
+ }
+
+ public static void main(String[] args)
+ {
+ new Heymond();
+ }
+}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/ai/individual/Holly.java b/trunk/dist/game/data/scripts/ai/individual/Holly.java
new file mode 100644
index 0000000000..61c884e573
--- /dev/null
+++ b/trunk/dist/game/data/scripts/ai/individual/Holly.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2004-2015 L2J DataPack
+ *
+ * This file is part of L2J DataPack.
+ *
+ * L2J DataPack is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * L2J DataPack is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package ai.individual;
+
+import ai.npc.AbstractNpcAI;
+
+import com.l2jserver.gameserver.enums.ChatType;
+import com.l2jserver.gameserver.model.actor.L2Npc;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.network.NpcStringId;
+
+/**
+ * Holly AI.
+ * @author Gladicek
+ */
+public final class Holly extends AbstractNpcAI
+{
+ // NPCs
+ private static final int HOLLY = 33219;
+
+ private Holly()
+ {
+ super(Holly.class.getSimpleName(), "ai/individual");
+ addSpawnId(HOLLY);
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ if (event.equals("SPAM_TEXT") && (npc != null))
+ {
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.GIRAN_SHUTTLE_DOES_NOT_COME_ANYMORE_IT_S_ALL_IN_THE_PAST, 1000);
+ }
+ else if (event.equals("SOCIAL_ACTION") && (npc != null))
+ {
+ npc.broadcastSocialAction(6);
+ }
+ return super.onAdvEvent(event, npc, player);
+ }
+
+ @Override
+ public String onSpawn(L2Npc npc)
+ {
+ startQuestTimer("SPAM_TEXT", 10000, npc, null, true);
+ startQuestTimer("SOCIAL_ACTION", 2000, npc, null, true);
+ return super.onSpawn(npc);
+ }
+
+ public static void main(String[] args)
+ {
+ new Holly();
+ }
+}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/ai/individual/Karonf.java b/trunk/dist/game/data/scripts/ai/individual/Karonf.java
new file mode 100644
index 0000000000..d4511330d8
--- /dev/null
+++ b/trunk/dist/game/data/scripts/ai/individual/Karonf.java
@@ -0,0 +1,92 @@
+/*
+ * Copyright (C) 2004-2015 L2J DataPack
+ *
+ * This file is part of L2J DataPack.
+ *
+ * L2J DataPack is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * L2J DataPack is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package ai.individual;
+
+import ai.npc.AbstractNpcAI;
+
+import com.l2jserver.gameserver.enums.ChatType;
+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.network.NpcStringId;
+
+/**
+ * Karonf AI.
+ * @author Gladicek
+ */
+public final class Karonf extends AbstractNpcAI
+{
+ // NPC
+ private static final int KARONF = 33242;
+ // Misc
+ private static final NpcStringId[] KARONF_SHOUT =
+ {
+ NpcStringId.WHEN_YOU_GO_TO_THE_MUSEUM_SPEAK_TO_PANTHEON,
+ NpcStringId.SOME_FOLKS_DON_T_KNOW_WHAT_THEY_ARE_DOING
+ };
+ private final static Location[] KARONF_LOC =
+ {
+ new Location(-113984, 259782, -1203),
+ new Location(-113786, 259475, -1203),
+ new Location(-113977, 259035, -1203),
+ new Location(-114012, 259290, -1203),
+ new Location(-113812, 259522, -1203),
+ new Location(-113621, 259281, -1203),
+ new Location(-114354, 259048, -1193),
+ new Location(-113864, 259293, -1203),
+ new Location(-114052, 259351, -1203),
+ new Location(-114175, 259243, -1203),
+ };
+
+ private Karonf()
+ {
+ super(Karonf.class.getSimpleName(), "ai/individual");
+ addSpawnId(KARONF);
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ if (event.equalsIgnoreCase("npc_move") && (npc != null))
+ {
+ if (getRandom(100) > 40)
+ {
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, KARONF_SHOUT[getRandom(2)], 1000);
+ addMoveToDesire(npc, KARONF_LOC[getRandom(10)], 0);
+ }
+ else
+ {
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, KARONF_SHOUT[getRandom(2)]);
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public String onSpawn(L2Npc npc)
+ {
+ startQuestTimer("npc_move", 8000, npc, null, true);
+ return super.onSpawn(npc);
+ }
+
+ public static void main(String[] args)
+ {
+ new Karonf();
+ }
+}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/ai/individual/Luderic.java b/trunk/dist/game/data/scripts/ai/individual/Luderic.java
new file mode 100644
index 0000000000..e58a44e942
--- /dev/null
+++ b/trunk/dist/game/data/scripts/ai/individual/Luderic.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2004-2015 L2J DataPack
+ *
+ * This file is part of L2J DataPack.
+ *
+ * L2J DataPack is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * L2J DataPack is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package ai.individual;
+
+import ai.npc.AbstractNpcAI;
+
+import com.l2jserver.gameserver.enums.ChatType;
+import com.l2jserver.gameserver.model.actor.L2Npc;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.network.NpcStringId;
+
+/**
+ * Luderic AI.
+ * @author Gladicek
+ */
+public final class Luderic extends AbstractNpcAI
+{
+ // NPCs
+ private static final int LUDERIC = 33575;
+ // Misc
+ private static final NpcStringId[] LUDERIC_SHOUT =
+ {
+ NpcStringId.THERE_IS_A_DAY_WHERE_YOU_CAN_SEE_EVEN_THE_ADEN_CONTINENT_IF_THE_WEATHER_IS_GOOD,
+ NpcStringId.IF_I_M_HERE_IT_FEELS_LIKE_TIME_HAS_STOPPED
+ };
+
+ private Luderic()
+ {
+ super(Luderic.class.getSimpleName(), "ai/individual");
+ addSpawnId(LUDERIC);
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ if (event.equals("SPAM_TEXT") && (npc != null))
+ {
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, LUDERIC_SHOUT[getRandom(2)], 1000);
+ }
+ else if (event.equals("SOCIAL_ACTION") && (npc != null))
+ {
+ npc.broadcastSocialAction(1);
+ }
+ return super.onAdvEvent(event, npc, player);
+ }
+
+ @Override
+ public String onSpawn(L2Npc npc)
+ {
+ startQuestTimer("SPAM_TEXT", 7000, npc, null, true);
+ startQuestTimer("SOCIAL_ACTION", 3000, npc, null, true);
+ return super.onSpawn(npc);
+ }
+
+ public static void main(String[] args)
+ {
+ new Luderic();
+ }
+}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/ai/individual/Lumi.java b/trunk/dist/game/data/scripts/ai/individual/Lumi.java
new file mode 100644
index 0000000000..f793f50579
--- /dev/null
+++ b/trunk/dist/game/data/scripts/ai/individual/Lumi.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2004-2015 L2J DataPack
+ *
+ * This file is part of L2J DataPack.
+ *
+ * L2J DataPack is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * L2J DataPack is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package ai.individual;
+
+import ai.npc.AbstractNpcAI;
+
+import com.l2jserver.gameserver.enums.ChatType;
+import com.l2jserver.gameserver.model.actor.L2Npc;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.network.NpcStringId;
+
+/**
+ * Lumi AI.
+ * @author Gladicek
+ */
+public final class Lumi extends AbstractNpcAI
+{
+ // NPCs
+ private static final int LUMI = 33025;
+ // Misc
+ private static final NpcStringId[] LUMI_SHOUT =
+ {
+ NpcStringId.TO_YOUR_RIGHT_THE_ADMINISTRATIVE_DISTRICT_AND_TO_THE_LEFT_IS_THE_MUSEUM,
+ NpcStringId.WHEN_YOU_USE_THE_TELEPORTER_YOU_CAN_GO_TO_THE_RUINS_OF_YE_SAGIRA,
+ NpcStringId.HAVE_YOU_BEEN_TO_RUINS_OF_YE_SAGIRA_YOU_HAVE_TO_GO_AT_LEAST_ONCE,
+ };
+
+ private Lumi()
+ {
+ super(Lumi.class.getSimpleName(), "ai/individual");
+ addSpawnId(LUMI);
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ if (event.equals("SPAM_TEXT") && (npc != null))
+ {
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, LUMI_SHOUT[getRandom(3)], 1000);
+ }
+ return super.onAdvEvent(event, npc, player);
+ }
+
+ @Override
+ public String onSpawn(L2Npc npc)
+ {
+ startQuestTimer("SPAM_TEXT", 8000, npc, null, true);
+ return super.onSpawn(npc);
+ }
+
+ public static void main(String[] args)
+ {
+ new Lumi();
+ }
+}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/ai/individual/Mahram.java b/trunk/dist/game/data/scripts/ai/individual/Mahram.java
index b66e371cb9..beadac81fc 100644
--- a/trunk/dist/game/data/scripts/ai/individual/Mahram.java
+++ b/trunk/dist/game/data/scripts/ai/individual/Mahram.java
@@ -20,10 +20,10 @@ package ai.individual;
import ai.npc.AbstractNpcAI;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
/**
* Mahram AI.
@@ -45,7 +45,7 @@ public final class Mahram extends AbstractNpcAI
{
if (event.equals("SPAM_TEXT") && (npc != null))
{
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.ALCHEMY_IS_A_SCIENCE_AND_AN_ART);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.ALCHEMY_IS_A_SCIENCE_AND_AN_ART, 1000);
}
return super.onAdvEvent(event, npc, player);
}
diff --git a/trunk/dist/game/data/scripts/quests/Q00646_SignsOfRevolt/Q00646_SignsOfRevolt.java b/trunk/dist/game/data/scripts/ai/individual/Mai.java
similarity index 50%
rename from trunk/dist/game/data/scripts/quests/Q00646_SignsOfRevolt/Q00646_SignsOfRevolt.java
rename to trunk/dist/game/data/scripts/ai/individual/Mai.java
index bcb1d7eba2..e6f83fdec8 100644
--- a/trunk/dist/game/data/scripts/quests/Q00646_SignsOfRevolt/Q00646_SignsOfRevolt.java
+++ b/trunk/dist/game/data/scripts/ai/individual/Mai.java
@@ -16,40 +16,49 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package quests.Q00646_SignsOfRevolt;
+package ai.individual;
+import ai.npc.AbstractNpcAI;
+
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
+import com.l2jserver.gameserver.network.NpcStringId;
/**
- * Signs of Revolt (646)
- * NOTE: This quest is no longer available since Gracia Epilogue
- * @author malyelfik
+ * Mai AI.
+ * @author Gladicek
*/
-public class Q00646_SignsOfRevolt extends Quest
+public final class Mai extends AbstractNpcAI
{
- // NPC
- private static final int TORRANT = 32016;
- // Misc
- private static final int MIN_LEVEL = 80;
+ // NPCs
+ private static final int MAI = 33238;
- public Q00646_SignsOfRevolt()
+ private Mai()
{
- super(646, Q00646_SignsOfRevolt.class.getSimpleName(), "Signs of Revolt");
- addStartNpc(TORRANT);
- addTalkId(TORRANT);
+ super(Mai.class.getSimpleName(), "ai/individual");
+ addSpawnId(MAI);
}
@Override
- public String onTalk(L2Npc npc, L2PcInstance player)
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
- final QuestState st = getQuestState(player, true);
- if (st != null)
+ if (event.equals("SPAM_TEXT") && (npc != null))
{
- st.exitQuest(true);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.EVERY_RACE_BUILT_A_PIECE_OF_THIS_VILLAGE, 1000);
}
- return (player.getLevel() >= MIN_LEVEL) ? "32016-01.html" : "32016-02.html";
+ return super.onAdvEvent(event, npc, player);
+ }
+
+ @Override
+ public String onSpawn(L2Npc npc)
+ {
+ startQuestTimer("SPAM_TEXT", 15000, npc, null, true);
+ return super.onSpawn(npc);
+ }
+
+ public static void main(String[] args)
+ {
+ new Mai();
}
}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/ai/individual/MarinSmith.java b/trunk/dist/game/data/scripts/ai/individual/MarinSmith.java
new file mode 100644
index 0000000000..34a480074d
--- /dev/null
+++ b/trunk/dist/game/data/scripts/ai/individual/MarinSmith.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2004-2015 L2J DataPack
+ *
+ * This file is part of L2J DataPack.
+ *
+ * L2J DataPack is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * L2J DataPack is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package ai.individual;
+
+import ai.npc.AbstractNpcAI;
+
+import com.l2jserver.gameserver.enums.ChatType;
+import com.l2jserver.gameserver.model.actor.L2Npc;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.network.NpcStringId;
+
+/**
+ * Marin Smith AI.
+ * @author Gladicek
+ */
+public final class MarinSmith extends AbstractNpcAI
+{
+ // NPCs
+ private static final int MARIN_SMITH = 33285;
+
+ private MarinSmith()
+ {
+ super(MarinSmith.class.getSimpleName(), "ai/individual");
+ addSpawnId(MARIN_SMITH);
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ if (event.equals("SPAM_TEXT") && (npc != null))
+ {
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.HMM_IS_THIS_STILL_A_DECENT_WEAPON, 1000);
+ }
+ return super.onAdvEvent(event, npc, player);
+ }
+
+ @Override
+ public String onSpawn(L2Npc npc)
+ {
+ startQuestTimer("SPAM_TEXT", 6000, npc, null, true);
+ return super.onSpawn(npc);
+ }
+
+ public static void main(String[] args)
+ {
+ new MarinSmith();
+ }
+}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/ai/individual/Orfen.java b/trunk/dist/game/data/scripts/ai/individual/Orfen.java
index 5820b47074..827ab1c321 100644
--- a/trunk/dist/game/data/scripts/ai/individual/Orfen.java
+++ b/trunk/dist/game/data/scripts/ai/individual/Orfen.java
@@ -26,6 +26,7 @@ import ai.npc.AbstractNpcAI;
import com.l2jserver.Config;
import com.l2jserver.gameserver.ai.CtrlIntention;
import com.l2jserver.gameserver.datatables.SkillData;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.instancemanager.GrandBossManager;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.L2Spawn;
@@ -39,7 +40,6 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.skills.Skill;
import com.l2jserver.gameserver.model.zone.type.L2BossZone;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.NpcSay;
import com.l2jserver.gameserver.network.serverpackets.PlaySound;
@@ -248,7 +248,7 @@ public final class Orfen extends AbstractNpcAI
L2Character originalCaster = isSummon ? caster.getServitors().values().stream().findFirst().orElse(caster.getPet()) : caster;
if ((skill.getEffectPoint() > 0) && (getRandom(5) == 0) && npc.isInsideRadius(originalCaster, 1000, false, false))
{
- NpcSay packet = new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npc.getId(), TEXT[getRandom(4)]);
+ NpcSay packet = new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), TEXT[getRandom(4)]);
packet.addStringParameter(caster.getName().toString());
npc.broadcastPacket(packet);
originalCaster.teleToLocation(npc.getLocation());
@@ -303,7 +303,7 @@ public final class Orfen extends AbstractNpcAI
}
else if (npc.isInsideRadius(attacker, 1000, false, false) && !npc.isInsideRadius(attacker, 300, false, false) && (getRandom(10) == 0))
{
- NpcSay packet = new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npcId, TEXT[getRandom(3)]);
+ NpcSay packet = new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npcId, TEXT[getRandom(3)]);
packet.addStringParameter(attacker.getName().toString());
npc.broadcastPacket(packet);
attacker.teleToLocation(npc.getLocation());
diff --git a/trunk/dist/game/data/scripts/ai/npc/Oris/Oris.java b/trunk/dist/game/data/scripts/ai/individual/Oris.java
similarity index 72%
rename from trunk/dist/game/data/scripts/ai/npc/Oris/Oris.java
rename to trunk/dist/game/data/scripts/ai/individual/Oris.java
index 6fc4d7cd69..4f2aa8e3d5 100644
--- a/trunk/dist/game/data/scripts/ai/npc/Oris/Oris.java
+++ b/trunk/dist/game/data/scripts/ai/individual/Oris.java
@@ -16,41 +16,36 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package ai.npc.Oris;
+package ai.individual;
import ai.npc.AbstractNpcAI;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.network.NpcStringId;
/**
* Oris AI.
- * @author St3eT
+ * @author Gladicek
*/
public final class Oris extends AbstractNpcAI
{
- // NPC
+ // NPCs
private static final int ORIS = 33116;
private Oris()
{
- super(Oris.class.getSimpleName(), "ai/npc");
+ super(Oris.class.getSimpleName(), "ai/individual");
addSpawnId(ORIS);
- addStartNpc(ORIS);
- addTalkId(ORIS);
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
- if (event.equals("SOCIAL_ACTION_1"))
+ if (event.equals("SPAM_TEXT") && (npc != null))
{
- npc.broadcastSocialAction(6);
- startQuestTimer("SOCIAL_ACTION_2", 2500, npc, null);
- }
- else if (event.equals("SOCIAL_ACTION_2"))
- {
- npc.broadcastSocialAction(7);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.I_HAVEN_T_FELT_THIS_GOOD_IN_AGES, 1000);
}
return super.onAdvEvent(event, npc, player);
}
@@ -58,8 +53,7 @@ public final class Oris extends AbstractNpcAI
@Override
public String onSpawn(L2Npc npc)
{
- npc.setRandomAnimationEnabled(false);
- startQuestTimer("SOCIAL_ACTION_1", 6500, npc, null, true);
+ startQuestTimer("SPAM_TEXT", 10000, npc, null, true);
return super.onSpawn(npc);
}
diff --git a/trunk/dist/game/data/scripts/ai/individual/QueenShyeed.java b/trunk/dist/game/data/scripts/ai/individual/QueenShyeed.java
index 65b5968752..4fd6d03e0f 100644
--- a/trunk/dist/game/data/scripts/ai/individual/QueenShyeed.java
+++ b/trunk/dist/game/data/scripts/ai/individual/QueenShyeed.java
@@ -20,13 +20,13 @@ package ai.individual;
import ai.npc.AbstractNpcAI;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.instancemanager.ZoneManager;
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.zone.type.L2EffectZone;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
/**
* Queen Shyeed AI
@@ -69,7 +69,7 @@ public final class QueenShyeed extends AbstractNpcAI
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.SHYEED_S_CRY_IS_STEADILY_DYING_DOWN);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.SHYEED_S_CRY_IS_STEADILY_DYING_DOWN);
startRespawn();
PC_BUFF_ZONE.setEnabled(true);
return super.onKill(npc, killer, isSummon);
diff --git a/trunk/dist/game/data/scripts/ai/individual/Shannon.java b/trunk/dist/game/data/scripts/ai/individual/Shannon.java
index 554a4e9ea7..d58b514769 100644
--- a/trunk/dist/game/data/scripts/ai/individual/Shannon.java
+++ b/trunk/dist/game/data/scripts/ai/individual/Shannon.java
@@ -20,10 +20,10 @@ package ai.individual;
import ai.npc.AbstractNpcAI;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
/**
* Shannon AI.
@@ -45,7 +45,7 @@ public final class Shannon extends AbstractNpcAI
{
if (event.equals("SPAM_TEXT") && (npc != null))
{
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.LOOK_AT_ALL_THE_NEWBIES_HA_HA_HA);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.LOOK_AT_ALL_THE_NEWBIES_HA_HA_HA, 1000);
}
return super.onAdvEvent(event, npc, player);
}
diff --git a/trunk/dist/game/data/scripts/ai/individual/SinEater.java b/trunk/dist/game/data/scripts/ai/individual/SinEater.java
index cc1121193a..1b33cebea2 100644
--- a/trunk/dist/game/data/scripts/ai/individual/SinEater.java
+++ b/trunk/dist/game/data/scripts/ai/individual/SinEater.java
@@ -20,6 +20,7 @@ package ai.individual;
import ai.npc.AbstractNpcAI;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.L2Summon;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
@@ -31,7 +32,6 @@ import com.l2jserver.gameserver.model.events.annotations.RegisterType;
import com.l2jserver.gameserver.model.events.impl.character.OnCreatureAttacked;
import com.l2jserver.gameserver.model.events.impl.character.OnCreatureKill;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.NpcSay;
/**
@@ -168,7 +168,7 @@ public final class SinEater extends AbstractNpcAI
private void broadcastSummonSay(L2Summon summon, NpcStringId npcstringId)
{
- summon.broadcastPacket(new NpcSay(summon.getObjectId(), Say2.NPC_ALL, summon.getId(), npcstringId));
+ summon.broadcastPacket(new NpcSay(summon.getObjectId(), ChatType.NPC_GENERAL, summon.getId(), npcstringId));
}
public static void main(String[] args)
diff --git a/trunk/dist/game/data/scripts/ai/individual/SinWardens.java b/trunk/dist/game/data/scripts/ai/individual/SinWardens.java
index c52a6036ad..671e015d14 100644
--- a/trunk/dist/game/data/scripts/ai/individual/SinWardens.java
+++ b/trunk/dist/game/data/scripts/ai/individual/SinWardens.java
@@ -23,11 +23,11 @@ import java.util.Map;
import javolution.util.FastMap;
import ai.npc.AbstractNpcAI;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2MonsterInstance;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.NpcSay;
/**
@@ -75,7 +75,7 @@ public final class SinWardens extends AbstractNpcAI
if ((killedCount) == 5)
{
- master.broadcastPacket(new NpcSay(master.getObjectId(), Say2.NPC_ALL, master.getId(), NpcStringId.WE_MIGHT_NEED_NEW_SLAVES_I_LL_BE_BACK_SOON_SO_WAIT));
+ master.broadcastPacket(new NpcSay(master.getObjectId(), ChatType.NPC_GENERAL, master.getId(), NpcStringId.WE_MIGHT_NEED_NEW_SLAVES_I_LL_BE_BACK_SOON_SO_WAIT));
master.doDie(killer);
killedMinionsCount.remove(master.getObjectId());
}
diff --git a/trunk/dist/game/data/scripts/ai/individual/Sodian.java b/trunk/dist/game/data/scripts/ai/individual/Sodian.java
new file mode 100644
index 0000000000..c321bce8a5
--- /dev/null
+++ b/trunk/dist/game/data/scripts/ai/individual/Sodian.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2004-2015 L2J DataPack
+ *
+ * This file is part of L2J DataPack.
+ *
+ * L2J DataPack is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * L2J DataPack is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package ai.individual;
+
+import ai.npc.AbstractNpcAI;
+
+import com.l2jserver.gameserver.enums.ChatType;
+import com.l2jserver.gameserver.model.actor.L2Npc;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.network.NpcStringId;
+
+/**
+ * Sodian AI.
+ * @author Gladicek
+ */
+public final class Sodian extends AbstractNpcAI
+{
+ // NPCs
+ private static final int SODIAN = 33229;
+ // Misc
+ private static final NpcStringId[] SODIAN_SHOUT =
+ {
+ NpcStringId.COME_BROWSE_OUR_INVENTORY,
+ NpcStringId.INCREDIBLE_WEAPONS_FOR_SALE
+ };
+
+ private Sodian()
+ {
+ super(Sodian.class.getSimpleName(), "ai/individual");
+ addSpawnId(SODIAN);
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ if (event.equals("SPAM_TEXT") && (npc != null))
+ {
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, SODIAN_SHOUT[getRandom(2)], 1000);
+ }
+ return super.onAdvEvent(event, npc, player);
+ }
+
+ @Override
+ public String onSpawn(L2Npc npc)
+ {
+ startQuestTimer("SPAM_TEXT", 8000, npc, null, true);
+ return super.onSpawn(npc);
+ }
+
+ public static void main(String[] args)
+ {
+ new Sodian();
+ }
+}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/ai/individual/Stiller.java b/trunk/dist/game/data/scripts/ai/individual/Stiller.java
new file mode 100644
index 0000000000..cb10dcde5e
--- /dev/null
+++ b/trunk/dist/game/data/scripts/ai/individual/Stiller.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2004-2015 L2J DataPack
+ *
+ * This file is part of L2J DataPack.
+ *
+ * L2J DataPack is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * L2J DataPack is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package ai.individual;
+
+import ai.npc.AbstractNpcAI;
+
+import com.l2jserver.gameserver.enums.ChatType;
+import com.l2jserver.gameserver.model.actor.L2Npc;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.network.NpcStringId;
+
+/**
+ * Stiller AI.
+ * @author Gladicek
+ */
+public final class Stiller extends AbstractNpcAI
+{
+ // NPCs
+ private static final int STILLER = 33125;
+ // Misc
+ private static final NpcStringId[] STILLER_SHOUT =
+ {
+ NpcStringId.HEY_DID_YOU_SPEAK_WITH_PANTHEON,
+ NpcStringId.EVERYONE_NEEDS_TO_MEET_PANTHEON_FIRST_BEFORE_HUNTING
+ };
+
+ private Stiller()
+ {
+ super(Stiller.class.getSimpleName(), "ai/individual");
+ addSpawnId(STILLER);
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ if (event.equals("SPAM_TEXT") && (npc != null))
+ {
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, STILLER_SHOUT[getRandom(2)], 1000);
+ }
+ return super.onAdvEvent(event, npc, player);
+ }
+
+ @Override
+ public String onSpawn(L2Npc npc)
+ {
+ startQuestTimer("SPAM_TEXT", 10000, npc, null, true);
+ return super.onSpawn(npc);
+ }
+
+ public static void main(String[] args)
+ {
+ new Stiller();
+ }
+}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/ai/individual/Theodore.java b/trunk/dist/game/data/scripts/ai/individual/Theodore.java
index 69d30f80b3..6658f3a471 100644
--- a/trunk/dist/game/data/scripts/ai/individual/Theodore.java
+++ b/trunk/dist/game/data/scripts/ai/individual/Theodore.java
@@ -20,10 +20,10 @@ package ai.individual;
import ai.npc.AbstractNpcAI;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
/**
* Theodore AI.
@@ -45,7 +45,7 @@ public final class Theodore extends AbstractNpcAI
{
if (event.equals("SPAM_TEXT") && (npc != null))
{
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.AND_NOW_YOUR_JOURNEY_BEGINS);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.AND_NOW_YOUR_JOURNEY_BEGINS, 1000);
}
return super.onAdvEvent(event, npc, player);
}
diff --git a/trunk/dist/game/data/scripts/ai/individual/TomaJunior.java b/trunk/dist/game/data/scripts/ai/individual/TomaJunior.java
new file mode 100644
index 0000000000..26cfd6e276
--- /dev/null
+++ b/trunk/dist/game/data/scripts/ai/individual/TomaJunior.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2004-2015 L2J DataPack
+ *
+ * This file is part of L2J DataPack.
+ *
+ * L2J DataPack is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * L2J DataPack is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package ai.individual;
+
+import ai.npc.AbstractNpcAI;
+
+import com.l2jserver.gameserver.enums.ChatType;
+import com.l2jserver.gameserver.model.actor.L2Npc;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.network.NpcStringId;
+
+/**
+ * Guard Soldier AI.
+ * @author Gladicek
+ */
+public final class TomaJunior extends AbstractNpcAI
+{
+ // NPCs
+ private static final int TOMA_JUNIOR = 33571;
+
+ private TomaJunior()
+ {
+ super(GuardSoldier.class.getSimpleName(), "ai/individual");
+ addSpawnId(TOMA_JUNIOR);
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ if (event.equals("SPAM_TEXT") && (npc != null))
+ {
+ npc.broadcastSocialAction(3);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.THE_BEACH_WHERE_RELICS_OF_GIANTS_HAD_FALLEN_HAS_NOW_BECOME_CLEAN, 1000);
+
+ }
+ else if (event.equals("SOCIAL_ACTION") && (npc != null))
+ {
+ npc.broadcastSocialAction(6);
+ }
+ return super.onAdvEvent(event, npc, player);
+ }
+
+ @Override
+ public String onSpawn(L2Npc npc)
+ {
+ startQuestTimer("SPAM_TEXT", 9000, npc, null, true);
+ startQuestTimer("SOCIAL_ACTION", 15000, npc, null, true);
+ return super.onSpawn(npc);
+ }
+
+ public static void main(String[] args)
+ {
+ new TomaJunior();
+ }
+}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00635_IntoTheDimensionalRift/Q00635_IntoTheDimensionalRift.java b/trunk/dist/game/data/scripts/ai/individual/TrainingGolem.java
similarity index 55%
rename from trunk/dist/game/data/scripts/quests/Q00635_IntoTheDimensionalRift/Q00635_IntoTheDimensionalRift.java
rename to trunk/dist/game/data/scripts/ai/individual/TrainingGolem.java
index 3cbf1b868e..6f17f09d64 100644
--- a/trunk/dist/game/data/scripts/quests/Q00635_IntoTheDimensionalRift/Q00635_IntoTheDimensionalRift.java
+++ b/trunk/dist/game/data/scripts/ai/individual/TrainingGolem.java
@@ -16,19 +16,36 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package quests.Q00635_IntoTheDimensionalRift;
+package ai.individual;
-import com.l2jserver.gameserver.model.quest.Quest;
+import ai.npc.AbstractNpcAI;
+
+import com.l2jserver.gameserver.model.actor.L2Npc;
/**
- * Into the Dimensional Rift (635)
- * NOTE: Dummy Quest shown in players' questlist when inside the rift
- * @author malyelfik
+ * Training Golem AI.
+ * @author Gladicek
*/
-public class Q00635_IntoTheDimensionalRift extends Quest
+public final class TrainingGolem extends AbstractNpcAI
{
- public Q00635_IntoTheDimensionalRift()
+ // NPCs
+ private static final int TRAINING_GOLEM = 27532;
+
+ private TrainingGolem()
{
- super(635, Q00635_IntoTheDimensionalRift.class.getSimpleName(), "Into the Dimensional Rift");
+ super(TrainingGolem.class.getSimpleName(), "ai/individual");
+ addSpawnId(TRAINING_GOLEM);
}
-}
\ No newline at end of file
+
+ @Override
+ public String onSpawn(L2Npc npc)
+ {
+ npc.setIsImmobilized(true);
+ return super.onSpawn(npc);
+ }
+
+ public static void main(String[] args)
+ {
+ new TrainingGolem();
+ }
+}
diff --git a/trunk/dist/game/data/scripts/ai/individual/Venom/Venom.java b/trunk/dist/game/data/scripts/ai/individual/Venom/Venom.java
index 17103d85fe..bf342dfafb 100644
--- a/trunk/dist/game/data/scripts/ai/individual/Venom/Venom.java
+++ b/trunk/dist/game/data/scripts/ai/individual/Venom/Venom.java
@@ -24,6 +24,7 @@ import java.util.List;
import ai.npc.AbstractNpcAI;
import com.l2jserver.gameserver.ai.CtrlIntention;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.instancemanager.CastleManager;
import com.l2jserver.gameserver.instancemanager.GlobalVariablesManager;
import com.l2jserver.gameserver.model.Location;
@@ -37,7 +38,6 @@ import com.l2jserver.gameserver.model.holders.SkillHolder;
import com.l2jserver.gameserver.model.skills.Skill;
import com.l2jserver.gameserver.model.zone.ZoneId;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
/**
* Venom AI on Rune Castle.
@@ -157,7 +157,7 @@ public final class Venom extends AbstractNpcAI
if (CastleManager.getInstance().getCastleById(CASTLE).getSiege().getControlTowerCount() <= 1)
{
changeLocation(MoveTo.THRONE);
- broadcastNpcSay(_massymore, Say2.NPC_SHOUT, NpcStringId.OH_NO_THE_DEFENSES_HAVE_FAILED_IT_IS_TOO_DANGEROUS_TO_REMAIN_INSIDE_THE_CASTLE_FLEE_EVERY_MAN_FOR_HIMSELF);
+ broadcastNpcSay(_massymore, ChatType.NPC_SHOUT, NpcStringId.OH_NO_THE_DEFENSES_HAVE_FAILED_IT_IS_TOO_DANGEROUS_TO_REMAIN_INSIDE_THE_CASTLE_FLEE_EVERY_MAN_FOR_HIMSELF);
cancelQuestTimer("tower_check", npc, null);
startQuestTimer("raid_check", 10000, npc, null, true);
}
@@ -275,7 +275,7 @@ public final class Venom extends AbstractNpcAI
_venom.disableSkill(VENOM_TELEPORT.getSkill(), -1);
_venom.disableSkill(RANGE_TELEPORT.getSkill(), -1);
_venom.doRevive();
- broadcastNpcSay(npc, Say2.NPC_SHOUT, NpcStringId.WHO_DARES_TO_COVET_THE_THRONE_OF_OUR_CASTLE_LEAVE_IMMEDIATELY_OR_YOU_WILL_PAY_THE_PRICE_OF_YOUR_AUDACITY_WITH_YOUR_VERY_OWN_BLOOD);
+ broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.WHO_DARES_TO_COVET_THE_THRONE_OF_OUR_CASTLE_LEAVE_IMMEDIATELY_OR_YOU_WILL_PAY_THE_PRICE_OF_YOUR_AUDACITY_WITH_YOUR_VERY_OWN_BLOOD);
((L2Attackable) _venom).setCanReturnToSpawnPoint(false);
if (checkStatus() == DEAD)
{
@@ -327,7 +327,7 @@ public final class Venom extends AbstractNpcAI
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
updateStatus(DEAD);
- broadcastNpcSay(npc, Say2.NPC_SHOUT, NpcStringId.IT_S_NOT_OVER_YET_IT_WON_T_BE_OVER_LIKE_THIS_NEVER);
+ broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.IT_S_NOT_OVER_YET_IT_WON_T_BE_OVER_LIKE_THIS_NEVER);
if (!CastleManager.getInstance().getCastleById(CASTLE).getSiege().isInProgress())
{
L2Npc cube = addSpawn(TELEPORT_CUBE, CUBE, false, 0);
diff --git a/trunk/dist/game/data/scripts/ai/npc/AbstractNpcAI.java b/trunk/dist/game/data/scripts/ai/npc/AbstractNpcAI.java
index d733bf1512..13db3b5c0d 100644
--- a/trunk/dist/game/data/scripts/ai/npc/AbstractNpcAI.java
+++ b/trunk/dist/game/data/scripts/ai/npc/AbstractNpcAI.java
@@ -20,6 +20,7 @@ package ai.npc;
import java.util.logging.Logger;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2MonsterInstance;
@@ -83,7 +84,7 @@ public abstract class AbstractNpcAI extends Quest
* @param type
* @param text
*/
- protected void broadcastNpcSay(L2Npc npc, int type, String text)
+ protected void broadcastNpcSay(L2Npc npc, ChatType type, String text)
{
Broadcast.toKnownPlayers(npc, new NpcSay(npc.getObjectId(), type, npc.getTemplate().getDisplayId(), text));
}
@@ -94,7 +95,7 @@ public abstract class AbstractNpcAI extends Quest
* @param type
* @param stringId
*/
- protected void broadcastNpcSay(L2Npc npc, int type, NpcStringId stringId)
+ protected void broadcastNpcSay(L2Npc npc, ChatType type, NpcStringId stringId)
{
Broadcast.toKnownPlayers(npc, new NpcSay(npc.getObjectId(), type, npc.getTemplate().getDisplayId(), stringId));
}
@@ -106,7 +107,7 @@ public abstract class AbstractNpcAI extends Quest
* @param stringId
* @param parameters
*/
- protected void broadcastNpcSay(L2Npc npc, int type, NpcStringId stringId, String... parameters)
+ protected void broadcastNpcSay(L2Npc npc, ChatType type, NpcStringId stringId, String... parameters)
{
final NpcSay say = new NpcSay(npc.getObjectId(), type, npc.getTemplate().getDisplayId(), stringId);
if (parameters != null)
@@ -126,7 +127,7 @@ public abstract class AbstractNpcAI extends Quest
* @param text
* @param radius
*/
- protected void broadcastNpcSay(L2Npc npc, int type, String text, int radius)
+ protected void broadcastNpcSay(L2Npc npc, ChatType type, String text, int radius)
{
Broadcast.toKnownPlayersInRadius(npc, new NpcSay(npc.getObjectId(), type, npc.getTemplate().getDisplayId(), text), radius);
}
@@ -138,7 +139,7 @@ public abstract class AbstractNpcAI extends Quest
* @param stringId
* @param radius
*/
- protected void broadcastNpcSay(L2Npc npc, int type, NpcStringId stringId, int radius)
+ protected void broadcastNpcSay(L2Npc npc, ChatType type, NpcStringId stringId, int radius)
{
Broadcast.toKnownPlayersInRadius(npc, new NpcSay(npc.getObjectId(), type, npc.getTemplate().getDisplayId(), stringId), radius);
}
diff --git a/trunk/dist/game/data/scripts/ai/npc/AdventurersGuide/AdventurersGuide.java b/trunk/dist/game/data/scripts/ai/npc/AdventurersGuide/AdventurersGuide.java
index 9b5dbdb522..5859279bb4 100644
--- a/trunk/dist/game/data/scripts/ai/npc/AdventurersGuide/AdventurersGuide.java
+++ b/trunk/dist/game/data/scripts/ai/npc/AdventurersGuide/AdventurersGuide.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2014 L2J DataPack
+ * Copyright (C) 2004-2015 L2J DataPack
*
* This file is part of L2J DataPack.
*
diff --git a/trunk/dist/game/data/scripts/ai/npc/Alarm/Alarm.java b/trunk/dist/game/data/scripts/ai/npc/Alarm/Alarm.java
index e9815803e5..3abe47fdcf 100644
--- a/trunk/dist/game/data/scripts/ai/npc/Alarm/Alarm.java
+++ b/trunk/dist/game/data/scripts/ai/npc/Alarm/Alarm.java
@@ -22,12 +22,12 @@ import quests.Q00184_ArtOfPersuasion.Q00184_ArtOfPersuasion;
import quests.Q00185_NikolasCooperation.Q00185_NikolasCooperation;
import ai.npc.AbstractNpcAI;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.enums.QuestSound;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.quest.QuestState;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
/**
* Alarm AI for quests Art of Persuasion (184) and Nikola's Cooperation (185).
@@ -61,19 +61,19 @@ public final class Alarm extends AbstractNpcAI
case "SELF_DESTRUCT_IN_60":
{
startQuestTimer("SELF_DESTRUCT_IN_30", 30000, npc, null);
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.THE_ALARM_WILL_SELF_DESTRUCT_IN_60_SECONDS_ENTER_PASSCODE_TO_OVERRIDE);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.THE_ALARM_WILL_SELF_DESTRUCT_IN_60_SECONDS_ENTER_PASSCODE_TO_OVERRIDE);
break;
}
case "SELF_DESTRUCT_IN_30":
{
startQuestTimer("SELF_DESTRUCT_IN_10", 20000, npc, null);
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.THE_ALARM_WILL_SELF_DESTRUCT_IN_30_SECONDS_ENTER_PASSCODE_TO_OVERRIDE);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.THE_ALARM_WILL_SELF_DESTRUCT_IN_30_SECONDS_ENTER_PASSCODE_TO_OVERRIDE);
break;
}
case "SELF_DESTRUCT_IN_10":
{
startQuestTimer("RECORDER_CRUSHED", 10000, npc, null);
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.THE_ALARM_WILL_SELF_DESTRUCT_IN_10_SECONDS_ENTER_PASSCODE_TO_OVERRIDE);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.THE_ALARM_WILL_SELF_DESTRUCT_IN_10_SECONDS_ENTER_PASSCODE_TO_OVERRIDE);
break;
}
case "RECORDER_CRUSHED":
@@ -85,7 +85,7 @@ public final class Alarm extends AbstractNpcAI
npc0.getVariables().set("SPAWNED", false);
if (player0 != null)
{
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.RECORDER_CRUSHED);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.RECORDER_CRUSHED);
if (verifyMemoState(player0, ART_OF_PERSUASION_ID, -1))
{
setMemoState(player0, ART_OF_PERSUASION_ID, 5);
@@ -234,7 +234,7 @@ public final class Alarm extends AbstractNpcAI
public String onSpawn(L2Npc npc)
{
startQuestTimer("SELF_DESTRUCT_IN_60", 60000, npc, null);
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.INTRUDER_ALERT_THE_ALARM_WILL_SELF_DESTRUCT_IN_2_MINUTES);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.INTRUDER_ALERT_THE_ALARM_WILL_SELF_DESTRUCT_IN_2_MINUTES);
final L2PcInstance player = npc.getVariables().getObject("player0", L2PcInstance.class);
if (player != null)
{
diff --git a/trunk/dist/game/data/scripts/ai/npc/Apprentice/Apprentice.java b/trunk/dist/game/data/scripts/ai/npc/Apprentice/Apprentice.java
index c77b2b1737..d6a49b68de 100644
--- a/trunk/dist/game/data/scripts/ai/npc/Apprentice/Apprentice.java
+++ b/trunk/dist/game/data/scripts/ai/npc/Apprentice/Apprentice.java
@@ -20,11 +20,11 @@ package ai.npc.Apprentice;
import ai.npc.AbstractNpcAI;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.holders.SkillHolder;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
/**
* Apprentice AI.
@@ -57,12 +57,12 @@ public final class Apprentice extends AbstractNpcAI
}
else
{
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.YOU_CAN_T_RIDE_A_KUKURI_NOW);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.YOU_CAN_T_RIDE_A_KUKURI_NOW);
}
}
else if (event.equals("SPAM_TEXT") && (npc != null))
{
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.TRY_RIDING_A_KUKURI);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.TRY_RIDING_A_KUKURI, 1000);
}
return super.onAdvEvent(event, npc, player);
}
diff --git a/trunk/dist/game/data/scripts/ai/npc/CastleTeleporter/CastleTeleporter.java b/trunk/dist/game/data/scripts/ai/npc/CastleTeleporter/CastleTeleporter.java
index a0831741bc..e13a20ce02 100644
--- a/trunk/dist/game/data/scripts/ai/npc/CastleTeleporter/CastleTeleporter.java
+++ b/trunk/dist/game/data/scripts/ai/npc/CastleTeleporter/CastleTeleporter.java
@@ -20,13 +20,13 @@ package ai.npc.CastleTeleporter;
import ai.npc.AbstractNpcAI;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.instancemanager.MapRegionManager;
import com.l2jserver.gameserver.model.L2World;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.entity.Siege;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.NpcSay;
/**
@@ -74,7 +74,7 @@ public final class CastleTeleporter extends AbstractNpcAI
else if (event.equalsIgnoreCase("teleport"))
{
final int region = MapRegionManager.getInstance().getMapRegionLocId(npc.getX(), npc.getY());
- final NpcSay msg = new NpcSay(npc, Say2.NPC_SHOUT, NpcStringId.THE_DEFENDERS_OF_S1_CASTLE_WILL_BE_TELEPORTED_TO_THE_INNER_CASTLE);
+ final NpcSay msg = new NpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.THE_DEFENDERS_OF_S1_CASTLE_WILL_BE_TELEPORTED_TO_THE_INNER_CASTLE);
msg.addStringParameter(npc.getCastle().getName());
npc.getCastle().oustAllPlayers();
npc.setScriptValue(0);
diff --git a/trunk/dist/game/data/scripts/ai/npc/Dorian/Dorian.java b/trunk/dist/game/data/scripts/ai/npc/Dorian/Dorian.java
deleted file mode 100644
index 1187dbf156..0000000000
--- a/trunk/dist/game/data/scripts/ai/npc/Dorian/Dorian.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package ai.npc.Dorian;
-
-import quests.Q00024_InhabitantsOfTheForestOfTheDead.Q00024_InhabitantsOfTheForestOfTheDead;
-import ai.npc.AbstractNpcAI;
-
-import com.l2jserver.gameserver.model.actor.L2Character;
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
-
-/**
- * Dorian (Raid Fighter) - Quest AI
- * @author malyelfik
- */
-public final class Dorian extends AbstractNpcAI
-{
- // NPC
- private static final int DORIAN = 25332;
- // Items
- private static final int SILVER_CROSS = 7153;
- private static final int BROKEN_SILVER_CROSS = 7154;
-
- private Dorian()
- {
- super(Dorian.class.getSimpleName(), "ai/npc");
- addSeeCreatureId(DORIAN);
- }
-
- @Override
- public String onSeeCreature(L2Npc npc, L2Character creature, boolean isSummon)
- {
- if (creature.isPlayer())
- {
- final L2PcInstance pl = creature.getActingPlayer();
- final QuestState qs = pl.getQuestState(Q00024_InhabitantsOfTheForestOfTheDead.class.getSimpleName());
- if ((qs != null) && qs.isCond(3))
- {
- takeItems(pl, SILVER_CROSS, -1);
- giveItems(pl, BROKEN_SILVER_CROSS, 1);
- qs.setCond(4, true);
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.THAT_SIGN);
- }
- }
- return super.onSeeCreature(npc, creature, isSummon);
- }
-
- public static void main(String[] args)
- {
- new Dorian();
- }
-}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/ai/npc/ForgeOfTheGods/Rooney.java b/trunk/dist/game/data/scripts/ai/npc/ForgeOfTheGods/Rooney.java
index ae968c9d6c..77f01bb053 100644
--- a/trunk/dist/game/data/scripts/ai/npc/ForgeOfTheGods/Rooney.java
+++ b/trunk/dist/game/data/scripts/ai/npc/ForgeOfTheGods/Rooney.java
@@ -20,12 +20,12 @@ package ai.npc.ForgeOfTheGods;
import ai.npc.AbstractNpcAI;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.Location;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
/**
* Rooney AI
@@ -95,16 +95,16 @@ public final class Rooney extends AbstractNpcAI
switch (aiVal)
{
case 1:
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.HURRY_HURRY);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.HURRY_HURRY);
break;
case 2:
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.I_AM_NOT_THAT_TYPE_OF_PERSON_WHO_STAYS_IN_ONE_PLACE_FOR_A_LONG_TIME);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.I_AM_NOT_THAT_TYPE_OF_PERSON_WHO_STAYS_IN_ONE_PLACE_FOR_A_LONG_TIME);
break;
case 3:
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.IT_S_HARD_FOR_ME_TO_KEEP_STANDING_LIKE_THIS);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.IT_S_HARD_FOR_ME_TO_KEEP_STANDING_LIKE_THIS);
break;
case 4:
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.WHY_DON_T_I_GO_THAT_WAY_THIS_TIME);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.WHY_DON_T_I_GO_THAT_WAY_THIS_TIME);
break;
default:
npc.teleToLocation(LOCATIONS[getRandom(LOCATIONS.length)], false);
@@ -122,7 +122,7 @@ public final class Rooney extends AbstractNpcAI
{
if (creature.isPlayer() && npc.isScriptValue(0))
{
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.WELCOME);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.WELCOME);
startQuestTimer("teleport", 60000, npc, null);
npc.setScriptValue(1);
}
diff --git a/trunk/dist/game/data/scripts/ai/npc/FreyasSteward/32029.html b/trunk/dist/game/data/scripts/ai/npc/FreyasSteward/32029.html
index 55d5a2912b..31d9931d81 100644
--- a/trunk/dist/game/data/scripts/ai/npc/FreyasSteward/32029.html
+++ b/trunk/dist/game/data/scripts/ai/npc/FreyasSteward/32029.html
@@ -1,5 +1,6 @@
Steward:
-Welcome to the castle of the great Queen Freya. This place is open to the public per the Ice Queen's instruction, though the queen doesn't like noise. Please try to be quiet.
-
+Welcome to Ice Queen Freya's Castle. While this place used to be inhabited by Sirra, our great queen is now taking up residence here. And she has decided to open this place to all. Have a look around, if you like.
+If you are looking for Jinia and her guild, proceed down the road. I've heard that Jinia can get you into the Ice Queen's castle. You must let me know when you return. If you'd rather, I can teleport you there.
+
-
\ No newline at end of file
+
diff --git a/trunk/dist/game/data/scripts/ai/npc/Jinia/32781-01.html b/trunk/dist/game/data/scripts/ai/npc/Jinia/32781-01.html
index fe62013ff5..d6af10ecf0 100644
--- a/trunk/dist/game/data/scripts/ai/npc/Jinia/32781-01.html
+++ b/trunk/dist/game/data/scripts/ai/npc/Jinia/32781-01.html
@@ -1,4 +1,6 @@
Jinia:
-Sorry. I don't have time, I'm dealing with something important.
+We must be prepared before confronting Freya. As the winter cold swells around the castle, she becomes even stronger. We can use blitz tactics and strike her before her power matures fully. Then again, if we wait until she is at full strength, I'm sure the reward will be greater. I leave the choice to you.
+
+
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/ai/npc/Jinia/32781-06.html b/trunk/dist/game/data/scripts/ai/npc/Jinia/32781-06.html
index 7900028d0e..d9a1838686 100644
--- a/trunk/dist/game/data/scripts/ai/npc/Jinia/32781-06.html
+++ b/trunk/dist/game/data/scripts/ai/npc/Jinia/32781-06.html
@@ -1,4 +1,4 @@
Jinia:
Be careful. Should anything happen, we'll try to help you.
-
+
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/ai/npc/Jinia/32781-07.html b/trunk/dist/game/data/scripts/ai/npc/Jinia/32781-07.html
index 2a660b8a08..de4bead506 100644
--- a/trunk/dist/game/data/scripts/ai/npc/Jinia/32781-07.html
+++ b/trunk/dist/game/data/scripts/ai/npc/Jinia/32781-07.html
@@ -1,5 +1,5 @@
Jinia:
Her power is without equal. She truly is a frozen goddess. Are you sure you're ready?
-
+
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/ai/npc/Jinia/32781-10.html b/trunk/dist/game/data/scripts/ai/npc/Jinia/32781-10.html
index b819bb09df..76eef6af84 100644
--- a/trunk/dist/game/data/scripts/ai/npc/Jinia/32781-10.html
+++ b/trunk/dist/game/data/scripts/ai/npc/Jinia/32781-10.html
@@ -1,6 +1,5 @@
Jinia:
Alright, we'll depart now. Keep those nerves of steel!
-
-
+
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/ai/npc/Jinia/32781-11.html b/trunk/dist/game/data/scripts/ai/npc/Jinia/32781-11.html
index e12de9660b..24c2a2796c 100644
--- a/trunk/dist/game/data/scripts/ai/npc/Jinia/32781-11.html
+++ b/trunk/dist/game/data/scripts/ai/npc/Jinia/32781-11.html
@@ -1,3 +1,3 @@
Jinia:
Alright, understood. Preparations must be thorough. Just let me know when you're ready to go.
-
+
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/ai/npc/Jinia/Jinia.java b/trunk/dist/game/data/scripts/ai/npc/Jinia/Jinia.java
index baa2932f36..21e98f947d 100644
--- a/trunk/dist/game/data/scripts/ai/npc/Jinia/Jinia.java
+++ b/trunk/dist/game/data/scripts/ai/npc/Jinia/Jinia.java
@@ -90,16 +90,16 @@ public final class Jinia extends AbstractNpcAI
final QuestState st = player.getQuestState(Q10286_ReunionWithSirra.class.getSimpleName());
if ((st != null) && (player.getLevel() >= MIN_LEVEL))
{
- if (st.isCompleted())
- {
- return "32781-02.html";
- }
- else if (st.isCond(5) || st.isCond(6))
+ if (st.isCond(5) || st.isCond(6))
{
return "32781-09.html";
}
+ else if (st.isCond(7))
+ {
+ return "32781-01.html";
+ }
}
- return "32781-01.html";
+ return "32781-02.html";
}
public static void main(String[] args)
diff --git a/trunk/dist/game/data/scripts/ai/npc/LaVieEnRose/LaVieEnRose.java b/trunk/dist/game/data/scripts/ai/npc/LaVieEnRose/LaVieEnRose.java
index 45ee99891e..b8289c7433 100644
--- a/trunk/dist/game/data/scripts/ai/npc/LaVieEnRose/LaVieEnRose.java
+++ b/trunk/dist/game/data/scripts/ai/npc/LaVieEnRose/LaVieEnRose.java
@@ -20,8 +20,10 @@ package ai.npc.LaVieEnRose;
import ai.npc.AbstractNpcAI;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.network.NpcStringId;
import com.l2jserver.gameserver.network.serverpackets.ExResponseBeautyList;
import com.l2jserver.gameserver.network.serverpackets.ExResponseResetList;
import com.l2jserver.gameserver.network.serverpackets.ExShowBeautyMenu;
@@ -34,6 +36,7 @@ public final class LaVieEnRose extends AbstractNpcAI
{
// NPCs
private static final int LA_VIE_EN_ROSE = 33825;
+ private static final int BEAUTY_SHOP_HELPER = 33854;
private LaVieEnRose()
{
@@ -41,6 +44,7 @@ public final class LaVieEnRose extends AbstractNpcAI
addStartNpc(LA_VIE_EN_ROSE);
addTalkId(LA_VIE_EN_ROSE);
addFirstTalkId(LA_VIE_EN_ROSE);
+ addSpawnId(BEAUTY_SHOP_HELPER);
}
@Override
@@ -81,16 +85,39 @@ public final class LaVieEnRose extends AbstractNpcAI
player.sendPacket(new ExResponseResetList(player));
break;
}
+ case "SPAM_TEXT":
+ {
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.THE_BEAUTY_SHOP_IS_OPEN_COME_ON_IN);
+ startQuestTimer("SPAM_TEXT2", 2500, npc, null);
+ break;
+ }
+ case "SPAM_TEXT2":
+ {
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.YOU_CAN_LOOK_GOOD_TOO_BUDDY_COME_ON_COME_ON);
+ startQuestTimer("SPAM_TEXT3", 2500, npc, null);
+ break;
+ }
+ case "SPAM_TEXT3":
+ {
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.EVERYONE_COME_ON_LET_S_GO_GANGNAM_STYLE);
+ break;
+ }
case "cancel":
default:
{
break;
}
}
-
return htmltext;
}
+ @Override
+ public String onSpawn(L2Npc npc)
+ {
+ startQuestTimer("SPAM_TEXT", (5 * 60 * 1000), npc, null, true);
+ return super.onSpawn(npc);
+ }
+
public static void main(String[] args)
{
new LaVieEnRose();
diff --git a/trunk/dist/game/data/scripts/ai/npc/Mammons/Mammons.java b/trunk/dist/game/data/scripts/ai/npc/Mammons/Mammons.java
index 3d78800919..f634beb2b6 100644
--- a/trunk/dist/game/data/scripts/ai/npc/Mammons/Mammons.java
+++ b/trunk/dist/game/data/scripts/ai/npc/Mammons/Mammons.java
@@ -26,11 +26,11 @@ import java.util.Objects;
import ai.npc.AbstractNpcAI;
import com.l2jserver.Config;
+import com.l2jserver.gameserver.enums.ChatType;
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.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.util.Broadcast;
/**
@@ -120,7 +120,7 @@ public final class Mammons extends AbstractNpcAI
if (blacksmith != null)
{
- broadcastNpcSay(blacksmith, Say2.NPC_ALL, NpcStringId.I_HAVE_SOME_EXCELLENT_WEAPONS_TO_SHOW_YOU);
+ broadcastNpcSay(blacksmith, ChatType.NPC_GENERAL, NpcStringId.I_HAVE_SOME_EXCELLENT_WEAPONS_TO_SHOW_YOU);
}
if (Config.ANNOUNCE_MAMMON_SPAWN)
diff --git a/trunk/dist/game/data/scripts/ai/npc/Milia/Milia.java b/trunk/dist/game/data/scripts/ai/npc/Milia/Milia.java
index ad78d1c098..88d708684f 100644
--- a/trunk/dist/game/data/scripts/ai/npc/Milia/Milia.java
+++ b/trunk/dist/game/data/scripts/ai/npc/Milia/Milia.java
@@ -20,11 +20,11 @@ package ai.npc.Milia;
import ai.npc.AbstractNpcAI;
+import com.l2jserver.gameserver.enums.ChatType;
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.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
/**
* Milia AI.
@@ -39,7 +39,7 @@ public final class Milia extends AbstractNpcAI
private Milia()
{
- super(Milia.class.getSimpleName(), "ai/npc/Teleports");
+ super(Milia.class.getSimpleName(), "ai/npc");
addSpawnId(MILIA);
addStartNpc(MILIA);
addTalkId(MILIA);
@@ -54,7 +54,7 @@ public final class Milia extends AbstractNpcAI
}
else if (event.equals("TEXT_SPAM") && (npc != null))
{
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.SPEAK_WITH_ME_ABOUT_TRAVELING_AROUND_ADEN);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.SPEAK_WITH_ME_ABOUT_TRAVELING_AROUND_ADEN, 1000);
}
return super.onAdvEvent(event, npc, player);
}
diff --git a/trunk/dist/game/data/scripts/ai/npc/Minigame/Minigame.java b/trunk/dist/game/data/scripts/ai/npc/Minigame/Minigame.java
index c3a9f782af..52438a1d63 100644
--- a/trunk/dist/game/data/scripts/ai/npc/Minigame/Minigame.java
+++ b/trunk/dist/game/data/scripts/ai/npc/Minigame/Minigame.java
@@ -24,6 +24,7 @@ import java.util.List;
import ai.npc.AbstractNpcAI;
import com.l2jserver.gameserver.datatables.SpawnTable;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.L2Spawn;
import com.l2jserver.gameserver.model.Location;
@@ -34,7 +35,6 @@ import com.l2jserver.gameserver.model.events.impl.character.OnCreatureSkillUse;
import com.l2jserver.gameserver.model.events.listeners.ConsumerEventListener;
import com.l2jserver.gameserver.model.holders.SkillHolder;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.util.Util;
/**
@@ -90,7 +90,7 @@ public final class Minigame extends AbstractNpcAI
takeItems(player, UNLIT_TORCHLIGHT, 1);
giveItems(player, TORCHLIGHT, 1);
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.I_LL_START_THE_FURNACE_MECHANISM_WATCH_FOR_THE_PATTERN);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.I_LL_START_THE_FURNACE_MECHANISM_WATCH_FOR_THE_PATTERN);
room.getManager().setTarget(player);
room.setParticipant(player);
@@ -155,7 +155,7 @@ public final class Minigame extends AbstractNpcAI
}
else
{
- broadcastNpcSay(room.getManager(), Say2.NPC_ALL, NpcStringId.NOW_LIGHT_THE_FURNACES_IN_THE_CORRECT_ORDER);
+ broadcastNpcSay(room.getManager(), ChatType.NPC_GENERAL, NpcStringId.NOW_LIGHT_THE_FURNACES_IN_THE_CORRECT_ORDER);
room.burnThemAll();
startQuestTimer("off", 2000, npc, null);
final ConsumerEventListener listener = new ConsumerEventListener(room.getParticipant(), EventType.ON_CREATURE_SKILL_USE, (OnCreatureSkillUse listenerEvent) -> onSkillUse(listenerEvent), room);
@@ -166,19 +166,19 @@ public final class Minigame extends AbstractNpcAI
}
case "hurry_up":
{
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.ONLY_1_MINUTE_LEFT);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.ONLY_1_MINUTE_LEFT);
startQuestTimer("hurry_up2", 60000, npc, null);
break;
}
case "hurry_up2":
{
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.JUST_10_SECONDS_LEFT);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.JUST_10_SECONDS_LEFT);
startQuestTimer("expire", 10000, npc, null);
break;
}
case "expire":
{
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.TOO_LATE_THE_TORCH_HAS_RUN_OUT_MAYBE_NEXT_TIME);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.TOO_LATE_THE_TORCH_HAS_RUN_OUT_MAYBE_NEXT_TIME);
}
case "end":
{
@@ -287,7 +287,7 @@ public final class Minigame extends AbstractNpcAI
else
{
addSpawn(TREASURE_BOX, room.getParticipant().getLocation(), true, 0);
- broadcastNpcSay(room.getManager(), Say2.NPC_ALL, NpcStringId.THAT_S_IT_YOU_VE_DONE_IT);
+ broadcastNpcSay(room.getManager(), ChatType.NPC_GENERAL, NpcStringId.THAT_S_IT_YOU_VE_DONE_IT);
room.setCurrentPot(0);
room.burnThemAll();
startQuestTimer("off", 2000, room.getManager(), null);
@@ -298,7 +298,7 @@ public final class Minigame extends AbstractNpcAI
{
if (room.getAttemptNumber() == MAX_ATTEMPTS)
{
- broadcastNpcSay(room.getManager(), Say2.NPC_ALL, NpcStringId.I_VE_FAILED_ANY_FURTHER_ATTEMPTS_WOULD_BE_WASTEFUL);
+ broadcastNpcSay(room.getManager(), ChatType.NPC_GENERAL, NpcStringId.I_VE_FAILED_ANY_FURTHER_ATTEMPTS_WOULD_BE_WASTEFUL);
room.burnThemAll();
startQuestTimer("off", 2000, room.getManager(), null);
room.getParticipant().removeListenerIf(EventType.ON_CREATURE_SKILL_USE, listener -> listener.getOwner() == room);
@@ -306,7 +306,7 @@ public final class Minigame extends AbstractNpcAI
}
else if (room.getAttemptNumber() < MAX_ATTEMPTS)
{
- broadcastNpcSay(room.getManager(), Say2.NPC_ALL, NpcStringId.TOO_BAD_I_WILL_NOT_GIVE_UP_ON_THIS_THOUGH);
+ broadcastNpcSay(room.getManager(), ChatType.NPC_GENERAL, NpcStringId.TOO_BAD_I_WILL_NOT_GIVE_UP_ON_THIS_THOUGH);
room.burnThemAll();
startQuestTimer("off", 2000, room.getManager(), null);
room.setAttemptNumber(room.getAttemptNumber() + 1);
diff --git a/trunk/dist/game/data/scripts/ai/npc/Pantheon/Pantheon.java b/trunk/dist/game/data/scripts/ai/npc/Pantheon/Pantheon.java
index 1188a492f2..9bc83ea27f 100644
--- a/trunk/dist/game/data/scripts/ai/npc/Pantheon/Pantheon.java
+++ b/trunk/dist/game/data/scripts/ai/npc/Pantheon/Pantheon.java
@@ -21,12 +21,12 @@ package ai.npc.Pantheon;
import quests.Q10320_LetsGoToTheCentralSquare.Q10320_LetsGoToTheCentralSquare;
import ai.npc.AbstractNpcAI;
+import com.l2jserver.gameserver.enums.ChatType;
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.quest.QuestState;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.ExShowScreenMessage;
/**
@@ -76,7 +76,7 @@ public final class Pantheon extends AbstractNpcAI
{
if (npc != null)
{
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.IS_IT_BETTER_TO_END_DESTINY_OR_START_DESTINY);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.IS_IT_BETTER_TO_END_DESTINY_OR_START_DESTINY);
}
break;
}
diff --git a/trunk/dist/game/data/scripts/ai/npc/Proclaimer/Proclaimer.java b/trunk/dist/game/data/scripts/ai/npc/Proclaimer/Proclaimer.java
index f1f3bd578a..3d114fc494 100644
--- a/trunk/dist/game/data/scripts/ai/npc/Proclaimer/Proclaimer.java
+++ b/trunk/dist/game/data/scripts/ai/npc/Proclaimer/Proclaimer.java
@@ -20,12 +20,12 @@ package ai.npc.Proclaimer;
import ai.npc.AbstractNpcAI;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.L2Clan;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.holders.SkillHolder;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
import com.l2jserver.gameserver.network.serverpackets.NpcSay;
@@ -65,7 +65,7 @@ public final class Proclaimer extends AbstractNpcAI
String htmltext = null;
if (!player.isOnDarkSide())
{
- player.sendPacket(new NpcSay(npc.getObjectId(), Say2.NPC_TELL, npc.getId(), NpcStringId.WHEN_THE_WORLD_PLUNGES_INTO_CHAOS_WE_WILL_NEED_YOUR_HELP_WE_HOPE_YOU_JOIN_US_WHEN_THE_TIME_COMES));
+ player.sendPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_TELL, npc.getId(), NpcStringId.WHEN_THE_WORLD_PLUNGES_INTO_CHAOS_WE_WILL_NEED_YOUR_HELP_WE_HOPE_YOU_JOIN_US_WHEN_THE_TIME_COMES));
final L2Clan ownerClan = npc.getCastle().getOwner();
if (ownerClan != null)
diff --git a/trunk/dist/game/data/scripts/ai/npc/Raina/Raina.java b/trunk/dist/game/data/scripts/ai/npc/Raina/Raina.java
index 3e8b117c39..73d2636e4e 100644
--- a/trunk/dist/game/data/scripts/ai/npc/Raina/Raina.java
+++ b/trunk/dist/game/data/scripts/ai/npc/Raina/Raina.java
@@ -39,6 +39,7 @@ import com.l2jserver.gameserver.data.xml.impl.ClassListData;
import com.l2jserver.gameserver.data.xml.impl.SkillTreesData;
import com.l2jserver.gameserver.enums.CategoryType;
import com.l2jserver.gameserver.enums.Race;
+import com.l2jserver.gameserver.enums.SubclassInfoType;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.base.ClassId;
@@ -54,6 +55,7 @@ import com.l2jserver.gameserver.model.events.impl.character.npc.OnNpcMenuSelect;
import com.l2jserver.gameserver.model.quest.QuestState;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.AcquireSkillList;
+import com.l2jserver.gameserver.network.serverpackets.ExSubjobInfo;
import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
/**
@@ -152,6 +154,7 @@ public final class Raina extends AbstractNpcAI
case "33491-02.html":
case "33491-03.html":
case "33491-04.html":
+ case "33491-05.html":
case "reawakenCancel.html":
{
htmltext = event;
@@ -456,10 +459,10 @@ public final class Raina extends AbstractNpcAI
return;
}
- final NpcHtmlMessage html = getNpcHtmlMessage(player, npc, "addSuccess.html");
player.setActiveClass(player.getTotalSubClasses());
+ player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.NEW_SLOT_USED));
player.sendPacket(SystemMessageId.THE_NEW_SUBCLASS_HAS_BEEN_ADDED);
- player.sendPacket(html);
+ player.sendPacket(getNpcHtmlMessage(player, npc, "addSuccess.html"));
break;
}
case 2: // Remove (change) subclass list
@@ -521,10 +524,8 @@ public final class Raina extends AbstractNpcAI
player.stopAllEffectsNotStayOnSubclassChange();
player.stopCubics();
player.setActiveClass(classIndex);
-
- final NpcHtmlMessage html = getNpcHtmlMessage(player, npc, "addSuccess.html");
-
- player.sendPacket(html);
+ player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED));
+ player.sendPacket(getNpcHtmlMessage(player, npc, "addSuccess.html"));
player.sendPacket(SystemMessageId.THE_NEW_SUBCLASS_HAS_BEEN_ADDED);
}
break;
@@ -563,9 +564,8 @@ public final class Raina extends AbstractNpcAI
player.stopAllEffectsNotStayOnSubclassChange();
player.stopCubics();
player.setActiveClass(classIndex);
-
- final NpcHtmlMessage html = getNpcHtmlMessage(player, npc, "reawakenSuccess.html");
- player.sendPacket(html);
+ player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED));
+ player.sendPacket(getNpcHtmlMessage(player, npc, "reawakenSuccess.html"));
SkillTreesData.getInstance().cleanSkillUponAwakening(player);
player.sendPacket(new AcquireSkillList(player));
player.sendSkillList();
@@ -589,10 +589,10 @@ public final class Raina extends AbstractNpcAI
if (player.addSubClass(classId, player.getTotalSubClasses() + 1, true))
{
- final NpcHtmlMessage html = getNpcHtmlMessage(player, npc, "addSuccess.html");
player.setActiveClass(player.getTotalSubClasses());
+ player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.NEW_SLOT_USED));
player.sendPacket(SystemMessageId.THE_NEW_SUBCLASS_HAS_BEEN_ADDED);
- player.sendPacket(html);
+ player.sendPacket(getNpcHtmlMessage(player, npc, "addSuccess.html"));
SkillTreesData.getInstance().cleanSkillUponAwakening(player);
player.sendPacket(new AcquireSkillList(player));
player.sendSkillList();
diff --git a/trunk/dist/game/data/scripts/ai/npc/Sirra/32762-easy.html b/trunk/dist/game/data/scripts/ai/npc/Sirra/32762-easy.html
index 794d8fed92..f73fe80cd8 100644
--- a/trunk/dist/game/data/scripts/ai/npc/Sirra/32762-easy.html
+++ b/trunk/dist/game/data/scripts/ai/npc/Sirra/32762-easy.html
@@ -1,4 +1,4 @@
Sirra:
This is the way to the Ice Queen's Throne room, where she awaits. As I've told you, Freya is powerful beyond all comprehension and can destroy you with a mere thought. I keep telling other would-be heroes this, but they keep going anyway. It's actually getting rather fun. But I'm SURE you're different than they were! You shall succeed where they failed. Hahahaha...
-
+
diff --git a/trunk/dist/game/data/scripts/ai/npc/Sirra/32762-easyfight.html b/trunk/dist/game/data/scripts/ai/npc/Sirra/32762-easyfight.html
index 966863243b..f4a783b924 100644
--- a/trunk/dist/game/data/scripts/ai/npc/Sirra/32762-easyfight.html
+++ b/trunk/dist/game/data/scripts/ai/npc/Sirra/32762-easyfight.html
@@ -1,4 +1,4 @@
Sirra:
Beyond this door the Ice Queen Freya is making ice sculptures from foolish adventurers. You're not trying to join them, are you? Tsk tsk. The smart ones run screaming about now.
-
+
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/ai/npc/Sirra/32762-hard.html b/trunk/dist/game/data/scripts/ai/npc/Sirra/32762-hard.html
index 81095d9ea1..f73fe80cd8 100644
--- a/trunk/dist/game/data/scripts/ai/npc/Sirra/32762-hard.html
+++ b/trunk/dist/game/data/scripts/ai/npc/Sirra/32762-hard.html
@@ -1,4 +1,4 @@
Sirra:
This is the way to the Ice Queen's Throne room, where she awaits. As I've told you, Freya is powerful beyond all comprehension and can destroy you with a mere thought. I keep telling other would-be heroes this, but they keep going anyway. It's actually getting rather fun. But I'm SURE you're different than they were! You shall succeed where they failed. Hahahaha...
-
+
diff --git a/trunk/dist/game/data/scripts/ai/npc/Sirra/32762-hardfight.html b/trunk/dist/game/data/scripts/ai/npc/Sirra/32762-hardfight.html
index 7fe902fdd0..f4a783b924 100644
--- a/trunk/dist/game/data/scripts/ai/npc/Sirra/32762-hardfight.html
+++ b/trunk/dist/game/data/scripts/ai/npc/Sirra/32762-hardfight.html
@@ -1,4 +1,4 @@
Sirra:
Beyond this door the Ice Queen Freya is making ice sculptures from foolish adventurers. You're not trying to join them, are you? Tsk tsk. The smart ones run screaming about now.
-
+
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/ai/npc/Teleports/TeleportToFantasy/TeleportToFantasy.java b/trunk/dist/game/data/scripts/ai/npc/Teleports/TeleportToFantasy/TeleportToFantasy.java
index 138c853a95..bd0d812b32 100644
--- a/trunk/dist/game/data/scripts/ai/npc/Teleports/TeleportToFantasy/TeleportToFantasy.java
+++ b/trunk/dist/game/data/scripts/ai/npc/Teleports/TeleportToFantasy/TeleportToFantasy.java
@@ -23,11 +23,11 @@ import java.util.Map;
import ai.npc.AbstractNpcAI;
+import com.l2jserver.gameserver.enums.ChatType;
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.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
/**
* Fantasy Island teleport AI.
@@ -103,7 +103,7 @@ public final class TeleportToFantasy extends AbstractNpcAI
}
else
{
- broadcastNpcSay(npc, Say2.ALL, NpcStringId.IF_YOUR_MEANS_OF_ARRIVAL_WAS_A_BIT_UNCONVENTIONAL_THEN_I_LL_BE_SENDING_YOU_BACK_TO_THE_TOWN_OF_RUNE_WHICH_IS_THE_NEAREST_TOWN);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.IF_YOUR_MEANS_OF_ARRIVAL_WAS_A_BIT_UNCONVENTIONAL_THEN_I_LL_BE_SENDING_YOU_BACK_TO_THE_TOWN_OF_RUNE_WHICH_IS_THE_NEAREST_TOWN);
player.teleToLocation(RUNE_TOWNSHIP);
}
}
diff --git a/trunk/dist/game/data/scripts/ai/npc/Teleports/TeleportToRaceTrack/TeleportToRaceTrack.java b/trunk/dist/game/data/scripts/ai/npc/Teleports/TeleportToRaceTrack/TeleportToRaceTrack.java
index abeb56c09f..49f5bc3d25 100644
--- a/trunk/dist/game/data/scripts/ai/npc/Teleports/TeleportToRaceTrack/TeleportToRaceTrack.java
+++ b/trunk/dist/game/data/scripts/ai/npc/Teleports/TeleportToRaceTrack/TeleportToRaceTrack.java
@@ -23,11 +23,11 @@ import java.util.Map;
import ai.npc.AbstractNpcAI;
+import com.l2jserver.gameserver.enums.ChatType;
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.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
/**
* Monster Derby Track teleport AI.
@@ -97,7 +97,7 @@ public final class TeleportToRaceTrack extends AbstractNpcAI
}
else
{
- broadcastNpcSay(npc, Say2.ALL, NpcStringId.IF_YOUR_MEANS_OF_ARRIVAL_WAS_A_BIT_UNCONVENTIONAL_THEN_I_LL_BE_SENDING_YOU_BACK_TO_THE_TOWN_OF_RUNE_WHICH_IS_THE_NEAREST_TOWN);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.IF_YOUR_MEANS_OF_ARRIVAL_WAS_A_BIT_UNCONVENTIONAL_THEN_I_LL_BE_SENDING_YOU_BACK_TO_THE_TOWN_OF_RUNE_WHICH_IS_THE_NEAREST_TOWN);
player.teleToLocation(DION_CASTLE_TOWN);
}
}
diff --git a/trunk/dist/game/data/scripts/ai/npc/Trandon/Trandon.java b/trunk/dist/game/data/scripts/ai/npc/Trandon/Trandon.java
index d50d28c07d..1eddd6abc5 100644
--- a/trunk/dist/game/data/scripts/ai/npc/Trandon/Trandon.java
+++ b/trunk/dist/game/data/scripts/ai/npc/Trandon/Trandon.java
@@ -224,12 +224,6 @@ public final class Trandon extends AbstractNpcAI
{
htmltext = "33490-25.html";
}
- else if ((player.getLevel() < DUAL_SKILL_LEVELS[0]) || (player.getStat().getBaseLevel() < DUAL_SKILL_LEVELS[0])) // Dual or main class level is lower than 85
- {
- // TODO: What happens here?
- player.sendMessage("Your level is too low.");
- htmltext = null;
- }
break;
}
case "dualCertify":
@@ -335,7 +329,6 @@ public final class Trandon extends AbstractNpcAI
giveSkills(player, "DualSkillList");
}
giveSkills(player, "SubSkillList");
- player.sendSkillList();
}
@RegisterEvent(EventType.ON_PLAYER_LOGIN)
diff --git a/trunk/dist/game/data/scripts/ai/npc/WeaverOlf/WeaverOlf.java b/trunk/dist/game/data/scripts/ai/npc/WeaverOlf/WeaverOlf.java
index 67a97941d8..2ac2b8aae1 100644
--- a/trunk/dist/game/data/scripts/ai/npc/WeaverOlf/WeaverOlf.java
+++ b/trunk/dist/game/data/scripts/ai/npc/WeaverOlf/WeaverOlf.java
@@ -20,11 +20,11 @@ package ai.npc.WeaverOlf;
import ai.npc.AbstractNpcAI;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.itemcontainer.Inventory;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.NpcSay;
/**
@@ -217,7 +217,7 @@ public final class WeaverOlf extends AbstractNpcAI
}
else
{
- npc.broadcastPacket(new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npc.getId(), NpcStringId.WHAT_A_PREDICAMENT_MY_ATTEMPTS_WERE_UNSUCCESSFUL));
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.WHAT_A_PREDICAMENT_MY_ATTEMPTS_WERE_UNSUCCESSFUL));
}
}
else
diff --git a/trunk/dist/game/data/scripts/conquerablehalls/DevastatedCastle/DevastatedCastle.java b/trunk/dist/game/data/scripts/conquerablehalls/DevastatedCastle/DevastatedCastle.java
index 0284674e2d..e60db3a33a 100644
--- a/trunk/dist/game/data/scripts/conquerablehalls/DevastatedCastle/DevastatedCastle.java
+++ b/trunk/dist/game/data/scripts/conquerablehalls/DevastatedCastle/DevastatedCastle.java
@@ -26,12 +26,12 @@ import com.l2jserver.gameserver.ai.CtrlIntention;
import com.l2jserver.gameserver.data.sql.impl.ClanTable;
import com.l2jserver.gameserver.data.xml.impl.NpcData;
import com.l2jserver.gameserver.datatables.SkillData;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.L2Clan;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.entity.clanhall.ClanHallSiegeEngine;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
/**
* Devastated Castle clan hall siege script.
@@ -60,11 +60,11 @@ public final class DevastatedCastle extends ClanHallSiegeEngine
{
if (npc.getId() == MIKHAIL)
{
- broadcastNpcSay(npc, Say2.NPC_SHOUT, NpcStringId.GLORY_TO_ADEN_THE_KINGDOM_OF_THE_LION_GLORY_TO_SIR_GUSTAV_OUR_IMMORTAL_LORD);
+ broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.GLORY_TO_ADEN_THE_KINGDOM_OF_THE_LION_GLORY_TO_SIR_GUSTAV_OUR_IMMORTAL_LORD);
}
else if (npc.getId() == DIETRICH)
{
- broadcastNpcSay(npc, Say2.NPC_SHOUT, NpcStringId.SOLDIERS_OF_GUSTAV_GO_FORTH_AND_DESTROY_THE_INVADERS);
+ broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.SOLDIERS_OF_GUSTAV_GO_FORTH_AND_DESTROY_THE_INVADERS);
}
return null;
}
@@ -98,7 +98,7 @@ public final class DevastatedCastle extends ClanHallSiegeEngine
if ((npc.getCurrentHp() < GUSTAV_TRIGGER_HP) && (npc.getAI().getIntention() != CtrlIntention.AI_INTENTION_CAST))
{
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.THIS_IS_UNBELIEVABLE_HAVE_I_REALLY_BEEN_DEFEATED_I_SHALL_RETURN_AND_TAKE_YOUR_HEAD);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.THIS_IS_UNBELIEVABLE_HAVE_I_REALLY_BEEN_DEFEATED_I_SHALL_RETURN_AND_TAKE_YOUR_HEAD);
npc.getAI().setIntention(CtrlIntention.AI_INTENTION_CAST, SkillData.getInstance().getSkill(4235, 1), npc);
}
}
diff --git a/trunk/dist/game/data/scripts/conquerablehalls/FortressOfTheDead/FortressOfTheDead.java b/trunk/dist/game/data/scripts/conquerablehalls/FortressOfTheDead/FortressOfTheDead.java
index 0b231126fc..433e2b34e2 100644
--- a/trunk/dist/game/data/scripts/conquerablehalls/FortressOfTheDead/FortressOfTheDead.java
+++ b/trunk/dist/game/data/scripts/conquerablehalls/FortressOfTheDead/FortressOfTheDead.java
@@ -25,12 +25,12 @@ import java.util.Map.Entry;
import com.l2jserver.gameserver.GameTimeController;
import com.l2jserver.gameserver.ThreadPoolManager;
import com.l2jserver.gameserver.data.sql.impl.ClanTable;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.L2Clan;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.entity.clanhall.ClanHallSiegeEngine;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
/**
* Fortress of the Dead clan hall siege script.
@@ -63,15 +63,15 @@ public final class FortressOfTheDead extends ClanHallSiegeEngine
{
if (npc.getId() == LIDIA)
{
- broadcastNpcSay(npc, Say2.NPC_SHOUT, NpcStringId.HMM_THOSE_WHO_ARE_NOT_OF_THE_BLOODLINE_ARE_COMING_THIS_WAY_TO_TAKE_OVER_THE_CASTLE_HUMPH_THE_BITTER_GRUDGES_OF_THE_DEAD_YOU_MUST_NOT_MAKE_LIGHT_OF_THEIR_POWER);
+ broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.HMM_THOSE_WHO_ARE_NOT_OF_THE_BLOODLINE_ARE_COMING_THIS_WAY_TO_TAKE_OVER_THE_CASTLE_HUMPH_THE_BITTER_GRUDGES_OF_THE_DEAD_YOU_MUST_NOT_MAKE_LIGHT_OF_THEIR_POWER);
}
else if (npc.getId() == ALFRED)
{
- broadcastNpcSay(npc, Say2.NPC_SHOUT, NpcStringId.HEH_HEH_I_SEE_THAT_THE_FEAST_HAS_BEGUN_BE_WARY_THE_CURSE_OF_THE_HELLMANN_FAMILY_HAS_POISONED_THIS_LAND);
+ broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.HEH_HEH_I_SEE_THAT_THE_FEAST_HAS_BEGUN_BE_WARY_THE_CURSE_OF_THE_HELLMANN_FAMILY_HAS_POISONED_THIS_LAND);
}
else if (npc.getId() == GISELLE)
{
- broadcastNpcSay(npc, Say2.NPC_SHOUT, NpcStringId.ARISE_MY_FAITHFUL_SERVANTS_YOU_MY_PEOPLE_WHO_HAVE_INHERITED_THE_BLOOD_IT_IS_THE_CALLING_OF_MY_DAUGHTER_THE_FEAST_OF_BLOOD_WILL_NOW_BEGIN);
+ broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.ARISE_MY_FAITHFUL_SERVANTS_YOU_MY_PEOPLE_WHO_HAVE_INHERITED_THE_BLOOD_IT_IS_THE_CALLING_OF_MY_DAUGHTER_THE_FEAST_OF_BLOOD_WILL_NOW_BEGIN);
}
return null;
}
@@ -118,11 +118,11 @@ public final class FortressOfTheDead extends ClanHallSiegeEngine
if ((npcId == ALFRED) || (npcId == GISELLE))
{
- broadcastNpcSay(npc, Say2.NPC_SHOUT, NpcStringId.AARGH_IF_I_DIE_THEN_THE_MAGIC_FORCE_FIELD_OF_BLOOD_WILL);
+ broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.AARGH_IF_I_DIE_THEN_THE_MAGIC_FORCE_FIELD_OF_BLOOD_WILL);
}
if (npcId == LIDIA)
{
- broadcastNpcSay(npc, Say2.NPC_SHOUT, NpcStringId.GRARR_FOR_THE_NEXT_2_MINUTES_OR_SO_THE_GAME_ARENA_ARE_WILL_BE_CLEANED_THROW_ANY_ITEMS_YOU_DON_T_NEED_TO_THE_FLOOR_NOW);
+ broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.GRARR_FOR_THE_NEXT_2_MINUTES_OR_SO_THE_GAME_ARENA_ARE_WILL_BE_CLEANED_THROW_ANY_ITEMS_YOU_DON_T_NEED_TO_THE_FLOOR_NOW);
_missionAccomplished = true;
synchronized (this)
{
diff --git a/trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/RainbowSpringsChateau.java b/trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/RainbowSpringsChateau.java
index 27b78c32a4..7010e3a0e0 100644
--- a/trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/RainbowSpringsChateau.java
+++ b/trunk/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/RainbowSpringsChateau.java
@@ -37,6 +37,7 @@ import com.l2jserver.gameserver.cache.HtmCache;
import com.l2jserver.gameserver.data.sql.impl.ClanTable;
import com.l2jserver.gameserver.data.xml.impl.NpcData;
import com.l2jserver.gameserver.datatables.SpawnTable;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.instancemanager.CHSiegeManager;
import com.l2jserver.gameserver.instancemanager.ZoneManager;
import com.l2jserver.gameserver.model.L2Clan;
@@ -55,7 +56,6 @@ import com.l2jserver.gameserver.model.entity.clanhall.SiegeStatus;
import com.l2jserver.gameserver.model.items.L2Item;
import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
import com.l2jserver.gameserver.model.skills.Skill;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.NpcSay;
import com.l2jserver.gameserver.util.Broadcast;
import com.l2jserver.gameserver.util.Util;
@@ -811,9 +811,7 @@ public final class RainbowSpringsChateau extends ClanHallSiegeEngine
else
{
_usedTextPassages.put(message, new ArrayList());
- int shout = Say2.NPC_SHOUT;
- int objId = npc.getObjectId();
- NpcSay say = new NpcSay(objId, shout, npc.getId(), message);
+ final NpcSay say = new NpcSay(npc.getObjectId(), ChatType.NPC_SHOUT, npc.getId(), message);
npc.broadcastPacket(say);
}
}
diff --git a/trunk/dist/game/data/scripts/custom/FactionManager/FactionManager.java b/trunk/dist/game/data/scripts/custom/FactionManager/FactionManager.java
index 76443e1292..cb79b8f41c 100644
--- a/trunk/dist/game/data/scripts/custom/FactionManager/FactionManager.java
+++ b/trunk/dist/game/data/scripts/custom/FactionManager/FactionManager.java
@@ -21,10 +21,10 @@ package custom.FactionManager;
import ai.npc.AbstractNpcAI;
import com.l2jserver.Config;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.L2World;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
/**
@@ -119,7 +119,7 @@ public class FactionManager extends AbstractNpcAI
{
if (npc != null)
{
- broadcastNpcSay(npc, Say2.NPC_ALL, TEXTS[getRandom(TEXTS.length)]);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, TEXTS[getRandom(TEXTS.length)]);
}
break;
}
diff --git a/trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-1.htm b/trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-1.htm
deleted file mode 100644
index 1c0c1bfda8..0000000000
--- a/trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-1.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Newbie Guide:
-You have already received the Apprentice Adventurer's Weapon Exchange Coupon! Trying to trick me, eh? Don't underestimate my memory for faces! (Each character may only receive 1 Apprentice Adventurer's Weapon Exchange Coupon.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-2.htm b/trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-2.htm
deleted file mode 100644
index bb88adf072..0000000000
--- a/trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-2.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Newbie Guide:
-Here is the Apprentice Adventurer's Weapon Exchange Coupon.
-You can exchange this ticket for the No-Grade Shadow Weapon from the Adventure Guild warehouse. Keep in mind that this Exchange Coupon is reserved only for you. Should you lose either the ticket or the weapon you borrowed, you cannot get a new one. Guard it carefully! You can use the weapon warehouse if you visit the Newbie Guide in each town. I wish you a pleasant and prosperous journey!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-3.htm b/trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-3.htm
deleted file mode 100644
index e9d77c2469..0000000000
--- a/trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-3.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Newbie Guide:
-You are not eligible to have the Apprentice Adventurer's Weapon Exchange Coupon! It is reserved especially for new adventurers who are visiting the world of Lineage 2 for the first time. You may not receive the Exchange Coupon if your level is under 6 or you have completed an occupation change. (Only beginners who are between level 6 and level 19 may use it.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-4.htm b/trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-4.htm
deleted file mode 100644
index 99d30f4ab6..0000000000
--- a/trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-4.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Newbie Guide:
-You have already received the Apprentice Adventurer's Armor Exchange Coupon! Trying to trick me, eh? Don't underestimate my memory for faces! (Each character may only receive 1 Apprentice Adventurer's Armor Exchange Coupon.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-5.htm b/trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-5.htm
deleted file mode 100644
index 85c3165af8..0000000000
--- a/trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-5.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Newbie Guide:
-Here is the Apprentice Adventurer's Armor Exchange Coupon.
-You can exchange this ticket for the No-Grade Shadow Armor from the Adventure Guild warehouse. Keep in mind that this Exchange Coupon is reserved only for you. Should you lose either the ticket or the weapon you borrowed, you cannot get a new one. Guard it carefully! You can use the weapon warehouse if you visit the Newbie Guide in each town. I wish you a pleasant and prosperous journey!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-6.htm b/trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-6.htm
deleted file mode 100644
index e58b891d77..0000000000
--- a/trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-6.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Newbie Guide:
-You are not eligible to receive the Apprentice Adventurer's Armor Exchange Coupon! It is reserved for new adventurers visiting the world of Lineage 2 for the first time. Even then, you can not receive the ticket unless you have completed the first occupation change! (Only beginners who have completed the first occupation change may use it.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-7.htm b/trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-7.htm
deleted file mode 100644
index e6951f5960..0000000000
--- a/trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-7.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Newbie Guide:
-You are not eligible to use the warehouse. You may not receive the Exchange Coupon if your level is under 6 or you have completed an occupation change. (Only beginners who are between level 6 and level 19 may use the warehouse.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-8.htm b/trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-8.htm
deleted file mode 100644
index b3f8b32230..0000000000
--- a/trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-8.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Newbie Guide:
-You are not eligible to use the warehouse. You must complete your first class change! (Only beginners who have completed the first class change may use the warehouse.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NewbieCoupons/30598.htm b/trunk/dist/game/data/scripts/custom/NewbieCoupons/30598.htm
deleted file mode 100644
index 647689bcc8..0000000000
--- a/trunk/dist/game/data/scripts/custom/NewbieCoupons/30598.htm
+++ /dev/null
@@ -1,9 +0,0 @@
-Newbie Guide:
-As token of congratulations, the Adventure Guild is pleased to open its warehouse to both apprentice adventurers who have reached level 6 as well as travelers who have completed their first occupation change. At level 6, you can borrow a No-Grade Shadow Weapon with the Apprentice Adventurer's Weapon Exchange Coupon. At level 20, you can borrow Shadow Armor with the Adventurer's Magic Armor Exchange Coupon. No-Grade Shadow Weapons can be exchanged up to level 19 and Shadow Armor can be exchanged up to level 39.
-Now then: how can I help you?
-(Note: chaotic characters may not use weapons or armor borrowed from the Adventure Guild.)
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NewbieCoupons/NewbieCoupons.java b/trunk/dist/game/data/scripts/custom/NewbieCoupons/NewbieCoupons.java
deleted file mode 100644
index abfad9b3d0..0000000000
--- a/trunk/dist/game/data/scripts/custom/NewbieCoupons/NewbieCoupons.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package custom.NewbieCoupons;
-
-import com.l2jserver.gameserver.data.xml.impl.MultisellData;
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-
-/**
- * Newbie Weapon/Accesories Coupons for the Hellbound opening event.
- * Original Jython script by Vice.
- * @author Nyaran
- */
-public final class NewbieCoupons extends Quest
-{
- private static final int COUPON_ONE = 7832;
- private static final int COUPON_TWO = 7833;
-
- private static final int[] NPCs =
- {
- 30598,
- 30599,
- 30600,
- 30601,
- 30602,
- 31076,
- 31077,
- 32135
- };
-
- private static final int WEAPON_MULTISELL = 305986001;
- private static final int ACCESORIES_MULTISELL = 305986002;
-
- // enable/disable coupon give
- private static final boolean NEWBIE_COUPONS_ENABLED = true;
-
- /*
- * Newbie/one time rewards section Any quest should rely on a unique bit, but it could be shared among quests that were mutually exclusive or race restricted. Bit //1 isn't used for backwards compatibility. This script uses 2 bits, one for newbie coupons and another for travelers These 2 bits
- * happen to be the same used by the Miss Queen script
- */
- private static final int NEWBIE_WEAPON = 16;
- private static final int NEWBIE_ACCESORY = 32;
-
- private NewbieCoupons()
- {
- super(-1, NewbieCoupons.class.getSimpleName(), "custom");
-
- for (int i : NPCs)
- {
- addStartNpc(i);
- addTalkId(i);
- }
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- String htmltext = event;
- if (!NEWBIE_COUPONS_ENABLED)
- {
- return htmltext;
- }
-
- int newbie = player.getNewbie();
- int level = player.getLevel();
- int occupation_level = player.getClassId().level();
- int pkkills = player.getPkKills();
- if (event.equals("newbie_give_weapon_coupon"))
- {
- /*
- * TODO: check if this is the very first character for this account would need a bit of SQL, or a core method to determine it. This condition should be stored by the core in the account_data table upon character creation.
- */
- if ((level >= 6) && (level <= 39) && (pkkills == 0) && (occupation_level == 0))
- {
- // check the player state against this quest newbie rewarding mark.
- if ((newbie | NEWBIE_WEAPON) != newbie)
- {
- player.setNewbie(newbie | NEWBIE_WEAPON);
- giveItems(player, COUPON_ONE, 5);
- htmltext = "30598-2.htm"; // here's the coupon you requested
- }
- else
- {
- htmltext = "30598-1.htm"; // you got a coupon already!
- }
- }
- else
- {
- htmltext = "30598-3.htm"; // you're not eligible to get a coupon (level caps, pkkills or already changed class)
- }
- }
- else if (event.equals("newbie_give_armor_coupon"))
- {
- if ((level >= 6) && (level <= 39) && (pkkills == 0) && (occupation_level == 1))
- {
- // check the player state against this quest newbie rewarding mark.
- if ((newbie | NEWBIE_ACCESORY) != newbie)
- {
- player.setNewbie(newbie | NEWBIE_ACCESORY);
- giveItems(player, COUPON_TWO, 1);
- htmltext = "30598-5.htm"; // here's the coupon you requested
- }
- else
- {
- htmltext = "30598-4.htm"; // you got a coupon already!
- }
- }
- else
- {
- htmltext = "30598-6.htm"; // you're not eligible to get a coupon (level caps, pkkills or didnt change class yet)
- }
- }
- else if (event.equals("newbie_show_weapon"))
- {
- if ((level >= 6) && (level <= 39) && (pkkills == 0) && (occupation_level == 0))
- {
- MultisellData.getInstance().separateAndSend(WEAPON_MULTISELL, player, npc, false);
- return null;
- }
- htmltext = "30598-7.htm"; // you're not eligible to use warehouse
- }
- else if (event.equals("newbie_show_armor"))
- {
- if ((level >= 6) && (level <= 39) && (pkkills == 0) && (occupation_level > 0))
- {
- MultisellData.getInstance().separateAndSend(ACCESORIES_MULTISELL, player, npc, false);
- return null;
- }
- htmltext = "30598-8.htm"; // you're not eligible to use warehouse
- }
-
- return htmltext;
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- getQuestState(player, true);
-
- return "30598.htm";
- }
-
- public static void main(String args[])
- {
- new NewbieCoupons();
- }
-}
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-1.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-1.htm
deleted file mode 100644
index b0572e4718..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-1.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-2.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-2.htm
deleted file mode 100644
index dd5a173b2c..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-2.htm
+++ /dev/null
@@ -1,12 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-3.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-3.htm
deleted file mode 100644
index d4f49777fb..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-3.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-4.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-4.htm
deleted file mode 100644
index 27590f2682..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-4.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-5.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-5.htm
deleted file mode 100644
index 0e03fe3271..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-5.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-6.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-6.htm
deleted file mode 100644
index 5c60f09b41..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-6.htm
+++ /dev/null
@@ -1,9 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-7.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-7.htm
deleted file mode 100644
index fc0785bb77..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-7.htm
+++ /dev/null
@@ -1,8 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-8.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-8.htm
deleted file mode 100644
index 2be56bec07..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-8.htm
+++ /dev/null
@@ -1,7 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-9.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-9.htm
deleted file mode 100644
index 4a05f3eba7..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-9.htm
+++ /dev/null
@@ -1,13 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598.htm
deleted file mode 100644
index 84e1fe95cd..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598.htm
+++ /dev/null
@@ -1,12 +0,0 @@
-Newbie Guide:
-Which of the following best describes the one you seek?
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-1.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-1.htm
deleted file mode 100644
index fe00e822bf..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-1.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-2.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-2.htm
deleted file mode 100644
index 97d38306be..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-2.htm
+++ /dev/null
@@ -1,12 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-3.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-3.htm
deleted file mode 100644
index 7a7b5d900c..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-3.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-4.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-4.htm
deleted file mode 100644
index 80d5252917..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-4.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-5.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-5.htm
deleted file mode 100644
index 6cb8ed1874..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-5.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-6.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-6.htm
deleted file mode 100644
index 6ab011f4d1..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-6.htm
+++ /dev/null
@@ -1,9 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-7.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-7.htm
deleted file mode 100644
index 27e2ade693..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-7.htm
+++ /dev/null
@@ -1,7 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-8.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-8.htm
deleted file mode 100644
index 095bf8f37b..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-8.htm
+++ /dev/null
@@ -1,12 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599.htm
deleted file mode 100644
index 041a2408ed..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599.htm
+++ /dev/null
@@ -1,11 +0,0 @@
-Newbie Guide:
-Which of the following best describes the one you seek?
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-1.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-1.htm
deleted file mode 100644
index 306d1cb700..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-1.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-2.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-2.htm
deleted file mode 100644
index 1c507725c1..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-2.htm
+++ /dev/null
@@ -1,16 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-3.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-3.htm
deleted file mode 100644
index 8af03d537d..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-3.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-4.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-4.htm
deleted file mode 100644
index 4dfa6b0fe9..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-4.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-5.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-5.htm
deleted file mode 100644
index 3b3ad0700f..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-5.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-6.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-6.htm
deleted file mode 100644
index a15cfc2653..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-6.htm
+++ /dev/null
@@ -1,12 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-7.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-7.htm
deleted file mode 100644
index a82431e5fe..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-7.htm
+++ /dev/null
@@ -1,7 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-8.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-8.htm
deleted file mode 100644
index 3b3a431e59..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-8.htm
+++ /dev/null
@@ -1,10 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600.htm
deleted file mode 100644
index 27e8c885c2..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600.htm
+++ /dev/null
@@ -1,11 +0,0 @@
-Newbie Guide:
-Which of the following best describes the one you seek?
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-1.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-1.htm
deleted file mode 100644
index 8fe04db432..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-1.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-2.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-2.htm
deleted file mode 100644
index 2f955b35e8..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-2.htm
+++ /dev/null
@@ -1,12 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-3.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-3.htm
deleted file mode 100644
index c0bba9e6c6..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-3.htm
+++ /dev/null
@@ -1,10 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-4.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-4.htm
deleted file mode 100644
index b1ff648caa..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-4.htm
+++ /dev/null
@@ -1,7 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-5.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-5.htm
deleted file mode 100644
index 0bc9ebe9f0..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-5.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-6.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-6.htm
deleted file mode 100644
index 95d33a3d19..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-6.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-7.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-7.htm
deleted file mode 100644
index 7dbd969d85..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-7.htm
+++ /dev/null
@@ -1,7 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-8.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-8.htm
deleted file mode 100644
index db7ac06ec5..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-8.htm
+++ /dev/null
@@ -1,15 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601.htm
deleted file mode 100644
index c8e48a2472..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601.htm
+++ /dev/null
@@ -1,11 +0,0 @@
-Newbie Guide:
-Which of the following best describes the one you seek?
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-1.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-1.htm
deleted file mode 100644
index 38f2a96347..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-1.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-2.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-2.htm
deleted file mode 100644
index 51ea85131c..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-2.htm
+++ /dev/null
@@ -1,12 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-3.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-3.htm
deleted file mode 100644
index c0d9cd40e5..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-3.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-4.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-4.htm
deleted file mode 100644
index abb83d0006..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-4.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-5.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-5.htm
deleted file mode 100644
index 554706b58b..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-5.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-6.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-6.htm
deleted file mode 100644
index 24df523753..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-6.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-7.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-7.htm
deleted file mode 100644
index 25be3b0502..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-7.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-8.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-8.htm
deleted file mode 100644
index 78a3a735cf..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-8.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-9.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-9.htm
deleted file mode 100644
index 07fafc986f..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-9.htm
+++ /dev/null
@@ -1,10 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the radar.
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602.htm
deleted file mode 100644
index 0292b76a1b..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602.htm
+++ /dev/null
@@ -1,12 +0,0 @@
-Newbie Guide:
-Which of the following best describes the one you seek?
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-1.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-1.htm
deleted file mode 100644
index 48ede3112a..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-1.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the screen.
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-10.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-10.htm
deleted file mode 100644
index 9537a73375..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-10.htm
+++ /dev/null
@@ -1,7 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the screen.
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-11.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-11.htm
deleted file mode 100644
index 84d31b1bf1..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-11.htm
+++ /dev/null
@@ -1,7 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the screen.
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-12.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-12.htm
deleted file mode 100644
index 02eb5d77e0..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-12.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the screen.
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-2.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-2.htm
deleted file mode 100644
index 7c10735a50..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-2.htm
+++ /dev/null
@@ -1,12 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the screen.
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-3.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-3.htm
deleted file mode 100644
index 156e06a18b..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-3.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the screen.
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-4.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-4.htm
deleted file mode 100644
index 58bb3679de..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-4.htm
+++ /dev/null
@@ -1,7 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the screen.
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-5.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-5.htm
deleted file mode 100644
index 96a9793135..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-5.htm
+++ /dev/null
@@ -1,13 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the screen.
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-6.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-6.htm
deleted file mode 100644
index 45d6c75af5..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-6.htm
+++ /dev/null
@@ -1,7 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the screen.
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-7.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-7.htm
deleted file mode 100644
index c4c9b58f33..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-7.htm
+++ /dev/null
@@ -1,8 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the screen.
-
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-8.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-8.htm
deleted file mode 100644
index 43b257297e..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-8.htm
+++ /dev/null
@@ -1,7 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the screen.
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-9.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-9.htm
deleted file mode 100644
index 24180c4251..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-9.htm
+++ /dev/null
@@ -1,7 +0,0 @@
-Newbie Guide:
-Select the one you seek below. Their location will be indicated on the screen.
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135.htm
deleted file mode 100644
index 30a3c035e1..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135.htm
+++ /dev/null
@@ -1,15 +0,0 @@
-Newbie Guide:
-Where can we find the person you are seeking?
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/MoveToLoc.htm b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/MoveToLoc.htm
deleted file mode 100644
index c7f6096c87..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/MoveToLoc.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Newbie Guide:
-If you want to meet the person you seek, move in the direction of the arrow.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/NpcLocationInfo.java b/trunk/dist/game/data/scripts/custom/NpcLocationInfo/NpcLocationInfo.java
deleted file mode 100644
index dffc715b94..0000000000
--- a/trunk/dist/game/data/scripts/custom/NpcLocationInfo/NpcLocationInfo.java
+++ /dev/null
@@ -1,317 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package custom.NpcLocationInfo;
-
-import com.l2jserver.gameserver.datatables.SpawnTable;
-import com.l2jserver.gameserver.model.L2Spawn;
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.util.Util;
-
-/**
- * Npc Location Info AI.
- * @author Nyaran
- */
-public final class NpcLocationInfo extends Quest
-{
- private static final int[] NPC =
- {
- 30598,
- 30599,
- 30600,
- 30601,
- 30602,
- 32135
- };
-
- private static final int[] NPCRADAR =
- {
- // Talking Island
- 30006, // Gatekeeper Roxxy
- 30039, // Captain Gilbert
- 30040, // Guard Leon
- 30041, // Guard Arnold
- 30042, // Guard Abellos
- 30043, // Guard Johnstone
- 30044, // Guard Chiperan
- 30045, // Guard Kenyos
- 30046, // Guard Hanks
- 30283, // Blacksmith Altran
- 30003, // Trader Silvia
- 30004, // Trader Katerina
- 30001, // Trader Lector
- 30002, // Trader Jackson
- 30031, // High Priest Biotin
- 30033, // Magister Baulro
- 30035, // Magister Harrys
- 30032, // Priest Yohanes
- 30036, // Priest Petron
- 30026, // Grand Master Bitz
- 30027, // Master Gwinter
- 30029, // Master Minia
- 30028, // Master Pintage
- 30054, // Warehouse Keeper Rant
- 30055, // Warehouse Keeper Rolfe
- 30005, // Warehouse Keeper Wilford
- 30048, // Darin
- 30312, // Lighthouse Keeper Rockswell
- 30368, // Lilith
- 30049, // Bonnie
- 30047, // Wharf Manager Firon
- 30497, // Edmond
- 30050, // Elias
- 30311, // Sir Collin Windawood
- 30051, // Cristel
-
- // Dark Elf Vill
- 30134, // Gatekeeper Jasmine
- 30224, // Sentry Knight Rayla
- 30348, // Sentry Nelsya
- 30355, // Sentry Roselyn
- 30347, // Sentry Marion
- 30432, // Sentry Irene
- 30356, // Sentry Altima
- 30349, // Sentry Jenna
- 30346, // Sentry Kayleen
- 30433, // Sentry Kathaway
- 30357, // Sentry Kristin
- 30431, // Sentry Eriel
- 30430, // Sentry Trionell
- 30307, // Blacksmith Karrod
- 30138, // Trader Minaless
- 30137, // Trader Vollodos
- 30135, // Trader Iria
- 30136, // Trader Payne
- 30143, // Master Trudy
- 30360, // Master Harant
- 30145, // Master Vlasty
- 30135, // Magister Harne
- 30144, // Tetrarch Vellior
- 30358, // Tetrarch Thifiell
- 30359, // Tetrarch Kaitar
- 30141, // Tetrarch Talloth
- 30139, // Warehouse Keeper Dorankus
- 30140, // Warehouse Keeper Erviante
- 30350, // Warehouse Freightman Carlon
- 30421, // Varika
- 30419, // Arkenia
- 30130, // Abyssal Celebrant Undrias
- 30351, // Astaron
- 30353, // Jughead
- 30354, // Jewel
-
- // Elven Village
- 30146, // Gatekeeper Mirabel
- 30285, // Sentinel Gartrandell
- 30284, // Sentinel Knight Alberius
- 30221, // Sentinel Rayen
- 30217, // Sentinel Berros
- 30219, // Sentinel Veltress
- 30220, // Sentinel Starden
- 30218, // Sentinel Kendell
- 30216, // Sentinel Wheeler
- 30363, // Blacksmith Aios
- 30149, // Trader Creamees
- 30150, // Trader Herbiel
- 30148, // Trader Ariel
- 30147, // Trader Unoren
- 30155, // Master Ellenia
- 30156, // Master Cobendell
- 30157, // Magister Greenis
- 30158, // Magister Esrandell
- 30154, // Hierarch Asterios
- 30153, // Warehouse Keeper Markius
- 30152, // Warehouse Keeper Julia
- 30151, // Warehouse Freightman Chad
- 30423, // Northwind
- 30414, // Rosella
- 31853, // Treant Bremec
- 30223, // Arujien
- 30362, // Andellia
- 30222, // Alshupes
- 30371, // Thalia
- 31852, // Pixy Murika
-
- // Dwarven Villa
- 30540, // Gatekeeper Wirphy
- 30541, // Protector Paion
- 30542, // Defender Runant
- 30543, // Defender Ethan
- 30544, // Defender Cromwell
- 30545, // Defender Proton
- 30546, // Defender Dinkey
- 30547, // Defender Tardyon
- 30548, // Defender Nathan
- 30531, // Iron Gate's Lockirin
- 30532, // Golden Wheel's Spiron
- 30533, // Silver Scale's Balanki
- 30534, // Bronze Key's Keef
- 30535, // Filaur of the Gray Pillar
- 30536, // Black Anvil's Arin
- 30525, // Head Blacksmith Bronk
- 30526, // Blacksmith Brunon
- 30527, // Blacksmith Silvera
- 30518, // Trader Garita
- 30519, // Trader Mion
- 30516, // Trader Reep
- 30517, // Trader Shari
- 30520, // Warehouse Chief Reed
- 30521, // Warehouse Freightman Murdoc
- 30522, // Warehouse Keeper Airy
- 30523, // Collector Gouph
- 30524, // Collector Pippi
- 30537, // Daichir, Priest of the Eart
- 30650, // Priest of the Earth Gerald
- 30538, // Priest of the Earth Zimenf
- 30539, // Priestess of the Earth Chichirin
- 30671, // Captain Croto
- 30651, // Wanderer Dorf
- 30550, // Gauri Twinklerock
- 30554, // Miner Bolter
- 30553, // Maryse Redbonnet
-
- // Orc Village
- 30576, // Gatekeeper Tamil
- 30577, // Praetorian Rukain
- 30578, // Centurion Nakusin
- 30579, // Centurion Tamai
- 30580, // Centurion Parugon
- 30581, // Centurion Orinak
- 30582, // Centurion Tiku
- 30583, // Centurion Petukai
- 30584, // Centurion Vapook
- 30569, // Prefect Brukurse
- 30570, // Prefect Karukia
- 30571, // Seer Tanapi
- 30572, // Seer Livina
- 30564, // Blacksmith Sumari
- 30560, // Trader Uska
- 30561, // Trader Papuma
- 30558, // Trader Jakal
- 30559, // Trader Kunai
- 30562, // Warehouse Keeper Grookin
- 30563, // Warehouse Keeper Imantu
- 30565, // Flame Lord Kakai
- 30566, // Atuba Chief Varkees
- 30567, // Neruga Chief Tantus
- 30568, // Urutu Chief Hatos
- 30585, // Tataru Zu Hestui
- 30587, // Gantaki Zu Urutu
-
- // Kamael Villag
- 32163, // Gatekeeper Ragara
- 32173, // Zerstorer Marcela
- 32174, // Marksman Maddy
- 32175, // Marksman Bixon
- 32176, // Marksman Ambra
- 32177, // Marksman Syzar
- 32178, // Guard Karba
- 32179, // Marksman Putin
- 32180, // Marksman Kato
- 32164, // Weapons Trader Erinu
- 32165, // Armor Trader Zacon
- 32168, // Magic Trader Janis
- 32166, // Accessory Trader Treavi
- 32167, // Consumption Goods Trader Neazel
- 32141, // Master Nerga
- 32142, // Master Tenor
- 32143, // Master Belkis
- 32144, // Master Sonya
- 32145, // Grand Master Maynard
- 32146, // Grand Master Valpor
- 32139, // Hierarch Casca
- 32140, // Hierarch Zenya
- 32138, // Hierarch Kekropus
- 32171, // Warehouse Chief Hoffa
- 32170, // Warehouse Keeper Benis
- 32172, // Warehouse Freightman Saylem
- 32153, // High Priest Prana
- 32154, // Grand Master Aldenia
- 32155, // Priest Nabot
- 32156, // Master Talbot
- 32150, // Hight Prefect Took
- 32151, // Prefect Harz
- 32152, // Seer Henri
- 32147, // Grand Master Libian
- 32148, // Master Sydnet
- 32149, // Magister Enea
- 32160, // Grand Magister Devon
- 32162, // Magister Martika
- 32161, // Master Black
- 32158, // Warehouse Chief Fisler
- 32157, // Head Blacksmith Moka
- 32159, // Blacksmith Kincaid
- 32169, // Spellbook Trader Mifren
- };
-
- private NpcLocationInfo()
- {
- super(-1, NpcLocationInfo.class.getSimpleName(), "custom");
- addStartNpc(NPC);
- addTalkId(NPC);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- String htmltext = event;
-
- if (Util.isDigit(event))
- {
- htmltext = null;
- int npcId = Integer.parseInt(event);
-
- if (Util.contains(NPCRADAR, npcId))
- {
- int x = 0, y = 0, z = 0;
- final L2Spawn spawn = SpawnTable.getInstance().getFirstSpawn(npcId);
- if (spawn != null)
- {
- x = spawn.getX();
- y = spawn.getY();
- z = spawn.getZ();
- }
- addRadar(player, x, y, z);
- htmltext = "MoveToLoc.htm";
- }
- }
- return htmltext;
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- String htmltext = getNoQuestMsg(player);
- int npcId = npc.getId();
- getQuestState(player, true);
-
- if (Util.contains(NPC, npcId))
- {
- htmltext = String.valueOf(npcId) + ".htm";
- }
-
- return htmltext;
- }
-
- public static void main(String args[])
- {
- new NpcLocationInfo();
- }
-}
diff --git a/trunk/dist/game/data/scripts/custom/RaidbossInfo/RaidbossInfo.java b/trunk/dist/game/data/scripts/custom/RaidbossInfo/RaidbossInfo.java
deleted file mode 100644
index 4da19a2b19..0000000000
--- a/trunk/dist/game/data/scripts/custom/RaidbossInfo/RaidbossInfo.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package custom.RaidbossInfo;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import com.l2jserver.gameserver.data.xml.impl.NpcData;
-import com.l2jserver.gameserver.datatables.SpawnTable;
-import com.l2jserver.gameserver.model.L2Spawn;
-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.actor.templates.L2NpcTemplate;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.util.Util;
-
-/**
- * Raidboss Info AI.
- * Original Jython script Kerberos.
- * @author Nyaran
- */
-public final class RaidbossInfo extends Quest
-{
- // @formatter:off
- private static final int[] NPC =
- {
- 31729, 31730, 31731, 31732, 31733, 31734, 31735, 31736, 31737, 31738,
- 31739, 31740, 31741, 31742, 31743, 31744, 31745, 31746, 31747, 31748,
- 31749, 31750, 31751, 31752, 31753, 31754, 31755, 31756, 31757, 31758,
- 31759, 31760, 31761, 31762, 31763, 31764, 31765, 31766, 31767, 31768,
- 31769, 31770, 31771, 31772, 31773, 31774, 31775, 31776, 31777, 31778,
- 31779, 31780, 31781, 31782, 31783, 31784, 31785, 31786, 31787, 31788,
- 31789, 31790, 31791, 31792, 31793, 31794, 31795, 31796, 31797, 31798,
- 31799, 31800, 31801, 31802, 31803, 31804, 31805, 31806, 31807, 31808,
- 31809, 31810, 31811, 31812, 31813, 31814, 31815, 31816, 31817, 31818,
- 31819, 31820, 31821, 31822, 31823, 31824, 31825, 31826, 31827, 31828,
- 31829, 31830, 31831, 31832, 31833, 31834, 31835, 31836, 31837, 31838,
- 31839, 31840, 31841, 32337, 32338, 32339, 32340
- };
- // @formatter:on
- private static final List RAIDS = new ArrayList<>();
-
- private RaidbossInfo()
- {
- super(-1, RaidbossInfo.class.getSimpleName(), "custom");
- addStartNpc(NPC);
- addTalkId(NPC);
-
- // Add all Raid Bosses to RAIDS list
- for (L2NpcTemplate raid : NpcData.getInstance().getAllNpcOfClassType("L2RaidBoss"))
- {
- RAIDS.add(raid.getId());
- }
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- String htmltext = event;
- if (Util.isDigit(event))
- {
- htmltext = null;
- int bossId = Integer.parseInt(event);
-
- if (RAIDS.contains(bossId))
- {
- final L2Spawn spawn = SpawnTable.getInstance().getFirstSpawn(bossId);
- if (spawn != null)
- {
- final Location loc = spawn.getLocation();
- player.getRadar().addMarker(loc.getX(), loc.getY(), loc.getZ());
- }
- }
- }
- return htmltext;
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- return "info.htm";
- }
-
- public static void main(String args[])
- {
- new RaidbossInfo();
- }
-}
diff --git a/trunk/dist/game/data/scripts/custom/RaidbossInfo/info.htm b/trunk/dist/game/data/scripts/custom/RaidbossInfo/info.htm
deleted file mode 100644
index d4f211e1a5..0000000000
--- a/trunk/dist/game/data/scripts/custom/RaidbossInfo/info.htm
+++ /dev/null
@@ -1,9 +0,0 @@
-Raid Monster Information:
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/RaidbossInfo/level20.htm b/trunk/dist/game/data/scripts/custom/RaidbossInfo/level20.htm
deleted file mode 100644
index 833b71ff57..0000000000
--- a/trunk/dist/game/data/scripts/custom/RaidbossInfo/level20.htm
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/custom/events/Race/Race.java b/trunk/dist/game/data/scripts/custom/events/Race/Race.java
index 5741066e76..943ca834b7 100644
--- a/trunk/dist/game/data/scripts/custom/events/Race/Race.java
+++ b/trunk/dist/game/data/scripts/custom/events/Race/Race.java
@@ -26,6 +26,7 @@ import java.util.concurrent.ScheduledFuture;
import com.l2jserver.Config;
import com.l2jserver.gameserver.ThreadPoolManager;
import com.l2jserver.gameserver.datatables.SkillData;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.quest.Event;
@@ -381,7 +382,7 @@ public final class Race extends Event
private void sendMessage(L2PcInstance player, String text)
{
- player.sendPacket(new CreatureSay(_npc.getObjectId(), 20, _npc.getName(), text));
+ player.sendPacket(new CreatureSay(_npc.getObjectId(), ChatType.MPCC_ROOM, _npc.getName(), text));
}
private void showMenu(L2PcInstance activeChar)
diff --git a/trunk/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java b/trunk/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java
index 2b41e3991f..af18e41412 100644
--- a/trunk/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java
+++ b/trunk/dist/game/data/scripts/events/FreyaCelebration/FreyaCelebration.java
@@ -18,6 +18,7 @@
*/
package events.FreyaCelebration;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
@@ -26,7 +27,6 @@ import com.l2jserver.gameserver.model.itemcontainer.Inventory;
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.CreatureSay;
import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
import com.l2jserver.gameserver.util.Util;
@@ -126,7 +126,7 @@ public final class FreyaCelebration extends LongTimeEvent
{
if (getRandom(100) < 5)
{
- CreatureSay cs = new CreatureSay(npc.getObjectId(), Say2.NPC_ALL, npc.getName(), NpcStringId.DEAR_S1_THINK_OF_THIS_AS_MY_APPRECIATION_FOR_THE_GIFT_TAKE_THIS_WITH_YOU_THERE_S_NOTHING_STRANGE_ABOUT_IT_IT_S_JUST_A_BIT_OF_MY_CAPRICIOUSNESS);
+ CreatureSay cs = new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), NpcStringId.DEAR_S1_THINK_OF_THIS_AS_MY_APPRECIATION_FOR_THE_GIFT_TAKE_THIS_WITH_YOU_THERE_S_NOTHING_STRANGE_ABOUT_IT_IT_S_JUST_A_BIT_OF_MY_CAPRICIOUSNESS);
cs.addStringParameter(caster.getName());
npc.broadcastPacket(cs);
@@ -137,7 +137,7 @@ public final class FreyaCelebration extends LongTimeEvent
{
if (getRandom(10) < 2)
{
- npc.broadcastPacket(new CreatureSay(npc.getObjectId(), Say2.NPC_ALL, npc.getName(), FREYA_TEXT[getRandom(FREYA_TEXT.length - 1)]));
+ npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), FREYA_TEXT[getRandom(FREYA_TEXT.length - 1)]));
}
}
}
diff --git a/trunk/dist/game/data/scripts/gracia/AI/EnergySeeds.java b/trunk/dist/game/data/scripts/gracia/AI/EnergySeeds.java
index 2d476faa0b..dc8c9e6841 100644
--- a/trunk/dist/game/data/scripts/gracia/AI/EnergySeeds.java
+++ b/trunk/dist/game/data/scripts/gracia/AI/EnergySeeds.java
@@ -21,15 +21,12 @@ package gracia.AI;
import java.util.Map;
import javolution.util.FastMap;
-import quests.Q00692_HowtoOpposeEvil.Q00692_HowtoOpposeEvil;
import ai.npc.AbstractNpcAI;
-import com.l2jserver.Config;
import com.l2jserver.gameserver.ThreadPoolManager;
import com.l2jserver.gameserver.ai.CtrlIntention;
import com.l2jserver.gameserver.data.xml.impl.DoorData;
import com.l2jserver.gameserver.data.xml.impl.NpcData;
-import com.l2jserver.gameserver.enums.QuestSound;
import com.l2jserver.gameserver.idfactory.IdFactory;
import com.l2jserver.gameserver.instancemanager.GraciaSeedsManager;
import com.l2jserver.gameserver.instancemanager.ZoneManager;
@@ -41,7 +38,6 @@ import com.l2jserver.gameserver.model.actor.instance.L2DoorInstance;
import com.l2jserver.gameserver.model.actor.instance.L2MonsterInstance;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
-import com.l2jserver.gameserver.model.quest.QuestState;
import com.l2jserver.gameserver.model.skills.Skill;
import com.l2jserver.gameserver.model.zone.L2ZoneType;
import com.l2jserver.gameserver.network.SystemMessageId;
@@ -54,7 +50,6 @@ import com.l2jserver.gameserver.util.Util;
*/
public class EnergySeeds extends AbstractNpcAI
{
- private static final int HOWTOOPPOSEEVIL_CHANCE = 60;
private static final int RATE = 1;
private static final int RESPAWN = 480000;
private static final int RANDOM_RESPAWN_OFFSET = 180000;
@@ -316,26 +311,9 @@ public class EnergySeeds extends AbstractNpcAI
{
return;
}
- QuestState st = player.getQuestState(Q00692_HowtoOpposeEvil.class.getSimpleName());
switch (seedType)
{
- case INFINITY:
- if ((st != null) && st.isCond(3))
- {
- handleQuestDrop(player, 13798);
- }
- break;
- case DESTRUCTION:
- if ((st != null) && st.isCond(3))
- {
- handleQuestDrop(player, 13867);
- }
- break;
case ANNIHILATION_BISTAKON:
- if ((st != null) && st.isCond(3))
- {
- handleQuestDrop(player, 15535);
- }
if (getRandom(100) < 50)
{
L2MonsterInstance mob = spawnSupriseMob(seedEnergy, ANNIHILATION_SUPRISE_MOB_IDS[0][getRandom(ANNIHILATION_SUPRISE_MOB_IDS[0].length)]);
@@ -345,10 +323,6 @@ public class EnergySeeds extends AbstractNpcAI
}
break;
case ANNIHILATION_REPTILIKON:
- if ((st != null) && st.isCond(3))
- {
- handleQuestDrop(player, 15535);
- }
if (getRandom(100) < 50)
{
L2MonsterInstance mob = spawnSupriseMob(seedEnergy, ANNIHILATION_SUPRISE_MOB_IDS[1][getRandom(ANNIHILATION_SUPRISE_MOB_IDS[1].length)]);
@@ -358,10 +332,6 @@ public class EnergySeeds extends AbstractNpcAI
}
break;
case ANNIHILATION_COKRAKON:
- if ((st != null) && st.isCond(3))
- {
- handleQuestDrop(player, 15535);
- }
if (getRandom(100) < 50)
{
L2MonsterInstance mob = spawnSupriseMob(seedEnergy, ANNIHILATION_SUPRISE_MOB_IDS[2][getRandom(ANNIHILATION_SUPRISE_MOB_IDS[2].length)]);
@@ -386,22 +356,6 @@ public class EnergySeeds extends AbstractNpcAI
return monster;
}
- private void handleQuestDrop(L2PcInstance player, int itemId)
- {
- double chance = HOWTOOPPOSEEVIL_CHANCE * Config.RATE_QUEST_DROP;
- int numItems = (int) (chance / 100);
- chance = chance % 100;
- if (getRandom(100) < chance)
- {
- numItems++;
- }
- if (numItems > 0)
- {
- giveItems(player, itemId, numItems);
- playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
- }
- }
-
private void addSpawnsToList()
{
// Seed of Destruction
diff --git a/trunk/dist/game/data/scripts/gracia/AI/Lindvior.java b/trunk/dist/game/data/scripts/gracia/AI/Lindvior.java
index 599ad2bd15..8f1aa0f59c 100644
--- a/trunk/dist/game/data/scripts/gracia/AI/Lindvior.java
+++ b/trunk/dist/game/data/scripts/gracia/AI/Lindvior.java
@@ -24,10 +24,10 @@ import java.util.GregorianCalendar;
import ai.npc.AbstractNpcAI;
import com.l2jserver.gameserver.datatables.SpawnTable;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
/**
* Lindvior Scene AI.
@@ -65,13 +65,13 @@ public class Lindvior extends AbstractNpcAI
switch (event)
{
case "tomaris_shout1":
- broadcastNpcSay(npc, Say2.NPC_SHOUT, NpcStringId.HUH_THE_SKY_LOOKS_FUNNY_WHAT_S_THAT);
+ broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.HUH_THE_SKY_LOOKS_FUNNY_WHAT_S_THAT);
break;
case "artius_shout":
- broadcastNpcSay(npc, Say2.NPC_SHOUT, NpcStringId.A_POWERFUL_SUBORDINATE_IS_BEING_HELD_BY_THE_BARRIER_ORB_THIS_REACTION_MEANS);
+ broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.A_POWERFUL_SUBORDINATE_IS_BEING_HELD_BY_THE_BARRIER_ORB_THIS_REACTION_MEANS);
break;
case "tomaris_shout2":
- broadcastNpcSay(npc, Say2.NPC_SHOUT, NpcStringId.BE_CAREFUL_SOMETHING_S_COMING);
+ broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.BE_CAREFUL_SOMETHING_S_COMING);
break;
case "lindvior_scene":
if (npc != null)
diff --git a/trunk/dist/game/data/scripts/gracia/AI/NPC/GeneralDilios/GeneralDilios.java b/trunk/dist/game/data/scripts/gracia/AI/NPC/GeneralDilios/GeneralDilios.java
index 7725619852..8cd94607df 100644
--- a/trunk/dist/game/data/scripts/gracia/AI/NPC/GeneralDilios/GeneralDilios.java
+++ b/trunk/dist/game/data/scripts/gracia/AI/NPC/GeneralDilios/GeneralDilios.java
@@ -24,11 +24,11 @@ import java.util.concurrent.ConcurrentHashMap;
import ai.npc.AbstractNpcAI;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.L2Spawn;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.NpcSay;
/**
@@ -70,13 +70,13 @@ public final class GeneralDilios extends AbstractNpcAI
int value = Integer.parseInt(event.substring(8));
if (value < 6)
{
- _general.broadcastPacket(new NpcSay(_general.getObjectId(), Say2.NPC_ALL, GENERAL_ID, NpcStringId.STABBING_THREE_TIMES));
+ _general.broadcastPacket(new NpcSay(_general.getObjectId(), ChatType.NPC_GENERAL, GENERAL_ID, NpcStringId.STABBING_THREE_TIMES));
startQuestTimer("guard_animation_0", 3400, null, null);
}
else
{
value = -1;
- _general.broadcastPacket(new NpcSay(_general.getObjectId(), Say2.NPC_SHOUT, GENERAL_ID, DILIOS_TEXT[getRandom(DILIOS_TEXT.length)]));
+ _general.broadcastPacket(new NpcSay(_general.getObjectId(), ChatType.NPC_SHOUT, GENERAL_ID, DILIOS_TEXT[getRandom(DILIOS_TEXT.length)]));
}
startQuestTimer("command_" + (value + 1), 60000, null, null);
}
diff --git a/trunk/dist/game/data/scripts/gracia/AI/NPC/Seyo/Seyo.java b/trunk/dist/game/data/scripts/gracia/AI/NPC/Seyo/Seyo.java
index f38a732712..6b0df19e9b 100644
--- a/trunk/dist/game/data/scripts/gracia/AI/NPC/Seyo/Seyo.java
+++ b/trunk/dist/game/data/scripts/gracia/AI/NPC/Seyo/Seyo.java
@@ -20,10 +20,10 @@ package gracia.AI.NPC.Seyo;
import ai.npc.AbstractNpcAI;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
/**
* Seyo AI.
@@ -68,7 +68,7 @@ public final class Seyo extends AbstractNpcAI
if (npc.isScriptValue(1))
{
npc.setScriptValue(0);
- broadcastNpcSay(npc, Say2.NPC_ALL, TEXT[getRandom(TEXT.length)]);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, TEXT[getRandom(TEXT.length)]);
}
break;
}
@@ -89,11 +89,11 @@ public final class Seyo extends AbstractNpcAI
if (getRandom(100) == 0)
{
giveItems(player, STONE_FRAGMENT, 100);
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.AMAZING_S1_TOOK_100_OF_THESE_SOUL_STONE_FRAGMENTS_WHAT_A_COMPLETE_SWINDLER, player.getName());
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.AMAZING_S1_TOOK_100_OF_THESE_SOUL_STONE_FRAGMENTS_WHAT_A_COMPLETE_SWINDLER, player.getName());
}
else
{
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.HMM_HEY_DID_YOU_GIVE_S1_SOMETHING_BUT_IT_WAS_JUST_1_HAHA, player.getName());
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.HMM_HEY_DID_YOU_GIVE_S1_SOMETHING_BUT_IT_WAS_JUST_1_HAHA, player.getName());
}
startQuestTimer("TRICKERY_TIMER", 5000, npc, null);
}
@@ -116,18 +116,18 @@ public final class Seyo extends AbstractNpcAI
final int chance = getRandom(100);
if (chance < 20)
{
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.AHEM_S1_HAS_NO_LUCK_AT_ALL_TRY_PRAYING, player.getName());
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.AHEM_S1_HAS_NO_LUCK_AT_ALL_TRY_PRAYING, player.getName());
}
else if (chance < 80)
{
giveItems(player, STONE_FRAGMENT, 1);
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.IT_S_BETTER_THAN_LOSING_IT_ALL_RIGHT_OR_DOES_THIS_FEEL_WORSE);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.IT_S_BETTER_THAN_LOSING_IT_ALL_RIGHT_OR_DOES_THIS_FEEL_WORSE);
}
else
{
final int itemCount = getRandom(10, 16);
giveItems(player, STONE_FRAGMENT, itemCount);
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.S1_PULLED_ONE_WITH_S2_DIGITS_LUCKY_NOT_BAD, player.getName(), String.valueOf(itemCount));
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.S1_PULLED_ONE_WITH_S2_DIGITS_LUCKY_NOT_BAD, player.getName(), String.valueOf(itemCount));
}
startQuestTimer("TRICKERY_TIMER", 5000, npc, null);
}
@@ -151,17 +151,17 @@ public final class Seyo extends AbstractNpcAI
if (chance == 0)
{
giveItems(player, STONE_FRAGMENT, 10000);
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.AH_IT_S_OVER_WHAT_KIND_OF_GUY_IS_THAT_DAMN_FINE_YOU_S1_TAKE_IT_AND_GET_OUTTA_HERE, player.getName());
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.AH_IT_S_OVER_WHAT_KIND_OF_GUY_IS_THAT_DAMN_FINE_YOU_S1_TAKE_IT_AND_GET_OUTTA_HERE, player.getName());
}
else if (chance < 10)
{
giveItems(player, STONE_FRAGMENT, 1);
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.YOU_DON_T_FEEL_BAD_RIGHT_ARE_YOU_SAD_BUT_DON_T_CRY);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.YOU_DON_T_FEEL_BAD_RIGHT_ARE_YOU_SAD_BUT_DON_T_CRY);
}
else
{
giveItems(player, STONE_FRAGMENT, getRandom(1, 100));
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.A_BIG_PIECE_IS_MADE_UP_OF_LITTLE_PIECES_SO_HERE_S_A_LITTLE_PIECE);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.A_BIG_PIECE_IS_MADE_UP_OF_LITTLE_PIECES_SO_HERE_S_A_LITTLE_PIECE);
}
startQuestTimer("TRICKERY_TIMER", 5000, npc, null);
}
diff --git a/trunk/dist/game/data/scripts/gracia/vehicles/AirShipController.java b/trunk/dist/game/data/scripts/gracia/vehicles/AirShipController.java
index dfb5878dd0..eb048948c1 100644
--- a/trunk/dist/game/data/scripts/gracia/vehicles/AirShipController.java
+++ b/trunk/dist/game/data/scripts/gracia/vehicles/AirShipController.java
@@ -23,6 +23,7 @@ import java.util.logging.Level;
import java.util.logging.Logger;
import com.l2jserver.gameserver.ThreadPoolManager;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.instancemanager.AirShipManager;
import com.l2jserver.gameserver.instancemanager.ZoneManager;
import com.l2jserver.gameserver.model.ClanPrivilege;
@@ -38,7 +39,6 @@ import com.l2jserver.gameserver.model.zone.L2ZoneType;
import com.l2jserver.gameserver.model.zone.type.L2ScriptZone;
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.network.serverpackets.SystemMessage;
@@ -168,7 +168,7 @@ public abstract class AirShipController extends Quest
if (_arrivalMessage == null)
{
- _arrivalMessage = new NpcSay(npc.getObjectId(), Say2.NPC_SHOUT, npc.getId(), NpcStringId.THE_AIRSHIP_HAS_BEEN_SUMMONED_IT_WILL_AUTOMATICALLY_DEPART_IN_5_MINUTES);
+ _arrivalMessage = new NpcSay(npc.getObjectId(), ChatType.NPC_SHOUT, npc.getId(), NpcStringId.THE_AIRSHIP_HAS_BEEN_SUMMONED_IT_WILL_AUTOMATICALLY_DEPART_IN_5_MINUTES);
}
npc.broadcastPacket(_arrivalMessage);
diff --git a/trunk/dist/game/data/scripts/gracia/vehicles/AirShipGludioGracia/AirShipGludioGracia.java b/trunk/dist/game/data/scripts/gracia/vehicles/AirShipGludioGracia/AirShipGludioGracia.java
index 6d456be940..a8a827e737 100644
--- a/trunk/dist/game/data/scripts/gracia/vehicles/AirShipGludioGracia/AirShipGludioGracia.java
+++ b/trunk/dist/game/data/scripts/gracia/vehicles/AirShipGludioGracia/AirShipGludioGracia.java
@@ -19,6 +19,7 @@
package gracia.vehicles.AirShipGludioGracia;
import com.l2jserver.gameserver.ThreadPoolManager;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.instancemanager.AirShipManager;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.L2World;
@@ -30,7 +31,6 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.quest.Quest;
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;
/**
@@ -131,7 +131,7 @@ public final class AirShipGludioGracia extends Quest implements Runnable
}
if (_atcGludio != null)
{
- _atcGludio.broadcastPacket(new NpcSay(_atcGludio.getObjectId(), Say2.NPC_SHOUT, _atcGludio.getId(), npcString));
+ _atcGludio.broadcastPacket(new NpcSay(_atcGludio.getObjectId(), ChatType.NPC_SHOUT, _atcGludio.getId(), npcString));
}
}
@@ -144,7 +144,7 @@ public final class AirShipGludioGracia extends Quest implements Runnable
}
if (_atcGracia != null)
{
- _atcGracia.broadcastPacket(new NpcSay(_atcGracia.getObjectId(), Say2.NPC_SHOUT, _atcGracia.getId(), npcStringId));
+ _atcGracia.broadcastPacket(new NpcSay(_atcGracia.getObjectId(), ChatType.NPC_SHOUT, _atcGracia.getId(), npcStringId));
}
}
diff --git a/trunk/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java b/trunk/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java
index df7528e894..bd5a38ff23 100644
--- a/trunk/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java
+++ b/trunk/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java
@@ -25,6 +25,7 @@ import javolution.text.TextBuilder;
import com.l2jserver.Config;
import com.l2jserver.gameserver.data.xml.impl.AdminData;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.L2World;
@@ -32,7 +33,6 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.entity.Hero;
import com.l2jserver.gameserver.model.olympiad.Olympiad;
import com.l2jserver.gameserver.network.SystemMessageId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
import com.l2jserver.gameserver.network.serverpackets.ExWorldChatCnt;
import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
@@ -311,7 +311,7 @@ public class AdminAdmin implements IAdminCommandHandler
sb.append(" ");
}
- final CreatureSay cs = new CreatureSay(activeChar, Say2.GLOBAL, sb.toString());
+ final CreatureSay cs = new CreatureSay(activeChar, ChatType.GLOBAL, sb.toString());
L2World.getInstance().getPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo);
break;
}
diff --git a/trunk/dist/game/data/scripts/handlers/admincommandhandlers/AdminEffects.java b/trunk/dist/game/data/scripts/handlers/admincommandhandlers/AdminEffects.java
index ab4f684f66..ab5226bc4d 100644
--- a/trunk/dist/game/data/scripts/handlers/admincommandhandlers/AdminEffects.java
+++ b/trunk/dist/game/data/scripts/handlers/admincommandhandlers/AdminEffects.java
@@ -681,19 +681,19 @@ public class AdminEffects implements IAdminCommandHandler
{
try
{
- if (target instanceof L2Character)
+ if (target.isCharacter())
{
if (target instanceof L2ChestInstance)
{
activeChar.sendPacket(SystemMessageId.NOTHING_HAPPENED);
return false;
}
- if ((target instanceof L2Npc) && ((action < 1) || (action > 3)))
+ if ((target.isNpc()) && ((action < 1) || (action > 20)))
{
activeChar.sendPacket(SystemMessageId.NOTHING_HAPPENED);
return false;
}
- if ((target instanceof L2PcInstance) && ((action < 2) || ((action > 18) && (action != SocialAction.LEVEL_UP))))
+ if ((target.isPlayer()) && ((action < 2) || ((action > 18) && (action != SocialAction.LEVEL_UP))))
{
activeChar.sendPacket(SystemMessageId.NOTHING_HAPPENED);
return false;
diff --git a/trunk/dist/game/data/scripts/handlers/admincommandhandlers/AdminGmChat.java b/trunk/dist/game/data/scripts/handlers/admincommandhandlers/AdminGmChat.java
index f47e64ed3b..dbea70165d 100644
--- a/trunk/dist/game/data/scripts/handlers/admincommandhandlers/AdminGmChat.java
+++ b/trunk/dist/game/data/scripts/handlers/admincommandhandlers/AdminGmChat.java
@@ -19,12 +19,12 @@
package handlers.admincommandhandlers;
import com.l2jserver.gameserver.data.xml.impl.AdminData;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.L2World;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.SystemMessageId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
/**
@@ -115,7 +115,7 @@ public class AdminGmChat implements IAdminCommandHandler
offset = 13;
}
text = command.substring(offset);
- CreatureSay cs = new CreatureSay(0, Say2.ALLIANCE, activeChar.getName(), text);
+ CreatureSay cs = new CreatureSay(0, ChatType.ALLIANCE, activeChar.getName(), text);
AdminData.getInstance().broadcastToGMs(cs);
}
catch (StringIndexOutOfBoundsException e)
diff --git a/trunk/dist/game/data/scripts/handlers/admincommandhandlers/AdminTargetSay.java b/trunk/dist/game/data/scripts/handlers/admincommandhandlers/AdminTargetSay.java
index b36ce7bbd9..899e935317 100644
--- a/trunk/dist/game/data/scripts/handlers/admincommandhandlers/AdminTargetSay.java
+++ b/trunk/dist/game/data/scripts/handlers/admincommandhandlers/AdminTargetSay.java
@@ -18,13 +18,13 @@
*/
package handlers.admincommandhandlers;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.actor.instance.L2StaticObjectInstance;
import com.l2jserver.gameserver.network.SystemMessageId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
/**
@@ -54,7 +54,7 @@ public class AdminTargetSay implements IAdminCommandHandler
final String message = command.substring(16);
final L2Character target = (L2Character) obj;
- target.broadcastPacket(new CreatureSay(target.getObjectId(), (target.isPlayer() ? Say2.ALL : Say2.NPC_ALL), target.getName(), message));
+ target.broadcastPacket(new CreatureSay(target.getObjectId(), target.isPlayer() ? ChatType.GENERAL : ChatType.NPC_GENERAL, target.getName(), message));
}
catch (StringIndexOutOfBoundsException e)
{
diff --git a/trunk/dist/game/data/scripts/handlers/chathandlers/ChatAll.java b/trunk/dist/game/data/scripts/handlers/chathandlers/ChatAll.java
index d58d3cdf9f..2aaab2b1c4 100644
--- a/trunk/dist/game/data/scripts/handlers/chathandlers/ChatAll.java
+++ b/trunk/dist/game/data/scripts/handlers/chathandlers/ChatAll.java
@@ -18,44 +18,42 @@
*/
package handlers.chathandlers;
-import java.util.Collection;
import java.util.StringTokenizer;
import java.util.logging.Logger;
import com.l2jserver.Config;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.handler.IChatHandler;
import com.l2jserver.gameserver.handler.IVoicedCommandHandler;
import com.l2jserver.gameserver.handler.VoicedCommandHandler;
import com.l2jserver.gameserver.model.BlockList;
+import com.l2jserver.gameserver.model.PcCondOverride;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
-import com.l2jserver.gameserver.util.Util;
+import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
/**
- * A chat handler
+ * General Chat Handler.
* @author durgus
*/
-public class ChatAll implements IChatHandler
+public final class ChatAll implements IChatHandler
{
private static Logger _log = Logger.getLogger(ChatAll.class.getName());
- private static final int[] COMMAND_IDS =
+ private static final ChatType[] CHAT_TYPES =
{
- 0
+ ChatType.GENERAL,
};
- /**
- * Handle chat type 'all'
- */
@Override
- public void handleChat(int type, L2PcInstance activeChar, String params, String text)
+ public void handleChat(ChatType type, L2PcInstance activeChar, String params, String text)
{
boolean vcd_used = false;
if (text.startsWith("."))
{
- StringTokenizer st = new StringTokenizer(text);
- IVoicedCommandHandler vch;
+ final StringTokenizer st = new StringTokenizer(text);
+ final IVoicedCommandHandler vch;
String command = "";
if (st.countTokens() > 1)
@@ -87,42 +85,34 @@ public class ChatAll implements IChatHandler
vcd_used = false;
}
}
+
if (!vcd_used)
{
- if (activeChar.isChatBanned() && Util.contains(Config.BAN_CHAT_CHANNELS, type))
+ if (activeChar.isChatBanned() && Config.BAN_CHAT_CHANNELS.contains(type))
{
activeChar.sendPacket(SystemMessageId.CHATTING_IS_CURRENTLY_PROHIBITED_IF_YOU_TRY_TO_CHAT_BEFORE_THE_PROHIBITION_IS_REMOVED_THE_PROHIBITION_TIME_WILL_INCREASE_EVEN_FURTHER);
return;
}
- /**
- * Match the character "." literally (Exactly 1 time) Match any character that is NOT a . character. Between one and unlimited times as possible, giving back as needed (greedy)
- */
- if (text.matches("\\.{1}[^\\.]+"))
+ if ((activeChar.getLevel() < Config.MINIMUM_CHAT_LEVEL) && !activeChar.canOverrideCond(PcCondOverride.CHAT_CONDITIONS))
{
- activeChar.sendPacket(SystemMessageId.INCORRECT_SYNTAX);
+ activeChar.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.PLAYERS_CAN_USE_GENERAL_CHAT_AFTER_LV_S1).addInt(Config.MINIMUM_CHAT_LEVEL));
+ return;
}
- else
+
+ final CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getAppearance().getVisibleName(), text);
+ final CreatureSay csRandom = new CreatureSay(activeChar.getObjectId(), type, activeChar.getAppearance().getVisibleName(), ChatRandomizer.randomize(text));
+ for (L2PcInstance player : activeChar.getKnownList().getKnownPlayers().values())
{
- CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getAppearance().getVisibleName(), text);
- CreatureSay csRandom = new CreatureSay(activeChar.getObjectId(), type, activeChar.getAppearance().getVisibleName(), ChatRandomizer.randomize(text));
- Collection plrs = activeChar.getKnownList().getKnownPlayers().values();
- for (L2PcInstance player : plrs)
+ if ((player != null) && activeChar.isInsideRadius(player, 1250, false, true) && !BlockList.isBlocked(player, activeChar))
{
- if ((player != null) && activeChar.isInsideRadius(player, 1250, false, true) && !BlockList.isBlocked(player, activeChar))
+ if (Config.FACTION_SYSTEM_ENABLED)
{
- if (Config.FACTION_SYSTEM_ENABLED)
+ if (Config.FACTION_SPECIFIC_CHAT)
{
- if (Config.FACTION_SPECIFIC_CHAT)
+ if ((activeChar.isGood() && player.isEvil()) || (activeChar.isEvil() && player.isGood()))
{
- if ((activeChar.isGood() && player.isEvil()) || (activeChar.isEvil() && player.isGood()))
- {
- player.sendPacket(csRandom);
- }
- else
- {
- player.sendPacket(cs);
- }
+ player.sendPacket(csRandom);
}
else
{
@@ -134,19 +124,20 @@ public class ChatAll implements IChatHandler
player.sendPacket(cs);
}
}
+ else
+ {
+ player.sendPacket(cs);
+ }
}
-
- activeChar.sendPacket(cs);
}
+
+ activeChar.sendPacket(cs);
}
}
- /**
- * Returns the chat types registered to this handler.
- */
@Override
- public int[] getChatTypeList()
+ public ChatType[] getChatTypeList()
{
- return COMMAND_IDS;
+ return CHAT_TYPES;
}
-}
+}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/handlers/chathandlers/ChatAlliance.java b/trunk/dist/game/data/scripts/handlers/chathandlers/ChatAlliance.java
index 3e49c8cb50..ff1b68ba0c 100644
--- a/trunk/dist/game/data/scripts/handlers/chathandlers/ChatAlliance.java
+++ b/trunk/dist/game/data/scripts/handlers/chathandlers/ChatAlliance.java
@@ -19,44 +19,42 @@
package handlers.chathandlers;
import com.l2jserver.Config;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.handler.IChatHandler;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
-import com.l2jserver.gameserver.util.Util;
-public class ChatAlliance implements IChatHandler
+/**
+ * Alliance Chat Handler.
+ */
+public final class ChatAlliance implements IChatHandler
{
- private static final int[] COMMAND_IDS =
+ private static final ChatType[] CHAT_TYPES =
{
- 9
+ ChatType.ALLIANCE,
};
- /**
- * Handle chat type 'alliance'
- */
@Override
- public void handleChat(int type, L2PcInstance activeChar, String target, String text)
+ public void handleChat(ChatType type, L2PcInstance activeChar, String target, String text)
{
- if (activeChar.getClan() != null)
+ if ((activeChar.getClan() == null) || ((activeChar.getClan() != null) && (activeChar.getClan().getAllyId() == 0)))
{
- if (activeChar.isChatBanned() && Util.contains(Config.BAN_CHAT_CHANNELS, type))
- {
- activeChar.sendPacket(SystemMessageId.CHATTING_IS_CURRENTLY_PROHIBITED_IF_YOU_TRY_TO_CHAT_BEFORE_THE_PROHIBITION_IS_REMOVED_THE_PROHIBITION_TIME_WILL_INCREASE_EVEN_FURTHER);
- return;
- }
-
- CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text);
- activeChar.getClan().broadcastToOnlineAllyMembers(cs);
+ activeChar.sendPacket(SystemMessageId.YOU_ARE_NOT_IN_AN_ALLIANCE);
+ return;
}
+
+ if (activeChar.isChatBanned() && Config.BAN_CHAT_CHANNELS.contains(type))
+ {
+ activeChar.sendPacket(SystemMessageId.CHATTING_IS_CURRENTLY_PROHIBITED_IF_YOU_TRY_TO_CHAT_BEFORE_THE_PROHIBITION_IS_REMOVED_THE_PROHIBITION_TIME_WILL_INCREASE_EVEN_FURTHER);
+ return;
+ }
+ activeChar.getClan().broadcastToOnlineAllyMembers(new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text));
}
- /**
- * Returns the chat types registered to this handler.
- */
@Override
- public int[] getChatTypeList()
+ public ChatType[] getChatTypeList()
{
- return COMMAND_IDS;
+ return CHAT_TYPES;
}
-}
+}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/handlers/chathandlers/ChatClan.java b/trunk/dist/game/data/scripts/handlers/chathandlers/ChatClan.java
index 5963a69530..8cb12e2083 100644
--- a/trunk/dist/game/data/scripts/handlers/chathandlers/ChatClan.java
+++ b/trunk/dist/game/data/scripts/handlers/chathandlers/ChatClan.java
@@ -19,48 +19,43 @@
package handlers.chathandlers;
import com.l2jserver.Config;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.handler.IChatHandler;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
-import com.l2jserver.gameserver.util.Util;
/**
- * A chat handler
+ * Clan chat handler
* @author durgus
*/
-public class ChatClan implements IChatHandler
+public final class ChatClan implements IChatHandler
{
- private static final int[] COMMAND_IDS =
+ private static final ChatType[] CHAT_TYPES =
{
- 4
+ ChatType.CLAN,
};
- /**
- * Handle chat type 'clan'
- */
@Override
- public void handleChat(int type, L2PcInstance activeChar, String target, String text)
+ public void handleChat(ChatType type, L2PcInstance activeChar, String target, String text)
{
- if (activeChar.getClan() != null)
+ if (activeChar.getClan() == null)
{
- if (activeChar.isChatBanned() && Util.contains(Config.BAN_CHAT_CHANNELS, type))
- {
- activeChar.sendPacket(SystemMessageId.CHATTING_IS_CURRENTLY_PROHIBITED_IF_YOU_TRY_TO_CHAT_BEFORE_THE_PROHIBITION_IS_REMOVED_THE_PROHIBITION_TIME_WILL_INCREASE_EVEN_FURTHER);
- return;
- }
-
- CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text);
- activeChar.getClan().broadcastCSToOnlineMembers(cs, activeChar);
+ activeChar.sendPacket(SystemMessageId.YOU_ARE_NOT_IN_A_CLAN);
+ return;
}
+
+ if (activeChar.isChatBanned() && Config.BAN_CHAT_CHANNELS.contains(type))
+ {
+ activeChar.sendPacket(SystemMessageId.CHATTING_IS_CURRENTLY_PROHIBITED_IF_YOU_TRY_TO_CHAT_BEFORE_THE_PROHIBITION_IS_REMOVED_THE_PROHIBITION_TIME_WILL_INCREASE_EVEN_FURTHER);
+ return;
+ }
+ activeChar.getClan().broadcastCSToOnlineMembers(new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text), activeChar);
}
- /**
- * Returns the chat types registered to this handler.
- */
@Override
- public int[] getChatTypeList()
+ public ChatType[] getChatTypeList()
{
- return COMMAND_IDS;
+ return CHAT_TYPES;
}
-}
+}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/handlers/chathandlers/ChatHeroVoice.java b/trunk/dist/game/data/scripts/handlers/chathandlers/ChatHeroVoice.java
index aa9193651b..7f6d608541 100644
--- a/trunk/dist/game/data/scripts/handlers/chathandlers/ChatHeroVoice.java
+++ b/trunk/dist/game/data/scripts/handlers/chathandlers/ChatHeroVoice.java
@@ -19,6 +19,7 @@
package handlers.chathandlers;
import com.l2jserver.Config;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.handler.IChatHandler;
import com.l2jserver.gameserver.model.BlockList;
import com.l2jserver.gameserver.model.L2World;
@@ -26,54 +27,49 @@ import com.l2jserver.gameserver.model.PcCondOverride;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
-import com.l2jserver.gameserver.util.Util;
/**
* Hero chat handler.
* @author durgus
*/
-public class ChatHeroVoice implements IChatHandler
+public final class ChatHeroVoice implements IChatHandler
{
- private static final int[] COMMAND_IDS =
+ private static final ChatType[] CHAT_TYPES =
{
- 17
+ ChatType.HERO_VOICE,
};
- /**
- * Handle chat type 'hero voice'
- */
@Override
- public void handleChat(int type, L2PcInstance activeChar, String target, String text)
+ public void handleChat(ChatType type, L2PcInstance activeChar, String target, String text)
{
- if (activeChar.isHero() || activeChar.canOverrideCond(PcCondOverride.CHAT_CONDITIONS))
+ if (!activeChar.isHero() && !activeChar.canOverrideCond(PcCondOverride.CHAT_CONDITIONS))
{
- if (activeChar.isChatBanned() && Util.contains(Config.BAN_CHAT_CHANNELS, type))
+ activeChar.sendPacket(SystemMessageId.ONLY_HEROES_CAN_ENTER_THE_HERO_CHANNEL);
+ return;
+ }
+
+ if (activeChar.isChatBanned() && Config.BAN_CHAT_CHANNELS.contains(type))
+ {
+ activeChar.sendPacket(SystemMessageId.CHATTING_IS_CURRENTLY_PROHIBITED_IF_YOU_TRY_TO_CHAT_BEFORE_THE_PROHIBITION_IS_REMOVED_THE_PROHIBITION_TIME_WILL_INCREASE_EVEN_FURTHER);
+ return;
+ }
+
+ if (!activeChar.getFloodProtectors().getHeroVoice().tryPerformAction("hero voice"))
+ {
+ activeChar.sendMessage("Action failed. Heroes are only able to speak in the global channel once every 10 seconds.");
+ return;
+ }
+
+ final CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text);
+ for (L2PcInstance player : L2World.getInstance().getPlayers())
+ {
+ if ((player != null) && !BlockList.isBlocked(player, activeChar))
{
- activeChar.sendPacket(SystemMessageId.CHATTING_IS_CURRENTLY_PROHIBITED_IF_YOU_TRY_TO_CHAT_BEFORE_THE_PROHIBITION_IS_REMOVED_THE_PROHIBITION_TIME_WILL_INCREASE_EVEN_FURTHER);
- return;
- }
-
- if (!activeChar.getFloodProtectors().getHeroVoice().tryPerformAction("hero voice"))
- {
- activeChar.sendMessage("Action failed. Heroes are only able to speak in the global channel once every 10 seconds.");
- return;
- }
-
- CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text);
- for (L2PcInstance player : L2World.getInstance().getPlayers())
- {
- if ((player != null) && !BlockList.isBlocked(player, activeChar))
+ if (Config.FACTION_SYSTEM_ENABLED)
{
- if (Config.FACTION_SYSTEM_ENABLED)
+ if (Config.FACTION_SPECIFIC_CHAT)
{
- if (Config.FACTION_SPECIFIC_CHAT)
- {
- if ((activeChar.isGood() && player.isGood()) || (activeChar.isEvil() && player.isEvil()))
- {
- player.sendPacket(cs);
- }
- }
- else
+ if ((activeChar.isGood() && player.isGood()) || (activeChar.isEvil() && player.isEvil()))
{
player.sendPacket(cs);
}
@@ -83,16 +79,17 @@ public class ChatHeroVoice implements IChatHandler
player.sendPacket(cs);
}
}
+ else
+ {
+ player.sendPacket(cs);
+ }
}
}
}
- /**
- * Returns the chat types registered to this handler.
- */
@Override
- public int[] getChatTypeList()
+ public ChatType[] getChatTypeList()
{
- return COMMAND_IDS;
+ return CHAT_TYPES;
}
-}
+}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/handlers/chathandlers/ChatParty.java b/trunk/dist/game/data/scripts/handlers/chathandlers/ChatParty.java
index fa409c0dbe..e3a93ecd38 100644
--- a/trunk/dist/game/data/scripts/handlers/chathandlers/ChatParty.java
+++ b/trunk/dist/game/data/scripts/handlers/chathandlers/ChatParty.java
@@ -19,48 +19,43 @@
package handlers.chathandlers;
import com.l2jserver.Config;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.handler.IChatHandler;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
-import com.l2jserver.gameserver.util.Util;
/**
- * A chat handler
+ * Party chat handler.
* @author durgus
*/
-public class ChatParty implements IChatHandler
+public final class ChatParty implements IChatHandler
{
- private static final int[] COMMAND_IDS =
+ private static final ChatType[] CHAT_TYPES =
{
- 3
+ ChatType.PARTY,
};
- /**
- * Handle chat type 'party'
- */
@Override
- public void handleChat(int type, L2PcInstance activeChar, String target, String text)
+ public void handleChat(ChatType type, L2PcInstance activeChar, String target, String text)
{
- if (activeChar.isInParty())
+ if (!activeChar.isInParty())
{
- if (activeChar.isChatBanned() && Util.contains(Config.BAN_CHAT_CHANNELS, type))
- {
- activeChar.sendPacket(SystemMessageId.CHATTING_IS_CURRENTLY_PROHIBITED_IF_YOU_TRY_TO_CHAT_BEFORE_THE_PROHIBITION_IS_REMOVED_THE_PROHIBITION_TIME_WILL_INCREASE_EVEN_FURTHER);
- return;
- }
-
- CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text);
- activeChar.getParty().broadcastCreatureSay(cs, activeChar);
+ activeChar.sendPacket(SystemMessageId.YOU_ARE_NOT_IN_A_PARTY);
+ return;
}
+
+ if (activeChar.isChatBanned() && Config.BAN_CHAT_CHANNELS.contains(type))
+ {
+ activeChar.sendPacket(SystemMessageId.CHATTING_IS_CURRENTLY_PROHIBITED_IF_YOU_TRY_TO_CHAT_BEFORE_THE_PROHIBITION_IS_REMOVED_THE_PROHIBITION_TIME_WILL_INCREASE_EVEN_FURTHER);
+ return;
+ }
+ activeChar.getParty().broadcastCreatureSay(new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text), activeChar);
}
- /**
- * Returns the chat types registered to this handler.
- */
@Override
- public int[] getChatTypeList()
+ public ChatType[] getChatTypeList()
{
- return COMMAND_IDS;
+ return CHAT_TYPES;
}
-}
+}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/handlers/chathandlers/ChatPartyMatchRoom.java b/trunk/dist/game/data/scripts/handlers/chathandlers/ChatPartyMatchRoom.java
index c6ff8f78f1..b99fd40e90 100644
--- a/trunk/dist/game/data/scripts/handlers/chathandlers/ChatPartyMatchRoom.java
+++ b/trunk/dist/game/data/scripts/handlers/chathandlers/ChatPartyMatchRoom.java
@@ -19,43 +19,40 @@
package handlers.chathandlers;
import com.l2jserver.Config;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.handler.IChatHandler;
import com.l2jserver.gameserver.model.PartyMatchRoom;
import com.l2jserver.gameserver.model.PartyMatchRoomList;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
-import com.l2jserver.gameserver.util.Util;
/**
- * A chat handler
+ * Party Match Room chat handler.
* @author Gnacik
*/
public class ChatPartyMatchRoom implements IChatHandler
{
- private static final int[] COMMAND_IDS =
+ private static final ChatType[] CHAT_TYPES =
{
- 14
+ ChatType.PARTYMATCH_ROOM,
};
- /**
- * Handle chat type 'partymatchroom'
- */
@Override
- public void handleChat(int type, L2PcInstance activeChar, String target, String text)
+ public void handleChat(ChatType type, L2PcInstance activeChar, String target, String text)
{
if (activeChar.isInPartyMatchRoom())
{
- PartyMatchRoom _room = PartyMatchRoomList.getInstance().getPlayerRoom(activeChar);
+ final PartyMatchRoom _room = PartyMatchRoomList.getInstance().getPlayerRoom(activeChar);
if (_room != null)
{
- if (activeChar.isChatBanned() && Util.contains(Config.BAN_CHAT_CHANNELS, type))
+ if (activeChar.isChatBanned() && Config.BAN_CHAT_CHANNELS.contains(type))
{
activeChar.sendPacket(SystemMessageId.CHATTING_IS_CURRENTLY_PROHIBITED_IF_YOU_TRY_TO_CHAT_BEFORE_THE_PROHIBITION_IS_REMOVED_THE_PROHIBITION_TIME_WILL_INCREASE_EVEN_FURTHER);
return;
}
- CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text);
+ final CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text);
for (L2PcInstance _member : _room.getPartyMembers())
{
if (Config.FACTION_SYSTEM_ENABLED)
@@ -81,17 +78,9 @@ public class ChatPartyMatchRoom implements IChatHandler
}
}
- /**
- * Returns the chat types registered to this handler
- */
@Override
- public int[] getChatTypeList()
+ public ChatType[] getChatTypeList()
{
- return COMMAND_IDS;
+ return CHAT_TYPES;
}
-
- public static void main(String[] args)
- {
- new ChatPartyMatchRoom();
- }
-}
+}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/handlers/chathandlers/ChatPartyRoomAll.java b/trunk/dist/game/data/scripts/handlers/chathandlers/ChatPartyRoomAll.java
index d9829aaa3e..31dde45af4 100644
--- a/trunk/dist/game/data/scripts/handlers/chathandlers/ChatPartyRoomAll.java
+++ b/trunk/dist/game/data/scripts/handlers/chathandlers/ChatPartyRoomAll.java
@@ -19,51 +19,43 @@
package handlers.chathandlers;
import com.l2jserver.Config;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.handler.IChatHandler;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
-import com.l2jserver.gameserver.util.Util;
/**
- * A chat handler
+ * Party Room All chat handler.
* @author durgus
*/
-public class ChatPartyRoomAll implements IChatHandler
+public final class ChatPartyRoomAll implements IChatHandler
{
- private static final int[] COMMAND_IDS =
+ private static final ChatType[] CHAT_TYPES =
{
- 16
+ ChatType.PARTYROOM_ALL,
};
- /**
- * Handle chat type 'party room all'
- */
@Override
- public void handleChat(int type, L2PcInstance activeChar, String target, String text)
+ public void handleChat(ChatType type, L2PcInstance activeChar, String target, String text)
{
if (activeChar.isInParty())
{
if (activeChar.getParty().isInCommandChannel() && activeChar.getParty().isLeader(activeChar))
{
- if (activeChar.isChatBanned() && Util.contains(Config.BAN_CHAT_CHANNELS, type))
+ if (activeChar.isChatBanned() && Config.BAN_CHAT_CHANNELS.contains(type))
{
activeChar.sendPacket(SystemMessageId.CHATTING_IS_CURRENTLY_PROHIBITED_IF_YOU_TRY_TO_CHAT_BEFORE_THE_PROHIBITION_IS_REMOVED_THE_PROHIBITION_TIME_WILL_INCREASE_EVEN_FURTHER);
return;
}
-
- CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text);
- activeChar.getParty().getCommandChannel().broadcastCreatureSay(cs, activeChar);
+ activeChar.getParty().getCommandChannel().broadcastCreatureSay(new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text), activeChar);
}
}
}
- /**
- * Returns the chat types registered to this handler.
- */
@Override
- public int[] getChatTypeList()
+ public ChatType[] getChatTypeList()
{
- return COMMAND_IDS;
+ return CHAT_TYPES;
}
-}
+}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/handlers/chathandlers/ChatPartyRoomCommander.java b/trunk/dist/game/data/scripts/handlers/chathandlers/ChatPartyRoomCommander.java
index 9baf5760c9..dc67aede51 100644
--- a/trunk/dist/game/data/scripts/handlers/chathandlers/ChatPartyRoomCommander.java
+++ b/trunk/dist/game/data/scripts/handlers/chathandlers/ChatPartyRoomCommander.java
@@ -19,51 +19,43 @@
package handlers.chathandlers;
import com.l2jserver.Config;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.handler.IChatHandler;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
-import com.l2jserver.gameserver.util.Util;
/**
- * A chat handler
+ * Party Room Commander chat handler.
* @author durgus
*/
-public class ChatPartyRoomCommander implements IChatHandler
+public final class ChatPartyRoomCommander implements IChatHandler
{
- private static final int[] COMMAND_IDS =
+ private static final ChatType[] CHAT_TYPES =
{
- 15
+ ChatType.PARTYROOM_COMMANDER,
};
- /**
- * Handle chat type 'party room commander'
- */
@Override
- public void handleChat(int type, L2PcInstance activeChar, String target, String text)
+ public void handleChat(ChatType type, L2PcInstance activeChar, String target, String text)
{
if (activeChar.isInParty())
{
if (activeChar.getParty().isInCommandChannel() && activeChar.getParty().getCommandChannel().getLeader().equals(activeChar))
{
- if (activeChar.isChatBanned() && Util.contains(Config.BAN_CHAT_CHANNELS, type))
+ if (activeChar.isChatBanned() && Config.BAN_CHAT_CHANNELS.contains(type))
{
activeChar.sendPacket(SystemMessageId.CHATTING_IS_CURRENTLY_PROHIBITED_IF_YOU_TRY_TO_CHAT_BEFORE_THE_PROHIBITION_IS_REMOVED_THE_PROHIBITION_TIME_WILL_INCREASE_EVEN_FURTHER);
return;
}
-
- CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text);
- activeChar.getParty().getCommandChannel().broadcastCreatureSay(cs, activeChar);
+ activeChar.getParty().getCommandChannel().broadcastCreatureSay(new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text), activeChar);
}
}
}
- /**
- * Returns the chat types registered to this handler.
- */
@Override
- public int[] getChatTypeList()
+ public ChatType[] getChatTypeList()
{
- return COMMAND_IDS;
+ return CHAT_TYPES;
}
-}
+}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/handlers/chathandlers/ChatPetition.java b/trunk/dist/game/data/scripts/handlers/chathandlers/ChatPetition.java
index d39d122a3e..e961d875f5 100644
--- a/trunk/dist/game/data/scripts/handlers/chathandlers/ChatPetition.java
+++ b/trunk/dist/game/data/scripts/handlers/chathandlers/ChatPetition.java
@@ -19,31 +19,28 @@
package handlers.chathandlers;
import com.l2jserver.Config;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.handler.IChatHandler;
import com.l2jserver.gameserver.instancemanager.PetitionManager;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.SystemMessageId;
-import com.l2jserver.gameserver.util.Util;
/**
- * A chat handler
+ * Petition chat handler.
* @author durgus
*/
-public class ChatPetition implements IChatHandler
+public final class ChatPetition implements IChatHandler
{
- private static final int[] COMMAND_IDS =
+ private static final ChatType[] CHAT_TYPES =
{
- 6,
- 7
+ ChatType.PETITION_PLAYER,
+ ChatType.PETITION_GM,
};
- /**
- * Handle chat type 'petition player'
- */
@Override
- public void handleChat(int type, L2PcInstance activeChar, String target, String text)
+ public void handleChat(ChatType type, L2PcInstance activeChar, String target, String text)
{
- if (activeChar.isChatBanned() && Util.contains(Config.BAN_CHAT_CHANNELS, type))
+ if (activeChar.isChatBanned() && Config.BAN_CHAT_CHANNELS.contains(type))
{
activeChar.sendPacket(SystemMessageId.CHATTING_IS_CURRENTLY_PROHIBITED_IF_YOU_TRY_TO_CHAT_BEFORE_THE_PROHIBITION_IS_REMOVED_THE_PROHIBITION_TIME_WILL_INCREASE_EVEN_FURTHER);
return;
@@ -54,16 +51,12 @@ public class ChatPetition implements IChatHandler
activeChar.sendPacket(SystemMessageId.YOU_ARE_CURRENTLY_NOT_IN_A_PETITION_CHAT);
return;
}
-
PetitionManager.getInstance().sendActivePetitionMessage(activeChar, text);
}
- /**
- * Returns the chat types registered to this handler.
- */
@Override
- public int[] getChatTypeList()
+ public ChatType[] getChatTypeList()
{
- return COMMAND_IDS;
+ return CHAT_TYPES;
}
-}
+}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/handlers/chathandlers/ChatShout.java b/trunk/dist/game/data/scripts/handlers/chathandlers/ChatShout.java
index 069df71ff2..74bbd698f8 100644
--- a/trunk/dist/game/data/scripts/handlers/chathandlers/ChatShout.java
+++ b/trunk/dist/game/data/scripts/handlers/chathandlers/ChatShout.java
@@ -19,6 +19,7 @@
package handlers.chathandlers;
import com.l2jserver.Config;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.handler.IChatHandler;
import com.l2jserver.gameserver.instancemanager.MapRegionManager;
import com.l2jserver.gameserver.model.BlockList;
@@ -27,35 +28,38 @@ import com.l2jserver.gameserver.model.PcCondOverride;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
-import com.l2jserver.gameserver.util.Util;
+import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
/**
* Shout chat handler.
* @author durgus
*/
-public class ChatShout implements IChatHandler
+public final class ChatShout implements IChatHandler
{
- private static final int[] COMMAND_IDS =
+ private static final ChatType[] CHAT_TYPES =
{
- 1
+ ChatType.SHOUT,
};
- /**
- * Handle chat type 'shout'
- */
@Override
- public void handleChat(int type, L2PcInstance activeChar, String target, String text)
+ public void handleChat(ChatType type, L2PcInstance activeChar, String target, String text)
{
- if (activeChar.isChatBanned() && Util.contains(Config.BAN_CHAT_CHANNELS, type))
+ if (activeChar.isChatBanned() && Config.BAN_CHAT_CHANNELS.contains(type))
{
activeChar.sendPacket(SystemMessageId.CHATTING_IS_CURRENTLY_PROHIBITED_IF_YOU_TRY_TO_CHAT_BEFORE_THE_PROHIBITION_IS_REMOVED_THE_PROHIBITION_TIME_WILL_INCREASE_EVEN_FURTHER);
return;
}
+ if ((activeChar.getLevel() < Config.MINIMUM_CHAT_LEVEL) && !activeChar.canOverrideCond(PcCondOverride.CHAT_CONDITIONS))
+ {
+ activeChar.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.PLAYERS_CAN_SHOUT_AFTER_LV_S1).addInt(Config.MINIMUM_CHAT_LEVEL));
+ return;
+ }
+
final CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text);
if (Config.DEFAULT_GLOBAL_CHAT.equalsIgnoreCase("on") || (Config.DEFAULT_GLOBAL_CHAT.equalsIgnoreCase("gm") && activeChar.canOverrideCond(PcCondOverride.CHAT_CONDITIONS)))
{
- int region = MapRegionManager.getInstance().getMapRegionLocId(activeChar);
+ final int region = MapRegionManager.getInstance().getMapRegionLocId(activeChar);
for (L2PcInstance player : L2World.getInstance().getPlayers())
{
if ((region == MapRegionManager.getInstance().getMapRegionLocId(player)) && !BlockList.isBlocked(player, activeChar) && (player.getInstanceId() == activeChar.getInstanceId()))
@@ -119,12 +123,9 @@ public class ChatShout implements IChatHandler
}
}
- /**
- * Returns the chat types registered to this handler.
- */
@Override
- public int[] getChatTypeList()
+ public ChatType[] getChatTypeList()
{
- return COMMAND_IDS;
+ return CHAT_TYPES;
}
-}
+}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/handlers/chathandlers/ChatTell.java b/trunk/dist/game/data/scripts/handlers/chathandlers/ChatTell.java
index 47bf2a7f5c..ad17a6bd19 100644
--- a/trunk/dist/game/data/scripts/handlers/chathandlers/ChatTell.java
+++ b/trunk/dist/game/data/scripts/handlers/chathandlers/ChatTell.java
@@ -19,6 +19,7 @@
package handlers.chathandlers;
import com.l2jserver.Config;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.handler.IChatHandler;
import com.l2jserver.gameserver.model.BlockList;
import com.l2jserver.gameserver.model.L2World;
@@ -26,26 +27,23 @@ import com.l2jserver.gameserver.model.PcCondOverride;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
-import com.l2jserver.gameserver.util.Util;
+import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
/**
* Tell chat handler.
* @author durgus
*/
-public class ChatTell implements IChatHandler
+public final class ChatTell implements IChatHandler
{
- private static final int[] COMMAND_IDS =
+ private static final ChatType[] CHAT_TYPES =
{
- 2
+ ChatType.TELL,
};
- /**
- * Handle chat type 'tell'
- */
@Override
- public void handleChat(int type, L2PcInstance activeChar, String target, String text)
+ public void handleChat(ChatType type, L2PcInstance activeChar, String target, String text)
{
- if (activeChar.isChatBanned() && Util.contains(Config.BAN_CHAT_CHANNELS, type))
+ if (activeChar.isChatBanned() && Config.BAN_CHAT_CHANNELS.contains(type))
{
activeChar.sendPacket(SystemMessageId.CHATTING_IS_CURRENTLY_PROHIBITED_IF_YOU_TRY_TO_CHAT_BEFORE_THE_PROHIBITION_IS_REMOVED_THE_PROHIBITION_TIME_WILL_INCREASE_EVEN_FURTHER);
return;
@@ -63,9 +61,7 @@ public class ChatTell implements IChatHandler
return;
}
- L2PcInstance receiver = null;
-
- receiver = L2World.getInstance().getPlayer(target);
+ final L2PcInstance receiver = L2World.getInstance().getPlayer(target);
if ((receiver != null) && !receiver.isSilenceMode(activeChar.getObjectId()))
{
@@ -74,22 +70,27 @@ public class ChatTell implements IChatHandler
activeChar.sendMessage("Player is in jail.");
return;
}
- if (receiver.isChatBanned())
+ else if (receiver.isChatBanned())
{
activeChar.sendPacket(SystemMessageId.THAT_PERSON_IS_IN_MESSAGE_REFUSAL_MODE);
return;
}
- if ((receiver.getClient() == null) || receiver.getClient().isDetached())
+ else if ((receiver.getClient() == null) || receiver.getClient().isDetached())
{
activeChar.sendMessage("Player is in offline mode.");
return;
}
- if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_SPECIFIC_CHAT && ((activeChar.isGood() && receiver.isEvil()) || (activeChar.isEvil() && receiver.isGood())))
+ else if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_SPECIFIC_CHAT && ((activeChar.isGood() && receiver.isEvil()) || (activeChar.isEvil() && receiver.isGood())))
{
activeChar.sendMessage("Player belongs to the opposing faction.");
return;
}
- if (!BlockList.isBlocked(receiver, activeChar))
+ else if ((activeChar.getLevel() < Config.MINIMUM_CHAT_LEVEL) && !activeChar.getWhisperers().contains(receiver.getObjectId()) && !activeChar.canOverrideCond(PcCondOverride.CHAT_CONDITIONS))
+ {
+ activeChar.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.PLAYERS_CAN_RESPOND_TO_A_WHISPER_BUT_CANNOT_INITIATE_A_WHISPER_UNTIL_LV_S1).addInt(Config.MINIMUM_CHAT_LEVEL));
+ return;
+ }
+ else if (!BlockList.isBlocked(receiver, activeChar))
{
// Allow reciever to send PMs to this char, which is in silence mode.
if (Config.SILENCE_MODE_EXCLUDE && activeChar.isSilenceMode())
@@ -97,6 +98,7 @@ public class ChatTell implements IChatHandler
activeChar.addSilenceModeExcluded(receiver.getObjectId());
}
+ receiver.getWhisperers().add(activeChar.getObjectId());
receiver.sendPacket(new CreatureSay(activeChar, receiver, activeChar.getName(), type, text));
activeChar.sendPacket(new CreatureSay(activeChar, receiver, "->" + receiver.getName(), type, text));
}
@@ -111,12 +113,9 @@ public class ChatTell implements IChatHandler
}
}
- /**
- * Returns the chat types registered to this handler.
- */
@Override
- public int[] getChatTypeList()
+ public ChatType[] getChatTypeList()
{
- return COMMAND_IDS;
+ return CHAT_TYPES;
}
-}
+}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/handlers/chathandlers/ChatTrade.java b/trunk/dist/game/data/scripts/handlers/chathandlers/ChatTrade.java
index 1c7ab159f0..2f281549d2 100644
--- a/trunk/dist/game/data/scripts/handlers/chathandlers/ChatTrade.java
+++ b/trunk/dist/game/data/scripts/handlers/chathandlers/ChatTrade.java
@@ -19,6 +19,7 @@
package handlers.chathandlers;
import com.l2jserver.Config;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.handler.IChatHandler;
import com.l2jserver.gameserver.instancemanager.MapRegionManager;
import com.l2jserver.gameserver.model.BlockList;
@@ -27,31 +28,34 @@ import com.l2jserver.gameserver.model.PcCondOverride;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
-import com.l2jserver.gameserver.util.Util;
+import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
/**
* Trade chat handler.
* @author durgus
*/
-public class ChatTrade implements IChatHandler
+public final class ChatTrade implements IChatHandler
{
- private static final int[] COMMAND_IDS =
+ private static final ChatType[] CHAT_TYPES =
{
- 8
+ ChatType.TRADE,
};
- /**
- * Handle chat type 'trade'
- */
@Override
- public void handleChat(int type, L2PcInstance activeChar, String target, String text)
+ public void handleChat(ChatType type, L2PcInstance activeChar, String target, String text)
{
- if (activeChar.isChatBanned() && Util.contains(Config.BAN_CHAT_CHANNELS, type))
+ if (activeChar.isChatBanned() && Config.BAN_CHAT_CHANNELS.contains(type))
{
activeChar.sendPacket(SystemMessageId.CHATTING_IS_CURRENTLY_PROHIBITED_IF_YOU_TRY_TO_CHAT_BEFORE_THE_PROHIBITION_IS_REMOVED_THE_PROHIBITION_TIME_WILL_INCREASE_EVEN_FURTHER);
return;
}
+ if (activeChar.getLevel() < 20)
+ {
+ activeChar.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.PLAYERS_CAN_USE_TRADE_CHAT_AFTER_LV_S1).addInt(20));
+ return;
+ }
+
final CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text);
if (Config.DEFAULT_TRADE_CHAT.equalsIgnoreCase("on") || (Config.DEFAULT_TRADE_CHAT.equalsIgnoreCase("gm") && activeChar.canOverrideCond(PcCondOverride.CHAT_CONDITIONS)))
{
@@ -116,12 +120,9 @@ public class ChatTrade implements IChatHandler
}
}
- /**
- * Returns the chat types registered to this handler.
- */
@Override
- public int[] getChatTypeList()
+ public ChatType[] getChatTypeList()
{
- return COMMAND_IDS;
+ return CHAT_TYPES;
}
-}
+}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java b/trunk/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java
index f41e105be1..df191212af 100644
--- a/trunk/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java
+++ b/trunk/dist/game/data/scripts/handlers/chathandlers/ChatWorld.java
@@ -24,6 +24,7 @@ import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import com.l2jserver.Config;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.handler.IChatHandler;
import com.l2jserver.gameserver.model.L2World;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
@@ -31,22 +32,22 @@ import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
import com.l2jserver.gameserver.network.serverpackets.ExWorldChatCnt;
import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
-import com.l2jserver.gameserver.util.Util;
/**
+ * World chat handler.
* @author UnAfraid
*/
-public class ChatWorld implements IChatHandler
+public final class ChatWorld implements IChatHandler
{
private static final Map REUSE = new ConcurrentHashMap<>();
- private static final int[] COMMANDS =
+ private static final ChatType[] CHAT_TYPES =
{
- 25
+ ChatType.GLOBAL,
};
@Override
- public void handleChat(int type, L2PcInstance activeChar, String target, String text)
+ public void handleChat(ChatType type, L2PcInstance activeChar, String target, String text)
{
final Instant now = Instant.now();
if (!REUSE.isEmpty())
@@ -60,7 +61,7 @@ public class ChatWorld implements IChatHandler
msg.addInt(Config.WORLD_CHAT_MIN_LEVEL);
activeChar.sendPacket(msg);
}
- else if (activeChar.isChatBanned() && Util.contains(Config.BAN_CHAT_CHANNELS, type))
+ else if (activeChar.isChatBanned() && Config.BAN_CHAT_CHANNELS.contains(type))
{
activeChar.sendPacket(SystemMessageId.CHATTING_IS_CURRENTLY_PROHIBITED_IF_YOU_TRY_TO_CHAT_BEFORE_THE_PROHIBITION_IS_REMOVED_THE_PROHIBITION_TIME_WILL_INCREASE_EVEN_FURTHER);
}
@@ -79,50 +80,30 @@ public class ChatWorld implements IChatHandler
final Duration timeDiff = Duration.between(instant, now);
final SystemMessage msg = SystemMessage.getSystemMessage(SystemMessageId.YOU_HAVE_S1_SEC_UNTIL_YOU_ARE_ABLE_TO_USE_WORLD_CHAT);
msg.addInt((int) timeDiff.getSeconds());
- if (Config.FACTION_SYSTEM_ENABLED)
- {
- if (Config.FACTION_SPECIFIC_CHAT)
- {
- if ((activeChar.isGood() && activeChar.isGood()) || (activeChar.isEvil() && activeChar.isEvil()))
- {
- activeChar.sendPacket(msg);
- }
- }
- else
- {
- activeChar.sendPacket(msg);
- }
- }
- else
- {
- activeChar.sendPacket(msg);
- }
+ activeChar.sendPacket(msg);
return;
}
}
final CreatureSay cs = new CreatureSay(activeChar, type, text);
- L2World.getInstance().getPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo);
-
- activeChar.setWorldChatPoints(activeChar.getWorldChatPoints() - 1);
- if (Config.FACTION_SYSTEM_ENABLED)
+ if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_SPECIFIC_CHAT)
{
- if (Config.FACTION_SPECIFIC_CHAT)
+ if (activeChar.isGood())
{
- if ((activeChar.isGood() && activeChar.isGood()) || (activeChar.isEvil() && activeChar.isEvil()))
- {
- activeChar.sendPacket(new ExWorldChatCnt(activeChar));
- }
+ L2World.getInstance().getAllGoodPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo);
}
- else
+ if (activeChar.isEvil())
{
- activeChar.sendPacket(new ExWorldChatCnt(activeChar));
+ L2World.getInstance().getAllEvilPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo);
}
}
else
{
- activeChar.sendPacket(new ExWorldChatCnt(activeChar));
+ L2World.getInstance().getPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo);
}
+
+ activeChar.setWorldChatPoints(activeChar.getWorldChatPoints() - 1);
+ activeChar.sendPacket(new ExWorldChatCnt(activeChar));
if (Config.WORLD_CHAT_INTERVAL.getSeconds() > 0)
{
REUSE.put(activeChar.getObjectId(), now.plus(Config.WORLD_CHAT_INTERVAL));
@@ -131,8 +112,8 @@ public class ChatWorld implements IChatHandler
}
@Override
- public int[] getChatTypeList()
+ public ChatType[] getChatTypeList()
{
- return COMMANDS;
+ return CHAT_TYPES;
}
-}
+}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/handlers/effecthandlers/ClassChange.java b/trunk/dist/game/data/scripts/handlers/effecthandlers/ClassChange.java
index 3f3cbffce7..463e8d3dec 100644
--- a/trunk/dist/game/data/scripts/handlers/effecthandlers/ClassChange.java
+++ b/trunk/dist/game/data/scripts/handlers/effecthandlers/ClassChange.java
@@ -20,6 +20,7 @@ package handlers.effecthandlers;
import com.l2jserver.gameserver.ThreadPoolManager;
import com.l2jserver.gameserver.datatables.SkillData;
+import com.l2jserver.gameserver.enums.SubclassInfoType;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.conditions.Condition;
@@ -81,7 +82,7 @@ public class ClassChange extends AbstractEffect
player.sendPacket(msg);
player.broadcastUserInfo();
- player.sendPacket(new ExSubjobInfo(player));
+ player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED));
}, 1000);
}
}
diff --git a/trunk/dist/game/data/scripts/handlers/telnethandlers/ChatsHandler.java b/trunk/dist/game/data/scripts/handlers/telnethandlers/ChatsHandler.java
index efbb1529d3..3cdc2f0e98 100644
--- a/trunk/dist/game/data/scripts/handlers/telnethandlers/ChatsHandler.java
+++ b/trunk/dist/game/data/scripts/handlers/telnethandlers/ChatsHandler.java
@@ -23,10 +23,10 @@ import java.net.Socket;
import java.util.StringTokenizer;
import com.l2jserver.gameserver.data.xml.impl.AdminData;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.handler.ITelnetHandler;
import com.l2jserver.gameserver.model.L2World;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
import com.l2jserver.gameserver.util.Broadcast;
@@ -67,7 +67,7 @@ public class ChatsHandler implements ITelnetHandler
String name = st.nextToken();
String message = val.substring(name.length() + 1);
L2PcInstance reciever = L2World.getInstance().getPlayer(name);
- CreatureSay cs = new CreatureSay(0, Say2.TELL, "Telnet Priv", message);
+ CreatureSay cs = new CreatureSay(0, ChatType.TELL, "Telnet Priv", message);
if (reciever != null)
{
reciever.sendPacket(cs);
@@ -89,7 +89,7 @@ public class ChatsHandler implements ITelnetHandler
try
{
command = command.substring(7);
- CreatureSay cs = new CreatureSay(0, Say2.ALLIANCE, "Telnet GM Broadcast from " + _cSocket.getInetAddress().getHostAddress(), command);
+ CreatureSay cs = new CreatureSay(0, ChatType.ALLIANCE, "Telnet GM Broadcast from " + _cSocket.getInetAddress().getHostAddress(), command);
AdminData.getInstance().broadcastToGMs(cs);
_print.println("Your Message Has Been Sent To " + getOnlineGMS() + " GM(s).");
}
diff --git a/trunk/dist/game/data/scripts/handlers/telnethandlers/DebugHandler.java b/trunk/dist/game/data/scripts/handlers/telnethandlers/DebugHandler.java
index e98e3519e7..3dd0a79e21 100644
--- a/trunk/dist/game/data/scripts/handlers/telnethandlers/DebugHandler.java
+++ b/trunk/dist/game/data/scripts/handlers/telnethandlers/DebugHandler.java
@@ -209,6 +209,8 @@ public class DebugHandler implements ITelnetHandler
FastTable> entries = new FastTable<>();
entries.setValueComparator(new FastComparator>()
{
+ private static final long serialVersionUID = 1L;
+
@Override
public boolean areEqual(Entry e1, Entry e2)
{
diff --git a/trunk/dist/game/data/scripts/hellbound/AI/Amaskari.java b/trunk/dist/game/data/scripts/hellbound/AI/Amaskari.java
index f62769532d..e288161595 100644
--- a/trunk/dist/game/data/scripts/hellbound/AI/Amaskari.java
+++ b/trunk/dist/game/data/scripts/hellbound/AI/Amaskari.java
@@ -22,6 +22,7 @@ import hellbound.HellboundEngine;
import ai.npc.AbstractNpcAI;
import com.l2jserver.gameserver.ai.CtrlIntention;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2MonsterInstance;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
@@ -29,7 +30,6 @@ import com.l2jserver.gameserver.model.holders.SkillHolder;
import com.l2jserver.gameserver.model.skills.BuffInfo;
import com.l2jserver.gameserver.model.skills.Skill;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
/**
* Manages Amaskari's and minions' chat and some skill usage.
@@ -78,7 +78,7 @@ public final class Amaskari extends AbstractNpcAI
{
if (event.equalsIgnoreCase("stop_toggle"))
{
- broadcastNpcSay(npc, Say2.NPC_ALL, AMASKARI_NPCSTRING_ID[2]);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, AMASKARI_NPCSTRING_ID[2]);
((L2MonsterInstance) npc).clearAggroList();
((L2MonsterInstance) npc).getAI().setIntention(CtrlIntention.AI_INTENTION_ACTIVE);
npc.setIsInvul(false);
@@ -88,11 +88,11 @@ public final class Amaskari extends AbstractNpcAI
{
if (getRandom(100) > 20)
{
- broadcastNpcSay(npc, Say2.NPC_ALL, MINIONS_NPCSTRING_ID[2]);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, MINIONS_NPCSTRING_ID[2]);
}
else if (getRandom(100) > 40)
{
- broadcastNpcSay(npc, Say2.NPC_ALL, MINIONS_NPCSTRING_ID[3]);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, MINIONS_NPCSTRING_ID[3]);
}
startQuestTimer("onspawn_msg", (getRandom(8) + 1) * 30000, npc, null);
}
@@ -104,12 +104,12 @@ public final class Amaskari extends AbstractNpcAI
{
if ((npc.getId() == AMASKARI) && (getRandom(1000) < 25))
{
- broadcastNpcSay(npc, Say2.NPC_ALL, AMASKARI_NPCSTRING_ID[0]);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, AMASKARI_NPCSTRING_ID[0]);
for (L2MonsterInstance minion : ((L2MonsterInstance) npc).getMinionList().getSpawnedMinions())
{
if ((minion != null) && !minion.isDead() && (getRandom(10) == 0))
{
- broadcastNpcSay(minion, Say2.NPC_ALL, MINIONS_NPCSTRING_ID[0]);
+ broadcastNpcSay(minion, ChatType.NPC_GENERAL, MINIONS_NPCSTRING_ID[0]);
minion.setCurrentHp(minion.getCurrentHp() - (minion.getCurrentHp() / 5));
}
}
@@ -125,7 +125,7 @@ public final class Amaskari extends AbstractNpcAI
final L2MonsterInstance master = ((L2MonsterInstance) npc).getLeader();
if ((master != null) && !master.isDead())
{
- broadcastNpcSay(master, Say2.NPC_ALL, AMASKARI_NPCSTRING_ID[1]);
+ broadcastNpcSay(master, ChatType.NPC_GENERAL, AMASKARI_NPCSTRING_ID[1]);
final BuffInfo info = master.getEffectList().getBuffInfoBySkillId(BUFF_ID);
if ((info != null) && (info.getSkill().getAbnormalLvl() == 3) && master.isInvul())
{
@@ -145,7 +145,7 @@ public final class Amaskari extends AbstractNpcAI
}
else
{
- broadcastNpcSay(master, Say2.NPC_ALL, AMASKARI_NPCSTRING_ID[3]);
+ broadcastNpcSay(master, ChatType.NPC_GENERAL, AMASKARI_NPCSTRING_ID[3]);
// master.doCast(INVINCIBILITY.getSkill())
master.setIsInvul(true);
startQuestTimer("stop_toggle", 10000, master, null);
@@ -161,7 +161,7 @@ public final class Amaskari extends AbstractNpcAI
{
if (getRandom(1000) > 300)
{
- broadcastNpcSay(minion, Say2.NPC_ALL, MINIONS_NPCSTRING_ID[1]);
+ broadcastNpcSay(minion, ChatType.NPC_GENERAL, MINIONS_NPCSTRING_ID[1]);
}
HellboundEngine.getInstance().updateTrust(30, true);
minion.deleteMe();
diff --git a/trunk/dist/game/data/scripts/hellbound/AI/Keltas.java b/trunk/dist/game/data/scripts/hellbound/AI/Keltas.java
index 6ba51172d8..9e3d0c91b6 100644
--- a/trunk/dist/game/data/scripts/hellbound/AI/Keltas.java
+++ b/trunk/dist/game/data/scripts/hellbound/AI/Keltas.java
@@ -24,13 +24,13 @@ import java.util.concurrent.ConcurrentHashMap;
import ai.npc.AbstractNpcAI;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.L2Spawn;
import com.l2jserver.gameserver.model.Location;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2MonsterInstance;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
/**
* Manages Darion's Enforcer's and Darion's Executioner spawn/despawn
@@ -161,7 +161,7 @@ public final class Keltas extends AbstractNpcAI
final L2Npc keltas = _spawnedKeltas;
if ((keltas != null) && !keltas.isDead())
{
- broadcastNpcSay(keltas, Say2.NPC_SHOUT, NpcStringId.THAT_IS_IT_FOR_TODAY_LET_S_RETREAT_EVERYONE_PULL_BACK);
+ broadcastNpcSay(keltas, ChatType.NPC_SHOUT, NpcStringId.THAT_IS_IT_FOR_TODAY_LET_S_RETREAT_EVERYONE_PULL_BACK);
keltas.deleteMe();
keltas.getSpawn().decreaseCount(keltas);
despawnMinions();
@@ -182,7 +182,7 @@ public final class Keltas extends AbstractNpcAI
public final String onSpawn(L2Npc npc)
{
_spawnedKeltas = (L2MonsterInstance) npc;
- broadcastNpcSay(_spawnedKeltas, Say2.NPC_SHOUT, NpcStringId.GUYS_SHOW_THEM_OUR_POWER);
+ broadcastNpcSay(_spawnedKeltas, ChatType.NPC_SHOUT, NpcStringId.GUYS_SHOW_THEM_OUR_POWER);
spawnMinions();
startQuestTimer("despawn", 1800000, null, null);
return super.onSpawn(npc);
diff --git a/trunk/dist/game/data/scripts/hellbound/AI/NPC/Deltuva/Deltuva.java b/trunk/dist/game/data/scripts/hellbound/AI/NPC/Deltuva/Deltuva.java
index c1fad8ca36..5ddf0cff93 100644
--- a/trunk/dist/game/data/scripts/hellbound/AI/NPC/Deltuva/Deltuva.java
+++ b/trunk/dist/game/data/scripts/hellbound/AI/NPC/Deltuva/Deltuva.java
@@ -18,13 +18,11 @@
*/
package hellbound.AI.NPC.Deltuva;
-import quests.Q00132_MatrasCuriosity.Q00132_MatrasCuriosity;
import ai.npc.AbstractNpcAI;
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.quest.QuestState;
/**
* Deltuva AI.
@@ -49,11 +47,6 @@ public final class Deltuva extends AbstractNpcAI
{
if (event.equalsIgnoreCase("teleport"))
{
- final QuestState hostQuest = player.getQuestState(Q00132_MatrasCuriosity.class.getSimpleName());
- if ((hostQuest == null) || !hostQuest.isCompleted())
- {
- return "32313-02.htm";
- }
player.teleToLocation(TELEPORT);
}
return super.onAdvEvent(event, npc, player);
diff --git a/trunk/dist/game/data/scripts/hellbound/AI/NPC/Natives/Natives.java b/trunk/dist/game/data/scripts/hellbound/AI/NPC/Natives/Natives.java
index aad81a8f12..cef310ea61 100644
--- a/trunk/dist/game/data/scripts/hellbound/AI/NPC/Natives/Natives.java
+++ b/trunk/dist/game/data/scripts/hellbound/AI/NPC/Natives/Natives.java
@@ -22,11 +22,11 @@ import hellbound.HellboundEngine;
import ai.npc.AbstractNpcAI;
import com.l2jserver.gameserver.data.xml.impl.DoorData;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2DoorInstance;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
/**
* Natives AI.
@@ -110,7 +110,7 @@ public final class Natives extends AbstractNpcAI
if (getQuestItemsCount(player, MARK_OF_BETRAYAL) >= 10)
{
takeItems(player, MARK_OF_BETRAYAL, 10);
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.ALRIGHT_NOW_LEODAS_IS_YOURS);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.ALRIGHT_NOW_LEODAS_IS_YOURS);
HellboundEngine.getInstance().updateTrust(-50, true);
for (int doorId : DOORS)
@@ -148,7 +148,7 @@ public final class Natives extends AbstractNpcAI
}
else if ((npc.getId() == NATIVE) && event.equalsIgnoreCase("hungry_death"))
{
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.HUN_HUNGRY);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.HUN_HUNGRY);
npc.doDie(null);
}
else if (npc.getId() == INCASTLE)
diff --git a/trunk/dist/game/data/scripts/hellbound/AI/NPC/Quarry/Quarry.java b/trunk/dist/game/data/scripts/hellbound/AI/NPC/Quarry/Quarry.java
index f4453f33d0..d9b0171010 100644
--- a/trunk/dist/game/data/scripts/hellbound/AI/NPC/Quarry/Quarry.java
+++ b/trunk/dist/game/data/scripts/hellbound/AI/NPC/Quarry/Quarry.java
@@ -23,6 +23,7 @@ import ai.npc.AbstractNpcAI;
import com.l2jserver.Config;
import com.l2jserver.gameserver.ai.CtrlIntention;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.instancemanager.ZoneManager;
import com.l2jserver.gameserver.model.actor.L2Attackable;
import com.l2jserver.gameserver.model.actor.L2Character;
@@ -32,7 +33,6 @@ import com.l2jserver.gameserver.model.actor.instance.L2QuestGuardInstance;
import com.l2jserver.gameserver.model.holders.ItemChanceHolder;
import com.l2jserver.gameserver.model.zone.L2ZoneType;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
/**
* Quarry AI.
@@ -103,7 +103,7 @@ public final class Quarry extends AbstractNpcAI
return null;
}
}
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.HUN_HUNGRY);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.HUN_HUNGRY);
npc.doDie(npc);
break;
}
@@ -176,7 +176,7 @@ public final class Quarry extends AbstractNpcAI
startQuestTimer("DECAY", 1000, npc, null);
try
{
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.THANK_YOU_FOR_THE_RESCUE_IT_S_A_SMALL_GIFT);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.THANK_YOU_FOR_THE_RESCUE_IT_S_A_SMALL_GIFT);
}
catch (Exception e)
{
diff --git a/trunk/dist/game/data/scripts/hellbound/AI/Ranku.java b/trunk/dist/game/data/scripts/hellbound/AI/Ranku.java
index 5765e39c01..1a4fd9bc67 100644
--- a/trunk/dist/game/data/scripts/hellbound/AI/Ranku.java
+++ b/trunk/dist/game/data/scripts/hellbound/AI/Ranku.java
@@ -23,12 +23,12 @@ import java.util.Set;
import javolution.util.FastSet;
import ai.npc.AbstractNpcAI;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2MonsterInstance;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.skills.Skill;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.util.MinionList;
/**
@@ -79,7 +79,7 @@ public final class Ranku extends AbstractNpcAI
{
if ((minion != null) && !minion.isDead() && !MY_TRACKING_SET.contains(minion.getObjectId()))
{
- broadcastNpcSay(minion, Say2.NPC_ALL, NpcStringId.DON_T_KILL_ME_PLEASE_SOMETHING_S_STRANGLING_ME);
+ broadcastNpcSay(minion, ChatType.NPC_GENERAL, NpcStringId.DON_T_KILL_ME_PLEASE_SOMETHING_S_STRANGLING_ME);
startQuestTimer("checkup", 1000, npc, null);
MY_TRACKING_SET.add(minion.getObjectId());
}
diff --git a/trunk/dist/game/data/scripts/hellbound/AI/Slaves.java b/trunk/dist/game/data/scripts/hellbound/AI/Slaves.java
index b3f14f4f2b..cd8a47e345 100644
--- a/trunk/dist/game/data/scripts/hellbound/AI/Slaves.java
+++ b/trunk/dist/game/data/scripts/hellbound/AI/Slaves.java
@@ -25,12 +25,12 @@ import java.util.List;
import ai.npc.AbstractNpcAI;
import com.l2jserver.gameserver.ai.CtrlIntention;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.Location;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2MonsterInstance;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.taskmanager.DecayTaskManager;
/**
@@ -81,7 +81,7 @@ public final class Slaves extends AbstractNpcAI
slave.clearAggroList();
slave.abortAttack();
slave.abortCast();
- broadcastNpcSay(slave, Say2.NPC_ALL, NpcStringId.THANK_YOU_FOR_SAVING_ME_FROM_THE_CLUTCHES_OF_EVIL);
+ broadcastNpcSay(slave, ChatType.NPC_GENERAL, NpcStringId.THANK_YOU_FOR_SAVING_ME_FROM_THE_CLUTCHES_OF_EVIL);
if ((HellboundEngine.getInstance().getLevel() >= 1) && (HellboundEngine.getInstance().getLevel() <= 2))
{
@@ -94,4 +94,4 @@ public final class Slaves extends AbstractNpcAI
}
return super.onKill(npc, killer, isSummon);
}
-}
+}
diff --git a/trunk/dist/game/data/scripts/hellbound/AI/Zones/AnomicFoundry/AnomicFoundry.java b/trunk/dist/game/data/scripts/hellbound/AI/Zones/AnomicFoundry/AnomicFoundry.java
index a9ebca87bc..c2d13e8501 100644
--- a/trunk/dist/game/data/scripts/hellbound/AI/Zones/AnomicFoundry/AnomicFoundry.java
+++ b/trunk/dist/game/data/scripts/hellbound/AI/Zones/AnomicFoundry/AnomicFoundry.java
@@ -27,6 +27,7 @@ import ai.npc.AbstractNpcAI;
import com.l2jserver.gameserver.ai.CtrlIntention;
import com.l2jserver.gameserver.datatables.SpawnTable;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.L2Spawn;
import com.l2jserver.gameserver.model.Location;
import com.l2jserver.gameserver.model.actor.L2Attackable;
@@ -35,7 +36,6 @@ import com.l2jserver.gameserver.model.actor.instance.L2MonsterInstance;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.skills.Skill;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
/**
* Anomic Foundry.
@@ -142,7 +142,7 @@ public final class AnomicFoundry extends AbstractNpcAI
int atkIndex = _atkIndex.containsKey(npc.getObjectId()) ? _atkIndex.get(npc.getObjectId()) : 0;
if (atkIndex == 0)
{
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.ENEMY_INVASION_HURRY_UP);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.ENEMY_INVASION_HURRY_UP);
cancelQuestTimer("return_laborer", npc, null);
startQuestTimer("return_laborer", 60000, npc, null);
@@ -183,7 +183,7 @@ public final class AnomicFoundry extends AbstractNpcAI
{
if (getRandom(10000) < 8000)
{
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.PROCESS_SHOULDN_T_BE_DELAYED_BECAUSE_OF_ME);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.PROCESS_SHOULDN_T_BE_DELAYED_BECAUSE_OF_ME);
if (respawnTime < respawnMax)
{
respawnTime += 10000;
diff --git a/trunk/dist/game/data/scripts/hellbound/AI/Zones/TowerOfNaia/TowerOfNaia.java b/trunk/dist/game/data/scripts/hellbound/AI/Zones/TowerOfNaia/TowerOfNaia.java
index de32fda4fc..af49067233 100644
--- a/trunk/dist/game/data/scripts/hellbound/AI/Zones/TowerOfNaia/TowerOfNaia.java
+++ b/trunk/dist/game/data/scripts/hellbound/AI/Zones/TowerOfNaia/TowerOfNaia.java
@@ -32,6 +32,7 @@ import com.l2jserver.gameserver.ThreadPoolManager;
import com.l2jserver.gameserver.ai.CtrlIntention;
import com.l2jserver.gameserver.data.xml.impl.DoorData;
import com.l2jserver.gameserver.datatables.SkillData;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.instancemanager.GlobalVariablesManager;
import com.l2jserver.gameserver.instancemanager.ZoneManager;
import com.l2jserver.gameserver.model.L2Party;
@@ -43,7 +44,6 @@ import com.l2jserver.gameserver.model.skills.Skill;
import com.l2jserver.gameserver.model.zone.L2ZoneType;
import com.l2jserver.gameserver.network.NpcStringId;
import com.l2jserver.gameserver.network.SystemMessageId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.util.MinionList;
import com.l2jserver.gameserver.util.Util;
@@ -612,7 +612,7 @@ public final class TowerOfNaia extends AbstractNpcAI
MinionList.spawnMinion(_lock, 18493);
MinionList.spawnMinion(_lock, 18493);
}
- broadcastNpcSay(_controller, Say2.NPC_ALL, NpcStringId.EMERGENCY_EMERGENCY_THE_OUTER_WALL_IS_WEAKENING_RAPIDLY);
+ broadcastNpcSay(_controller, ChatType.NPC_GENERAL, NpcStringId.EMERGENCY_EMERGENCY_THE_OUTER_WALL_IS_WEAKENING_RAPIDLY);
_counter -= 10;
}
}
@@ -716,7 +716,7 @@ public final class TowerOfNaia extends AbstractNpcAI
{
if ((spore != null) && !spore.isDead() && (spore.getId() == npcId))
{
- broadcastNpcSay(spore, Say2.NPC_ALL, SPORES_NPCSTRING_ID[getRandom(4)], el);
+ broadcastNpcSay(spore, ChatType.NPC_GENERAL, SPORES_NPCSTRING_ID[getRandom(4)], el);
}
}
}
diff --git a/trunk/dist/game/data/scripts/hellbound/AI/Zones/TullyWorkshop/TullyWorkshop.java b/trunk/dist/game/data/scripts/hellbound/AI/Zones/TullyWorkshop/TullyWorkshop.java
index 98ea64489c..07e3fcbcd0 100644
--- a/trunk/dist/game/data/scripts/hellbound/AI/Zones/TullyWorkshop/TullyWorkshop.java
+++ b/trunk/dist/game/data/scripts/hellbound/AI/Zones/TullyWorkshop/TullyWorkshop.java
@@ -33,6 +33,7 @@ import com.l2jserver.gameserver.ThreadPoolManager;
import com.l2jserver.gameserver.ai.CtrlIntention;
import com.l2jserver.gameserver.data.xml.impl.DoorData;
import com.l2jserver.gameserver.datatables.SkillData;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.instancemanager.RaidBossSpawnManager;
import com.l2jserver.gameserver.instancemanager.RaidBossSpawnManager.StatusEnum;
import com.l2jserver.gameserver.instancemanager.ZoneManager;
@@ -48,7 +49,6 @@ import com.l2jserver.gameserver.model.skills.Skill;
import com.l2jserver.gameserver.model.zone.L2ZoneType;
import com.l2jserver.gameserver.network.NpcStringId;
import com.l2jserver.gameserver.network.SystemMessageId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.util.MinionList;
import com.l2jserver.gameserver.util.Util;
@@ -572,7 +572,7 @@ public final class TullyWorkshop extends AbstractNpcAI
{
if (postMortemSpawn.indexOf(npc) == 11)
{
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.HA_HA_YOU_WERE_SO_AFRAID_OF_DEATH_LET_ME_SEE_IF_YOU_FIND_ME_IN_TIME_MAYBE_YOU_CAN_FIND_A_WAY);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.HA_HA_YOU_WERE_SO_AFRAID_OF_DEATH_LET_ME_SEE_IF_YOU_FIND_ME_IN_TIME_MAYBE_YOU_CAN_FIND_A_WAY);
npc.deleteMe();
return null;
}
@@ -746,7 +746,7 @@ public final class TullyWorkshop extends AbstractNpcAI
if (event.equalsIgnoreCase("repair_device"))
{
- broadcastNpcSay(npc, Say2.NPC_SHOUT, NpcStringId.DE_ACTIVATE_THE_ALARM);
+ broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.DE_ACTIVATE_THE_ALARM);
brokenContraptions.remove(npc.getObjectId());
}
else if (event.equalsIgnoreCase("despawn_servant") && !npc.isDead())
@@ -1223,7 +1223,7 @@ public final class TullyWorkshop extends AbstractNpcAI
{
if ((_npc != null) && (_npc.getId() == INGENIOUS_CONTRAPTION))
{
- broadcastNpcSay(_npc, Say2.NPC_SHOUT, NpcStringId.S1_MINUTE_S_ARE_REMAINING, Integer.toString((countdownTime / 60000)));
+ broadcastNpcSay(_npc, ChatType.NPC_SHOUT, NpcStringId.S1_MINUTE_S_ARE_REMAINING, Integer.toString((countdownTime / 60000)));
}
}
}
@@ -1257,35 +1257,35 @@ public final class TullyWorkshop extends AbstractNpcAI
{
if ((_npc != null) && (_npc.getId() == INGENIOUS_CONTRAPTION))
{
- broadcastNpcSay(_npc, Say2.NPC_SHOUT, NpcStringId.S1_SECOND_S_REMAINING, Integer.toString((countdownTime / 1000)));
+ broadcastNpcSay(_npc, ChatType.NPC_SHOUT, NpcStringId.S1_SECOND_S_REMAINING, Integer.toString((countdownTime / 1000)));
}
}
}, 60000, 10000);
- broadcastNpcSay(postMortemSpawn.get(0), Say2.NPC_SHOUT, NpcStringId.DETONATOR_INITIALIZATION_TIME_SET_FOR_S1_MINUTE_S_FROM_NOW, Integer.toString((countdownTime / 60000)));
+ broadcastNpcSay(postMortemSpawn.get(0), ChatType.NPC_SHOUT, NpcStringId.DETONATOR_INITIALIZATION_TIME_SET_FOR_S1_MINUTE_S_FROM_NOW, Integer.toString((countdownTime / 60000)));
}
else if ((npcId == TIMETWISTER_GOLEM) && (_countdown != null))
{
if (getRandom(1000) >= 700)
{
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.A_FATAL_ERROR_HAS_OCCURRED);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.A_FATAL_ERROR_HAS_OCCURRED);
if (countdownTime > 180000)
{
countdownTime = Math.max(countdownTime - 180000, 60000);
if ((postMortemSpawn != null) && (postMortemSpawn.size() > 0) && (postMortemSpawn.get(0) != null) && (postMortemSpawn.get(0).getId() == INGENIOUS_CONTRAPTION))
{
- broadcastNpcSay(postMortemSpawn.get(0), Say2.NPC_SHOUT, NpcStringId.ZZZZ_CITY_INTERFERENCE_ERROR_FORWARD_EFFECT_CREATED);
+ broadcastNpcSay(postMortemSpawn.get(0), ChatType.NPC_SHOUT, NpcStringId.ZZZZ_CITY_INTERFERENCE_ERROR_FORWARD_EFFECT_CREATED);
}
}
}
else
{
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.TIME_RIFT_DEVICE_ACTIVATION_SUCCESSFUL);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.TIME_RIFT_DEVICE_ACTIVATION_SUCCESSFUL);
if ((countdownTime > 0) && (countdownTime <= 420000))
{
countdownTime += 180000;
if ((postMortemSpawn != null) && (postMortemSpawn.size() > 0) && (postMortemSpawn.get(0) != null) && (postMortemSpawn.get(0).getId() == INGENIOUS_CONTRAPTION))
{
- broadcastNpcSay(postMortemSpawn.get(0), Say2.NPC_SHOUT, NpcStringId.ZZZZ_CITY_INTERFERENCE_ERROR_RECURRENCE_EFFECT_CREATED);
+ broadcastNpcSay(postMortemSpawn.get(0), ChatType.NPC_SHOUT, NpcStringId.ZZZZ_CITY_INTERFERENCE_ERROR_RECURRENCE_EFFECT_CREATED);
}
}
}
@@ -1367,11 +1367,11 @@ public final class TullyWorkshop extends AbstractNpcAI
if (((npc.getId() - 22404) == 3) || ((npc.getId() - 22404) == 6))
{
- broadcastNpcSay(npc, Say2.NPC_SHOUT, NpcStringId.I_FAILED_PLEASE_FORGIVE_ME_DARION);
+ broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.I_FAILED_PLEASE_FORGIVE_ME_DARION);
}
else
{
- broadcastNpcSay(npc, Say2.NPC_SHOUT, NpcStringId.S1_I_LL_BE_BACK_DON_T_GET_COMFORTABLE, killer.getName());
+ broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.S1_I_LL_BE_BACK_DON_T_GET_COMFORTABLE, killer.getName());
}
}
else if (((npcId == TEMENIR) || (npcId == DRAXIUS) || (npcId == KIRETCENAH)) && spawnedFollowers.contains(npc))
@@ -1446,7 +1446,7 @@ public final class TullyWorkshop extends AbstractNpcAI
}
else if ((npcId >= SERVANT_FIRST) && (npcId <= SERVANT_LAST) && (skillId == 5392))
{
- broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.S1_THANK_YOU_FOR_GIVING_ME_YOUR_LIFE, player.getName());
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.S1_THANK_YOU_FOR_GIVING_ME_YOUR_LIFE, player.getName());
final int dmg = (int) (player.getCurrentHp() / (npc.getId() - 22404));
player.reduceCurrentHp(dmg, null, null);
npc.setCurrentHp((npc.getCurrentHp() + 10) - (npc.getId() - 22404));
diff --git a/trunk/dist/game/data/scripts/hellbound/Instances/UrbanArea/UrbanArea.java b/trunk/dist/game/data/scripts/hellbound/Instances/UrbanArea/UrbanArea.java
index 5126197f21..599d6be3fb 100644
--- a/trunk/dist/game/data/scripts/hellbound/Instances/UrbanArea/UrbanArea.java
+++ b/trunk/dist/game/data/scripts/hellbound/Instances/UrbanArea/UrbanArea.java
@@ -24,6 +24,7 @@ import instances.AbstractInstance;
import java.util.concurrent.ScheduledFuture;
import com.l2jserver.gameserver.ThreadPoolManager;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.instancemanager.InstanceManager;
import com.l2jserver.gameserver.model.L2Party;
import com.l2jserver.gameserver.model.Location;
@@ -38,7 +39,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.NpcSay;
import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
import com.l2jserver.gameserver.util.Util;
@@ -200,8 +200,8 @@ public final class UrbanArea extends AbstractInstance
{
if (!npc.isAffectedBySkill(STONE.getSkillId()) || world.isAmaskariDead)
{
- broadcastNpcSay(npc, Say2.NPC_ALL, NATIVES_NPCSTRING_ID[0]);
- broadcastNpcSay(npc, Say2.NPC_ALL, NATIVES_NPCSTRING_ID[2]);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NATIVES_NPCSTRING_ID[0]);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NATIVES_NPCSTRING_ID[2]);
}
else
{
@@ -211,8 +211,8 @@ public final class UrbanArea extends AbstractInstance
npc.stopSkillEffects(false, STONE.getSkillId());
}
- broadcastNpcSay(npc, Say2.NPC_ALL, NATIVES_NPCSTRING_ID[0]);
- broadcastNpcSay(npc, Say2.NPC_ALL, NATIVES_NPCSTRING_ID[1]);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NATIVES_NPCSTRING_ID[0]);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NATIVES_NPCSTRING_ID[1]);
HellboundEngine.getInstance().updateTrust(10, true);
npc.scheduleDespawn(3000);
// Try to call Amaskari
@@ -260,7 +260,7 @@ public final class UrbanArea extends AbstractInstance
if (!npc.isBusy())
{
- broadcastNpcSay(npc, Say2.NPC_ALL, NPCSTRING_ID[0]);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NPCSTRING_ID[0]);
npc.setBusy(true);
if ((world.spawnedAmaskari != null) && !world.spawnedAmaskari.isDead() && (getRandom(1000) < 25) && Util.checkIfInRange(1000, npc, world.spawnedAmaskari, false))
@@ -304,7 +304,7 @@ public final class UrbanArea extends AbstractInstance
}
if (msgId >= 0)
{
- broadcastNpcSay(npc, Say2.NPC_ALL, NPCSTRING_ID[msgId], range);
+ broadcastNpcSay(npc, ChatType.NPC_GENERAL, NPCSTRING_ID[msgId], range);
}
npc.setBusy(true);
npc.setBusyMessage("atk");
@@ -421,7 +421,7 @@ public final class UrbanArea extends AbstractInstance
if ((world.spawnedAmaskari != null) && !world.spawnedAmaskari.isDead())
{
world.spawnedAmaskari.teleToLocation(_caller.getLocation());
- world.spawnedAmaskari.broadcastPacket(new NpcSay(world.spawnedAmaskari.getObjectId(), Say2.NPC_ALL, world.spawnedAmaskari.getId(), NpcStringId.I_LL_MAKE_YOU_FEEL_SUFFERING_LIKE_A_FLAME_THAT_IS_NEVER_EXTINGUISHED));
+ world.spawnedAmaskari.broadcastPacket(new NpcSay(world.spawnedAmaskari.getObjectId(), ChatType.NPC_GENERAL, world.spawnedAmaskari.getId(), NpcStringId.I_LL_MAKE_YOU_FEEL_SUFFERING_LIKE_A_FLAME_THAT_IS_NEVER_EXTINGUISHED));
}
}
}
diff --git a/trunk/dist/game/data/scripts/instances/AbstractInstance.java b/trunk/dist/game/data/scripts/instances/AbstractInstance.java
index a3b22c8d24..ef78f36f57 100644
--- a/trunk/dist/game/data/scripts/instances/AbstractInstance.java
+++ b/trunk/dist/game/data/scripts/instances/AbstractInstance.java
@@ -242,6 +242,8 @@ public abstract class AbstractInstance extends AbstractNpcAI
{
case ALL:
{
+ player.stopAllEffectsExceptThoseThatLastThroughDeath();
+
final L2Summon pet = player.getPet();
if (pet != null)
{
diff --git a/trunk/dist/game/data/scripts/instances/ChambersOfDelusion/Chamber.java b/trunk/dist/game/data/scripts/instances/ChambersOfDelusion/Chamber.java
index 67e4831e68..4a1bdd2c38 100644
--- a/trunk/dist/game/data/scripts/instances/ChambersOfDelusion/Chamber.java
+++ b/trunk/dist/game/data/scripts/instances/ChambersOfDelusion/Chamber.java
@@ -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));
}
}
}
diff --git a/trunk/dist/game/data/scripts/instances/CrystalCaverns/CrystalCaverns.java b/trunk/dist/game/data/scripts/instances/CrystalCaverns/CrystalCaverns.java
index 22f6914329..f4231383d0 100644
--- a/trunk/dist/game/data/scripts/instances/CrystalCaverns/CrystalCaverns.java
+++ b/trunk/dist/game/data/scripts/instances/CrystalCaverns/CrystalCaverns.java
@@ -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);
}
diff --git a/trunk/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java b/trunk/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java
index 2b9c20d35b..16ca182712 100644
--- a/trunk/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java
+++ b/trunk/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java
@@ -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)]));
}
}
}
diff --git a/trunk/dist/game/data/scripts/instances/DisciplesNecropolisPast/DisciplesNecropolisPast.java b/trunk/dist/game/data/scripts/instances/DisciplesNecropolisPast/DisciplesNecropolisPast.java
index 1906b171b2..91f686cd87 100644
--- a/trunk/dist/game/data/scripts/instances/DisciplesNecropolisPast/DisciplesNecropolisPast.java
+++ b/trunk/dist/game/data/scripts/instances/DisciplesNecropolisPast/DisciplesNecropolisPast.java
@@ -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;
}
}
diff --git a/trunk/dist/game/data/scripts/instances/HarnakUndergroundRuins/HarnakUndergroundRuins.java b/trunk/dist/game/data/scripts/instances/HarnakUndergroundRuins/HarnakUndergroundRuins.java
index 42f9d36957..1e9afcc4a2 100644
--- a/trunk/dist/game/data/scripts/instances/HarnakUndergroundRuins/HarnakUndergroundRuins.java
+++ b/trunk/dist/game/data/scripts/instances/HarnakUndergroundRuins/HarnakUndergroundRuins.java
@@ -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;
}
diff --git a/trunk/dist/game/data/scripts/instances/IceQueensCastle/IceQueensCastle.java b/trunk/dist/game/data/scripts/instances/IceQueensCastle/IceQueensCastle.java
index 3626281900..8da051df58 100644
--- a/trunk/dist/game/data/scripts/instances/IceQueensCastle/IceQueensCastle.java
+++ b/trunk/dist/game/data/scripts/instances/IceQueensCastle/IceQueensCastle.java
@@ -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);
}
diff --git a/trunk/dist/game/data/scripts/instances/IceQueensCastleHardBattle/18851-01.html b/trunk/dist/game/data/scripts/instances/IceQueensCastleBattle/18851-01.html
similarity index 100%
rename from trunk/dist/game/data/scripts/instances/IceQueensCastleHardBattle/18851-01.html
rename to trunk/dist/game/data/scripts/instances/IceQueensCastleBattle/18851-01.html
diff --git a/trunk/dist/game/data/scripts/instances/IceQueensCastleHardBattle/18851.html b/trunk/dist/game/data/scripts/instances/IceQueensCastleBattle/18851.html
similarity index 69%
rename from trunk/dist/game/data/scripts/instances/IceQueensCastleHardBattle/18851.html
rename to trunk/dist/game/data/scripts/instances/IceQueensCastleBattle/18851.html
index 5f898acc66..f0babc0ab6 100644
--- a/trunk/dist/game/data/scripts/instances/IceQueensCastleHardBattle/18851.html
+++ b/trunk/dist/game/data/scripts/instances/IceQueensCastleBattle/18851.html
@@ -1,6 +1,6 @@
Kegor:
Without you, we would have failed. I can't thank you enough.
Freya's last breath will flutter against your blade, I can feel it!
-
-
+
+
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/instances/IceQueensCastleNormalBattle/IceQueensCastleNormalBattle.java b/trunk/dist/game/data/scripts/instances/IceQueensCastleBattle/IceQueensCastleBattle.java
similarity index 79%
rename from trunk/dist/game/data/scripts/instances/IceQueensCastleNormalBattle/IceQueensCastleNormalBattle.java
rename to trunk/dist/game/data/scripts/instances/IceQueensCastleBattle/IceQueensCastleBattle.java
index 101bc80559..0952ee2525 100644
--- a/trunk/dist/game/data/scripts/instances/IceQueensCastleNormalBattle/IceQueensCastleNormalBattle.java
+++ b/trunk/dist/game/data/scripts/instances/IceQueensCastleBattle/IceQueensCastleBattle.java
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-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));
}
}
}
diff --git a/trunk/dist/game/data/scripts/instances/IceQueensCastleHardBattle/IceQueensCastleHardBattle.java b/trunk/dist/game/data/scripts/instances/IceQueensCastleHardBattle/IceQueensCastleHardBattle.java
deleted file mode 100644
index 8bb79a16d6..0000000000
--- a/trunk/dist/game/data/scripts/instances/IceQueensCastleHardBattle/IceQueensCastleHardBattle.java
+++ /dev/null
@@ -1,1293 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package instances.IceQueensCastleHardBattle;
-
-import instances.AbstractInstance;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.concurrent.CopyOnWriteArrayList;
-
-import quests.Q10286_ReunionWithSirra.Q10286_ReunionWithSirra;
-
-import com.l2jserver.gameserver.ai.CtrlIntention;
-import com.l2jserver.gameserver.enums.MountType;
-import com.l2jserver.gameserver.instancemanager.InstanceManager;
-import com.l2jserver.gameserver.model.L2CommandChannel;
-import com.l2jserver.gameserver.model.L2Party;
-import com.l2jserver.gameserver.model.Location;
-import com.l2jserver.gameserver.model.PcCondOverride;
-import com.l2jserver.gameserver.model.actor.L2Attackable;
-import com.l2jserver.gameserver.model.actor.L2Character;
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2GrandBossInstance;
-import com.l2jserver.gameserver.model.actor.instance.L2NpcInstance;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.actor.instance.L2QuestGuardInstance;
-import com.l2jserver.gameserver.model.actor.instance.L2RaidBossInstance;
-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.model.quest.State;
-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.SystemMessage;
-import com.l2jserver.gameserver.taskmanager.DecayTaskManager;
-import com.l2jserver.gameserver.util.Util;
-
-/**
- * Ice Queen's Castle (Hard Battle) instance zone.
- * @author St3eT
- */
-public final class IceQueensCastleHardBattle extends AbstractInstance
-{
- protected class IQCNBWorld extends InstanceWorld
- {
- protected List playersInside = new ArrayList<>();
- protected List knightStatues = new ArrayList<>();
- protected List spawnedMobs = new CopyOnWriteArrayList<>();
- protected L2NpcInstance controller = null;
- protected L2GrandBossInstance freya = null;
- protected L2QuestGuardInstance supp_Jinia = null;
- protected L2QuestGuardInstance supp_Kegor = null;
- protected boolean isSupportActive = false;
- protected boolean canSpawnMobs = true;
- }
-
- // 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 = 29180; // Last freya (hard)
- private static final int INVISIBLE_NPC = 18919;
- private static final int KNIGHT = 18856; // Archery Knight (hard)
- private static final int GLACIER = 18853; // Glacier
- private static final int BREATH = 18854; // Archer's Breath
- private static final int GLAKIAS = 25700; // Glakias (hard)
- 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_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
- private static final SkillHolder KEGOR_SUPPORT = new SkillHolder(6289, 1); // Kegor's Courage
- private static final SkillHolder ICE_STONE = new SkillHolder(6301, 1); // Cold Mana's Fragment
- private static final SkillHolder CANCEL = new SkillHolder(4618, 1); // NPC Cancel PC Target
- 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 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
- // 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);
- private static final Location FREYA_CORPSE = new Location(114767, -114795, -11200, 0);
- private static final Location MIDDLE_POINT = new Location(114730, -114805, -11200);
- private static final Location KEGOR_FINISH = new Location(114659, -114796, -11205);
- private static final Location GLAKIAS_SPAWN = new Location(114707, -114799, -11199, 15956);
- private static final Location SUPP_JINIA_SPAWN = new Location(114751, -114781, -11205);
- private static final Location SUPP_KEGOR_SPAWN = new Location(114659, -114796, -11205);
- private static final Location BATTLE_PORT = new Location(114694, -113700, -11200);
- private static final Location CONTROLLER_LOC = new Location(114394, -112383, -11200);
- private static final Location[] ENTER_LOC =
- {
- new Location(114185, -112435, -11210),
- new Location(114183, -112280, -11210),
- new Location(114024, -112435, -11210),
- new Location(114024, -112278, -11210),
- new Location(113865, -112435, -11210),
- new Location(113865, -112276, -11210),
-
- };
- private static final Location[] STATUES_LOC =
- {
- new Location(113845, -116091, -11168, 8264),
- new Location(113381, -115622, -11168, 8264),
- new Location(113380, -113978, -11168, -8224),
- new Location(113845, -113518, -11168, -8224),
- new Location(115591, -113516, -11168, -24504),
- new Location(116053, -113981, -11168, -24504),
- new Location(116061, -115611, -11168, 24804),
- new Location(115597, -116080, -11168, 24804),
- new Location(112942, -115480, -10960, 52),
- new Location(112940, -115146, -10960, 52),
- new Location(112945, -114453, -10960, 52),
- new Location(112945, -114123, -10960, 52),
- new Location(116497, -114117, -10960, 32724),
- new Location(116499, -114454, -10960, 32724),
- new Location(116501, -115145, -10960, 32724),
- new Location(116502, -115473, -10960, 32724),
- };
- private static Location[] KNIGHTS_LOC =
- {
- new Location(114502, -115315, -11205, 15451),
- new Location(114937, -115323, -11205, 18106),
- new Location(114722, -115185, -11205, 16437),
- };
- // Misc
- private static final int MAX_PLAYERS = 45; // (hard)
- private static final int MIN_PLAYERS = 36; // (hard)
- private static final int MIN_LEVEL = 82;
- private static final int TEMPLATE_ID = 144; // Ice Queen's Castle (hard)
- private static final int DOOR_ID = 23140101;
-
- public IceQueensCastleHardBattle()
- {
- super(IceQueensCastleHardBattle.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);
- addSpellFinishedId(GLACIER, BREATH);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- if (event.equals("enter"))
- {
- enterInstance(player, new IQCNBWorld(), "IceQueensCastleHardBattle.xml", TEMPLATE_ID);
- }
- else
- {
- final InstanceWorld tmpworld = InstanceManager.getInstance().getWorld(npc.getInstanceId());
-
- if ((tmpworld != null) && (tmpworld instanceof IQCNBWorld))
- {
- final IQCNBWorld world = (IQCNBWorld) tmpworld;
- switch (event)
- {
- case "openDoor":
- {
- if (npc.isScriptValue(0))
- {
- npc.setScriptValue(1);
- openDoor(DOOR_ID, world.getInstanceId());
- world.controller = (L2NpcInstance) addSpawn(INVISIBLE_NPC, CONTROLLER_LOC, false, 0, true, world.getInstanceId());
- for (Location loc : STATUES_LOC)
- {
- if (loc.getZ() == -11168)
- {
- final L2Npc statue = addSpawn(INVISIBLE_NPC, loc, false, 0, false, world.getInstanceId());
- world.knightStatues.add(statue);
- }
- }
- for (L2PcInstance players : world.playersInside)
- {
- if ((players != null) && !players.isDead() && (players.getInstanceId() == world.getInstanceId()))
- {
- final QuestState qs = player.getQuestState(Q10286_ReunionWithSirra.class.getSimpleName());
- if ((qs != null) && (qs.getState() == State.STARTED) && qs.isCond(5))
- {
- qs.setCond(6, true);
- }
- }
- }
- startQuestTimer("STAGE_1_MOVIE", 60000, world.controller, null);
- }
- break;
- }
- case "portInside":
- {
- teleportPlayer(player, BATTLE_PORT, world.getInstanceId());
- break;
- }
- case "killFreya":
- {
- final QuestState qs = player.getQuestState(Q10286_ReunionWithSirra.class.getSimpleName());
- if ((qs != null) && (qs.getState() == State.STARTED) && qs.isCond(6))
- {
- qs.setMemoState(10);
- qs.setCond(7, true);
- }
- world.supp_Kegor.deleteMe();
- world.freya.decayMe();
- manageMovie(world, 20);
- cancelQuestTimer("FINISH_WORLD", world.controller, null);
- startQuestTimer("FINISH_WORLD", 58500, world.controller, null);
- break;
- }
- case "18851-01.html":
- {
- return event;
- }
- case "STAGE_1_MOVIE":
- {
- closeDoor(DOOR_ID, world.getInstanceId());
- world.setStatus(1);
- manageMovie(world, 15);
- startQuestTimer("STAGE_1_START", 53500, world.controller, null);
- break;
- }
- case "STAGE_1_START":
- {
- world.freya = (L2GrandBossInstance) addSpawn(FREYA_THRONE, FREYA_SPAWN, false, 0, true, world.getInstanceId());
- world.freya.setIsMortal(false);
- manageScreenMsg(world, NpcStringId.BEGIN_STAGE_1);
- startQuestTimer("CAST_BLIZZARD", 50000, world.controller, null);
- startQuestTimer("STAGE_1_SPAWN", 2000, world.freya, null);
- break;
- }
- case "STAGE_1_SPAWN":
- {
- notifyEvent("START_SPAWN", world.controller, null);
- break;
- }
- case "STAGE_1_FINISH":
- {
- world.freya.deleteMe();
- world.freya = null;
- manageDespawnMinions(world);
- manageMovie(world, 16);
- startQuestTimer("STAGE_1_PAUSE", 24100 - 1000, world.controller, null);
- break;
- }
- case "STAGE_1_PAUSE":
- {
- 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);
- world.setStatus(2);
- startQuestTimer("STAGE_2_START", 60000, world.controller, null);
- break;
- }
- case "STAGE_2_START":
- {
- world.canSpawnMobs = true;
- notifyEvent("START_SPAWN", world.controller, null);
- manageScreenMsg(world, NpcStringId.BEGIN_STAGE_2);
- break;
- }
- case "STAGE_2_MOVIE":
- {
- manageMovie(world, 23);
- startQuestTimer("STAGE_2_GLAKIAS", 7000, world.controller, null);
- break;
- }
- case "STAGE_2_GLAKIAS":
- {
- for (Location loc : STATUES_LOC)
- {
- if (loc.getZ() == -10960)
- {
- final L2Npc statue = addSpawn(INVISIBLE_NPC, loc, false, 0, false, world.getInstanceId());
- world.knightStatues.add(statue);
- startQuestTimer("SPAWN_KNIGHT", 5000, statue, null);
- }
- }
- final L2RaidBossInstance glakias = (L2RaidBossInstance) addSpawn(GLAKIAS, GLAKIAS_SPAWN, false, 0, true, world.getInstanceId());
- startQuestTimer("LEADER_DELAY", 5000, glakias, null);
- break;
- }
- case "STAGE_3_MOVIE":
- {
- manageMovie(world, 17);
- startQuestTimer("STAGE_3_START", 21500, world.controller, null);
- break;
- }
- case "STAGE_3_START":
- {
- for (L2PcInstance players : world.playersInside)
- {
- if (players != null)
- {
- players.broadcastPacket(ExChangeClientEffectInfo.STATIC_FREYA_DESTROYED);
- }
- }
- world.setStatus(4);
- world.freya.deleteMe();
- world.canSpawnMobs = true;
- world.freya = (L2GrandBossInstance) addSpawn(FREYA_STAND, 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);
- break;
- }
- case "START_MOVE":
- {
- if (npc.getVariables().getInt("FREYA_MOVE") == 0)
- {
- world.controller.getVariables().set("FREYA_MOVE", 1);
- world.freya.setIsRunning(true);
- world.freya.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, MIDDLE_POINT);
- }
- break;
- }
- case "CAST_BLIZZARD":
- {
- if (!world.freya.isInvul())
- {
- world.freya.doCast(BLIZZARD.getSkill());
- manageScreenMsg(world, NpcStringId.STRONG_MAGIC_POWER_CAN_BE_FELT_FROM_SOMEWHERE);
- }
-
- for (L2Attackable minion : world.spawnedMobs)
- {
- if ((minion != null) && !minion.isDead() && !minion.isInCombat())
- {
- manageRandomAttack(world, minion);
- }
- }
- startQuestTimer("CAST_BLIZZARD", getRandom(55, 60) * 1000, world.controller, null);
- break;
- }
- case "SPAWN_SUPPORT":
- {
- for (L2PcInstance players : world.playersInside)
- {
- if ((players != null) && (players.getInstanceId() == world.getInstanceId()))
- {
- players.setIsInvul(false);
- }
- }
- world.freya.setIsInvul(false);
- world.freya.disableCoreAI(false);
- manageScreenMsg(world, NpcStringId.BEGIN_STAGE_4);
- world.supp_Jinia = (L2QuestGuardInstance) addSpawn(SUPP_JINIA, SUPP_JINIA_SPAWN, false, 0, true, world.getInstanceId());
- world.supp_Jinia.setIsRunning(true);
- world.supp_Jinia.setIsInvul(true);
- world.supp_Jinia.setCanReturnToSpawnPoint(false);
- 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);
- startQuestTimer("GIVE_SUPPORT", 1000, world.controller, null);
- break;
- }
- case "GIVE_SUPPORT":
- {
- if (world.isSupportActive)
- {
- world.supp_Jinia.doCast(JINIA_SUPPORT.getSkill());
- world.supp_Kegor.doCast(KEGOR_SUPPORT.getSkill());
- startQuestTimer("GIVE_SUPPORT", 25000, world.controller, null);
- }
- break;
- }
- case "FINISH_STAGE":
- {
- world.supp_Jinia.deleteMe();
- world.supp_Jinia = null;
- world.freya.teleToLocation(FREYA_CORPSE);
- world.supp_Kegor.teleToLocation(KEGOR_FINISH);
- break;
- }
- case "START_SPAWN":
- {
- for (L2Npc statues : world.knightStatues)
- {
- notifyEvent("SPAWN_KNIGHT", statues, null);
- }
-
- for (Location loc : KNIGHTS_LOC)
- {
- final L2Attackable knight = (L2Attackable) addSpawn(KNIGHT, loc, false, 0, false, world.getInstanceId());
- knight.disableCoreAI(true);
- knight.setState(1);
- knight.getSpawn().setLocation(loc);
- world.spawnedMobs.add(knight);
- startQuestTimer("ICE_RUPTURE", getRandom(2, 5) * 1000, knight, null);
- }
-
- for (int i = 0; i < world.getStatus(); i++)
- {
- notifyEvent("SPAWN_GLACIER", world.controller, null);
- }
- break;
- }
- case "SPAWN_KNIGHT":
- {
- 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());
- 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);
- }
- break;
- }
- case "SPAWN_GLACIER":
- {
- 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 glacier = (L2Attackable) addSpawn(GLACIER, loc, false, 0, false, world.getInstanceId());
- glacier.setState(1);
- glacier.disableCoreAI(true);
- glacier.setIsImmobilized(true);
- world.spawnedMobs.add(glacier);
- startQuestTimer("CHANGE_STATE", 1400, glacier, null);
- }
- break;
- }
- case "ICE_RUPTURE":
- {
- if (npc.isCoreAIDisabled())
- {
- npc.disableCoreAI(false);
- npc.setIsImmobilized(false);
- npc.setState(2);
- manageRandomAttack(world, (L2Attackable) npc);
- }
- break;
- }
- case "FIND_TARGET":
- {
- manageRandomAttack(world, (L2Attackable) npc);
- break;
- }
- case "CHANGE_STATE":
- {
- npc.setState(2);
- startQuestTimer("CAST_SKILL", 20000, npc, null);
- break;
- }
- case "CAST_SKILL":
- {
- if (npc.isScriptValue(0) && !npc.isDead())
- {
- npc.setTarget(npc);
- npc.doCast(ICE_STONE.getSkill());
- npc.setScriptValue(1);
- }
- break;
- }
- case "SUICIDE":
- {
- npc.setState(3);
- npc.setIsMortal(true);
- npc.doDie(null);
- break;
- }
- case "BLIZZARD":
- {
- npc.getVariables().set("SUICIDE_COUNT", npc.getVariables().getInt("SUICIDE_COUNT") + 1);
-
- if (npc.getVariables().getInt("SUICIDE_ON") == 0)
- {
- if (npc.getVariables().getInt("SUICIDE_COUNT") == 2)
- {
- startQuestTimer("ELEMENTAL_SUICIDE", 20000, npc, null);
- }
- else
- {
- if (npc.checkDoCastConditions(BLIZZARD_BREATH.getSkill()) && !npc.isCastingNow())
- {
- npc.setTarget(npc);
- npc.doCast(BLIZZARD_BREATH.getSkill());
- }
- startQuestTimer("BLIZZARD", 20000, npc, null);
- }
- }
- break;
- }
- case "ELEMENTAL_SUICIDE":
- {
- npc.setTarget(npc);
- npc.doCast(SUICIDE_BREATH.getSkill());
- break;
- }
- case "ELEMENTAL_KILLED":
- {
- if (npc.getVariables().getInt("SUICIDE_ON") == 1)
- {
- npc.setTarget(npc);
- npc.doCast(SUICIDE_BREATH.getSkill());
- }
- 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)
- {
- world.freya.decayMe();
- }
-
- for (L2PcInstance players : world.playersInside)
- {
- if ((players != null))
- {
- players.broadcastPacket(ExChangeClientEffectInfo.STATIC_FREYA_DEFAULT);
- }
- }
- InstanceManager.getInstance().destroyInstance(world.getInstanceId());
- break;
- }
- case "LEADER_RANGEBUFF":
- {
- if (npc.checkDoCastConditions(SelfRangeBuff.getSkill()) && !npc.isCastingNow())
- {
- npc.setTarget(npc);
- npc.doCast(SelfRangeBuff.getSkill());
- }
- else
- {
- startQuestTimer("LEADER_RANGEBUFF", 30000, npc, null);
- }
- break;
- }
- case "LEADER_RANDOMIZE":
- {
- final L2Attackable mob = (L2Attackable) npc;
- mob.clearAggroList();
-
- for (L2Character characters : npc.getKnownList().getKnownPlayersInRadius(1000))
- {
- if ((characters != null))
- {
- mob.addDamageHate(characters, 0, getRandom(10000, 20000));
- }
- }
- startQuestTimer("LEADER_RANDOMIZE", 25000, npc, null);
- break;
- }
- case "LEADER_DASH":
- {
- final L2Character mostHated = ((L2Attackable) npc).getMostHated();
- if (getRandomBoolean() && !npc.isCastingNow() && (mostHated != null) && !mostHated.isDead() && (npc.calculateDistance(mostHated, true, false) < 1000))
- {
- npc.setTarget(mostHated);
- npc.doCast(LEADER_RUSH.getSkill());
- }
- startQuestTimer("LEADER_DASH", 10000, npc, null);
- break;
- }
- case "LEADER_DESTROY":
- {
- final L2Attackable mob = (L2Attackable) npc;
- if (npc.getVariables().getInt("OFF_SHOUT") == 0)
- {
- manageScreenMsg(world, NpcStringId.THE_SPACE_FEELS_LIKE_ITS_GRADUALLY_STARTING_TO_SHAKE);
-
- switch (getRandom(4))
- {
- case 0:
- {
- broadcastNpcSay(npc, Say2.SHOUT, NpcStringId.ARCHER_GIVE_YOUR_BREATH_FOR_THE_INTRUDER);
- break;
- }
- case 1:
- {
- broadcastNpcSay(npc, Say2.SHOUT, NpcStringId.MY_KNIGHTS_SHOW_YOUR_LOYALTY);
- break;
- }
- case 2:
- {
- broadcastNpcSay(npc, Say2.SHOUT, NpcStringId.I_CAN_TAKE_IT_NO_LONGER);
- break;
- }
- case 3:
- {
- broadcastNpcSay(npc, Say2.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());
- breath.setIsRunning(true);
- breath.addDamageHate(mob.getMostHated(), 0, 999);
- breath.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, mob.getMostHated());
- startQuestTimer("BLIZZARD", 20000, breath, null);
- world.spawnedMobs.add(breath);
- }
- break;
- }
- }
- }
- break;
- }
- case "LEADER_DELAY":
- {
- if (npc.getVariables().getInt("DELAY_VAL") == 0)
- {
- npc.getVariables().set("DELAY_VAL", 1);
- }
- break;
- }
- }
- }
- }
- return super.onAdvEvent(event, npc, player);
- }
-
- @Override
- public String onFirstTalk(L2Npc npc, L2PcInstance player)
- {
- final InstanceWorld tmpworld = InstanceManager.getInstance().getWorld(npc.getInstanceId());
-
- if (tmpworld instanceof IQCNBWorld)
- {
- final IQCNBWorld world = (IQCNBWorld) tmpworld;
-
- if (npc.getId() == SUPP_JINIA)
- {
- player.sendPacket(ActionFailed.STATIC_PACKET);
- return null;
- }
- else if (npc.getId() == SUPP_KEGOR)
- {
- if (world.isSupportActive)
- {
- player.sendPacket(ActionFailed.STATIC_PACKET);
- return null;
- }
- return "18851.html";
- }
- }
- player.sendPacket(ActionFailed.STATIC_PACKET);
- return null;
- }
-
- @Override
- public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon, Skill skill)
- {
- final InstanceWorld tmpworld = InstanceManager.getInstance().getWorld(npc.getInstanceId());
-
- if (tmpworld instanceof IQCNBWorld)
- {
- final IQCNBWorld world = (IQCNBWorld) tmpworld;
- switch (npc.getId())
- {
- case FREYA_THRONE:
- {
- if ((world.controller.getVariables().getInt("FREYA_MOVE") == 0) && world.isStatus(1))
- {
- world.controller.getVariables().set("FREYA_MOVE", 1);
- manageScreenMsg(world, NpcStringId.FREYA_HAS_STARTED_TO_MOVE);
- world.freya.setIsRunning(true);
- world.freya.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, MIDDLE_POINT);
- }
-
- if (npc.getCurrentHp() < (npc.getMaxHp() * 0.02))
- {
- notifyEvent("STAGE_1_FINISH", world.controller, null);
- cancelQuestTimer("CAST_BLIZZARD", world.controller, null);
- }
- else
- {
- if ((attacker.getMountType() == MountType.STRIDER) && !attacker.isAffectedBySkill(ANTI_STRIDER.getSkillId()) && !npc.isCastingNow())
- {
- if (!npc.isSkillDisabled(ANTI_STRIDER.getSkill()))
- {
- npc.setTarget(attacker);
- npc.doCast(ANTI_STRIDER.getSkill());
- }
- }
-
- final L2Character mostHated = ((L2Attackable) npc).getMostHated();
- final boolean canReachMostHated = (mostHated != null) && !mostHated.isDead() && (npc.calculateDistance(mostHated, true, false) <= 800);
-
- if (getRandom(10000) < 3333)
- {
- if (getRandomBoolean())
- {
- if ((npc.calculateDistance(attacker, true, false) <= 800) && npc.checkDoCastConditions(ICE_BALL.getSkill()) && !npc.isCastingNow())
- {
- npc.setTarget(attacker);
- npc.doCast(ICE_BALL.getSkill());
- }
- }
- else
- {
- if (canReachMostHated && npc.checkDoCastConditions(ICE_BALL.getSkill()) && !npc.isCastingNow())
- {
- npc.setTarget(mostHated);
- npc.doCast(ICE_BALL.getSkill());
- }
- }
- }
- else if (getRandom(10000) < 800)
- {
- if (getRandomBoolean())
- {
- if ((npc.calculateDistance(attacker, true, false) <= 800) && npc.checkDoCastConditions(SUMMON_ELEMENTAL.getSkill()) && !npc.isCastingNow())
- {
- npc.setTarget(attacker);
- npc.doCast(SUMMON_ELEMENTAL.getSkill());
- }
- }
- else
- {
- if (canReachMostHated && npc.checkDoCastConditions(SUMMON_ELEMENTAL.getSkill()) && !npc.isCastingNow())
- {
- npc.setTarget(mostHated);
- npc.doCast(SUMMON_ELEMENTAL.getSkill());
- }
- }
- }
- else if (getRandom(10000) < 1500)
- {
- if (!npc.isAffectedBySkill(SELF_NOVA.getSkillId()) && npc.checkDoCastConditions(SELF_NOVA.getSkill()) && !npc.isCastingNow())
- {
- npc.setTarget(npc);
- npc.doCast(SELF_NOVA.getSkill());
- }
- }
- }
- break;
- }
- case FREYA_STAND:
- {
- if (world.controller.getVariables().getInt("FREYA_MOVE") == 0)
- {
- world.controller.getVariables().set("FREYA_MOVE", 1);
- world.freya.setIsRunning(true);
- world.freya.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, MIDDLE_POINT);
- }
-
- if ((npc.getCurrentHp() < (npc.getMaxHp() * 0.2)) && !world.isSupportActive)
- {
- world.isSupportActive = true;
- world.freya.setIsInvul(true);
- world.freya.disableCoreAI(true);
- for (L2PcInstance players : world.playersInside)
- {
- players.setIsInvul(true);
- players.abortAttack();
- }
- manageMovie(world, 18);
- startQuestTimer("SPAWN_SUPPORT", 27000, world.controller, null);
- }
-
- if ((attacker.getMountType() == MountType.STRIDER) && !attacker.isAffectedBySkill(ANTI_STRIDER.getSkillId()) && !npc.isCastingNow())
- {
- if (!npc.isSkillDisabled(ANTI_STRIDER.getSkill()))
- {
- npc.setTarget(attacker);
- npc.doCast(ANTI_STRIDER.getSkill());
- }
- }
-
- final L2Character mostHated = ((L2Attackable) npc).getMostHated();
- final boolean canReachMostHated = (mostHated != null) && !mostHated.isDead() && (npc.calculateDistance(mostHated, true, false) <= 800);
-
- if (getRandom(10000) < 3333)
- {
- if (getRandomBoolean())
- {
- if ((npc.calculateDistance(attacker, true, false) <= 800) && npc.checkDoCastConditions(ICE_BALL.getSkill()) && !npc.isCastingNow())
- {
- npc.setTarget(attacker);
- npc.doCast(ICE_BALL.getSkill());
- }
- }
- else
- {
- if (canReachMostHated && npc.checkDoCastConditions(ICE_BALL.getSkill()) && !npc.isCastingNow())
- {
- npc.setTarget(mostHated);
- npc.doCast(ICE_BALL.getSkill());
- }
- }
- }
- else if (getRandom(10000) < 1333)
- {
- if (getRandomBoolean())
- {
- if ((npc.calculateDistance(attacker, true, false) <= 800) && npc.checkDoCastConditions(SUMMON_ELEMENTAL.getSkill()) && !npc.isCastingNow())
- {
- npc.setTarget(attacker);
- npc.doCast(SUMMON_ELEMENTAL.getSkill());
- }
- }
- else
- {
- if (canReachMostHated && npc.checkDoCastConditions(SUMMON_ELEMENTAL.getSkill()) && !npc.isCastingNow())
- {
- npc.setTarget(mostHated);
- npc.doCast(SUMMON_ELEMENTAL.getSkill());
- }
- }
- }
- else if (getRandom(10000) < 1500)
- {
- if (!npc.isAffectedBySkill(SELF_NOVA.getSkillId()) && npc.checkDoCastConditions(SELF_NOVA.getSkill()) && !npc.isCastingNow())
- {
- npc.setTarget(npc);
- npc.doCast(SELF_NOVA.getSkill());
- }
- }
- else if (getRandom(10000) < 1333)
- {
- if (!npc.isAffectedBySkill(REFLECT_MAGIC.getSkillId()) && npc.checkDoCastConditions(REFLECT_MAGIC.getSkill()) && !npc.isCastingNow())
- {
- npc.setTarget(npc);
- npc.doCast(REFLECT_MAGIC.getSkill());
- }
- }
- break;
- }
- case GLACIER:
- {
- if (npc.isScriptValue(0) && (npc.getCurrentHp() < (npc.getMaxHp() * 0.5)))
- {
- npc.setTarget(attacker);
- npc.doCast(ICE_STONE.getSkill());
- npc.setScriptValue(1);
- }
- break;
- }
- case BREATH:
- {
- if ((npc.getCurrentHp() < (npc.getMaxHp() / 20)) && (npc.getVariables().getInt("SUICIDE_ON", 0) == 0))
- {
- npc.getVariables().set("SUICIDE_ON", 1);
- startQuestTimer("ELEMENTAL_KILLED", 1000, npc, null);
- }
- break;
- }
- case KNIGHT:
- {
- if (npc.isCoreAIDisabled())
- {
- manageRandomAttack(world, (L2Attackable) npc);
- npc.disableCoreAI(false);
- npc.setIsImmobilized(false);
- npc.setState(2);
- cancelQuestTimer("ICE_RUPTURE", npc, null);
- }
- break;
- }
- case GLAKIAS:
- {
- if (npc.getCurrentHp() < (npc.getMaxHp() * 0.02))
- {
- if (npc.getVariables().getInt("OFF_SHOUT") == 0)
- {
- npc.getVariables().set("OFF_SHOUT", 1);
- npc.getVariables().set("DELAY_VAL", 2);
- npc.setTarget(attacker);
- npc.doCast(CANCEL.getSkill());
- }
- else if (npc.getVariables().getInt("OFF_SHOUT") == 1)
- {
- npc.setTarget(attacker);
- npc.doCast(CANCEL.getSkill());
- }
- }
- else if ((npc.getVariables().getInt("OFF_SHOUT") == 0) && (npc.getVariables().getInt("DELAY_VAL") == 1))
- {
- final L2Character mostHated = ((L2Attackable) npc).getMostHated();
- final boolean canReachMostHated = (mostHated != null) && !mostHated.isDead() && (npc.calculateDistance(mostHated, true, false) < 1000);
-
- if (npc.getVariables().getInt("TIMER_ON") == 0)
- {
- npc.getVariables().set("TIMER_ON", 1);
- startQuestTimer("LEADER_RANGEBUFF", getRandom(5, 30) * 1000, npc, null);
- startQuestTimer("LEADER_RANDOMIZE", 25000, npc, null);
- startQuestTimer("LEADER_DASH", 5000, npc, null);
- startQuestTimer("LEADER_DESTROY", 60000, npc, null);
- }
-
- if (getRandom(10000) < 2500)
- {
- if (getRandom(10000) < 2500)
- {
- if (npc.checkDoCastConditions(POWER_STRIKE.getSkill()) && !npc.isCastingNow())
- {
- npc.setTarget(attacker);
- npc.doCast(POWER_STRIKE.getSkill());
- }
- }
- else if (npc.checkDoCastConditions(POWER_STRIKE.getSkill()) && !npc.isCastingNow() && canReachMostHated)
- {
- npc.setTarget(((L2Attackable) npc).getMostHated());
- npc.doCast(POWER_STRIKE.getSkill());
- }
- }
- else if (getRandom(10000) < 1500)
- {
- if (getRandomBoolean())
- {
- if (npc.checkDoCastConditions(POINT_TARGET.getSkill()) && !npc.isCastingNow())
- {
- npc.setTarget(attacker);
- npc.doCast(POINT_TARGET.getSkill());
- }
- }
- else if (npc.checkDoCastConditions(POINT_TARGET.getSkill()) && !npc.isCastingNow() && canReachMostHated)
- {
- npc.setTarget(((L2Attackable) npc).getMostHated());
- npc.doCast(POINT_TARGET.getSkill());
- }
- }
- else if (getRandom(10000) < 1500)
- {
- if (getRandomBoolean())
- {
- if (npc.checkDoCastConditions(CYLINDER_THROW.getSkill()) && !npc.isCastingNow())
- {
- npc.setTarget(attacker);
- npc.doCast(CYLINDER_THROW.getSkill());
- }
- }
- else if (npc.checkDoCastConditions(CYLINDER_THROW.getSkill()) && !npc.isCastingNow() && canReachMostHated)
- {
- npc.setTarget(((L2Attackable) npc).getMostHated());
- npc.doCast(CYLINDER_THROW.getSkill());
- }
- }
- }
- break;
- }
- }
- }
- return super.onAttack(npc, attacker, damage, isSummon, skill);
- }
-
- @Override
- public String onSpellFinished(L2Npc npc, L2PcInstance player, Skill skill)
- {
- final InstanceWorld tmpworld = InstanceManager.getInstance().getWorld(npc.getInstanceId());
-
- if (tmpworld instanceof IQCNBWorld)
- {
- final IQCNBWorld world = (IQCNBWorld) tmpworld;
-
- switch (npc.getId())
- {
- case GLACIER:
- {
- if (skill == ICE_STONE.getSkill())
- {
- if (getRandom(100) < 75)
- {
- final L2Attackable breath = (L2Attackable) addSpawn(BREATH, npc.getLocation(), false, 0, false, world.getInstanceId());
- if (player != null)
- {
- breath.setIsRunning(true);
- breath.addDamageHate(player, 0, 999);
- breath.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, player);
- }
- else
- {
- manageRandomAttack(world, breath);
- }
- world.spawnedMobs.add(breath);
- startQuestTimer("BLIZZARD", 20000, breath, null);
- }
- notifyEvent("SUICIDE", npc, null);
- }
- break;
- }
- case BREATH:
- {
- if (skill == SUICIDE_BREATH.getSkill())
- {
- npc.doDie(null);
- }
- break;
- }
- }
- }
- return super.onSpellFinished(npc, player, skill);
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
- {
- final InstanceWorld tmpworld = InstanceManager.getInstance().getWorld(npc.getInstanceId());
-
- if (tmpworld instanceof IQCNBWorld)
- {
- final IQCNBWorld world = (IQCNBWorld) tmpworld;
- switch (npc.getId())
- {
- case GLAKIAS:
- {
- manageDespawnMinions(world);
- manageTimer(world, 60);
- startQuestTimer("STAGE_3_MOVIE", 60000, world.controller, null);
- break;
- }
- case FREYA_STAND:
- {
- 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);
- startQuestTimer("FINISH_STAGE", 16000, world.controller, null);
- startQuestTimer("FINISH_WORLD", 300000, world.controller, null);
- break;
- }
- case KNIGHT:
- {
- final L2Npc spawnedBy = npc.getVariables().getObject("SPAWNED_NPC", L2Npc.class);
- final NpcVariables var = world.controller.getVariables();
- int knightCount = var.getInt("KNIGHT_COUNT");
-
- if ((var.getInt("FREYA_MOVE") == 0) && world.isStatus(1))
- {
- var.set("FREYA_MOVE", 1);
- manageScreenMsg(world, NpcStringId.FREYA_HAS_STARTED_TO_MOVE);
- world.freya.setIsRunning(true);
- world.freya.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, MIDDLE_POINT);
- }
-
- if ((knightCount < 10) && (world.isStatus(2)))
- {
- knightCount++;
- var.set("KNIGHT_COUNT", knightCount);
-
- if (knightCount == 10)
- {
- notifyEvent("STAGE_2_MOVIE", world.controller, null);
- world.setStatus(3);
- }
- }
-
- if (spawnedBy != null)
- {
- startQuestTimer("SPAWN_KNIGHT", getRandom(30, 60) * 1000, spawnedBy, null);
- }
- world.spawnedMobs.remove(npc);
- break;
- }
- case GLACIER:
- {
- startQuestTimer("SPAWN_GLACIER", getRandom(30, 60) * 1000, world.controller, null);
- world.spawnedMobs.remove(npc);
- break;
- }
- case BREATH:
- {
- world.spawnedMobs.remove(npc);
- break;
- }
- }
- }
- return super.onKill(npc, killer, isSummon);
- }
-
- @Override
- public void onEnterInstance(L2PcInstance player, InstanceWorld world, boolean firstEntrance)
- {
- if (firstEntrance)
- {
- if (!player.isInParty())
- {
- managePlayerEnter(player, (IQCNBWorld) world);
- }
- else if (player.getParty().isInCommandChannel())
- {
- for (L2PcInstance players : player.getParty().getCommandChannel().getMembers())
- {
- managePlayerEnter(players, (IQCNBWorld) world);
- }
- }
- else
- {
- for (L2PcInstance players : player.getParty().getMembers())
- {
- managePlayerEnter(players, (IQCNBWorld) world);
- }
- }
- }
- else
- {
- teleportPlayer(player, world.isStatus(4) ? BATTLE_PORT : ENTER_LOC[getRandom(ENTER_LOC.length)], world.getInstanceId());
- }
- }
-
- private void managePlayerEnter(L2PcInstance player, IQCNBWorld world)
- {
- world.playersInside.add(player);
- world.addAllowed(player.getObjectId());
- teleportPlayer(player, ENTER_LOC[getRandom(ENTER_LOC.length)], world.getInstanceId(), false);
- }
-
- @Override
- protected boolean checkConditions(L2PcInstance player)
- {
- final L2Party party = player.getParty();
- final L2CommandChannel channel = party != null ? party.getCommandChannel() : null;
-
- if (player.isGM() && player.canOverrideCond(PcCondOverride.INSTANCE_CONDITIONS))
- {
- return true;
- }
-
- if (party == null)
- {
- player.sendPacket(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER);
- return false;
- }
- else if (channel == null)
- {
- player.sendPacket(SystemMessageId.YOU_CANNOT_ENTER_BECAUSE_YOU_ARE_NOT_ASSOCIATED_WITH_THE_CURRENT_COMMAND_CHANNEL);
- return false;
- }
- else if (player != channel.getLeader())
- {
- player.sendPacket(SystemMessageId.ONLY_A_PARTY_LEADER_CAN_MAKE_THE_REQUEST_TO_ENTER);
- return false;
- }
- else if ((channel.getMemberCount() < MIN_PLAYERS) || (channel.getMemberCount() > MAX_PLAYERS))
- {
- player.sendPacket(SystemMessageId.YOU_CANNOT_ENTER_DUE_TO_THE_PARTY_HAVING_EXCEEDED_THE_LIMIT);
- return false;
- }
- for (L2PcInstance channelMember : channel.getMembers())
- {
- if (channelMember.getLevel() < MIN_LEVEL)
- {
- SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.C1_S_LEVEL_DOES_NOT_CORRESPOND_TO_THE_REQUIREMENTS_FOR_ENTRY);
- sm.addPcName(channelMember);
- party.broadcastPacket(sm);
- return false;
- }
- else if (!Util.checkIfInRange(1000, player, channelMember, true))
- {
- SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.C1_IS_IN_A_LOCATION_WHICH_CANNOT_BE_ENTERED_THEREFORE_IT_CANNOT_BE_PROCESSED);
- sm.addPcName(channelMember);
- party.broadcastPacket(sm);
- return false;
- }
- else if (System.currentTimeMillis() < InstanceManager.getInstance().getInstanceTime(channelMember.getObjectId(), TEMPLATE_ID))
- {
- SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.C1_MAY_NOT_RE_ENTER_YET);
- sm.addPcName(channelMember);
- party.broadcastPacket(sm);
- return false;
- }
- }
- return true;
- }
-
- private void manageRandomAttack(IQCNBWorld world, L2Attackable mob)
- {
- final List players = new ArrayList<>();
- for (L2PcInstance player : world.playersInside)
- {
- if ((player != null) && !player.isDead() && (player.getInstanceId() == world.getInstanceId()) && !player.isInvisible())
- {
- players.add(player);
- }
- }
-
- Collections.shuffle(players);
- final L2PcInstance target = (!players.isEmpty()) ? players.get(0) : null;
- if (target != null)
- {
- mob.addDamageHate(target, 0, 999);
- mob.setIsRunning(true);
- mob.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);
- }
- else
- {
- startQuestTimer("FIND_TARGET", 10000, mob, null);
- }
- }
-
- private void manageDespawnMinions(IQCNBWorld world)
- {
- world.canSpawnMobs = false;
- for (L2Attackable mobs : world.spawnedMobs)
- {
- if ((mobs != null) && !mobs.isDead())
- {
- mobs.doDie(null);
- }
- }
- }
-
- private void manageTimer(IQCNBWorld world, int time)
- {
- 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"));
- }
- }
- }
-
- private void manageScreenMsg(IQCNBWorld world, NpcStringId stringId)
- {
- for (L2PcInstance players : world.playersInside)
- {
- if ((players != null) && (players.getInstanceId() == world.getInstanceId()))
- {
- showOnScreenMsg(players, stringId, 2, 6000);
- }
- }
- }
-
- private void manageMovie(IQCNBWorld world, int movie)
- {
- for (L2PcInstance players : world.playersInside)
- {
- if ((players != null) && (players.getInstanceId() == world.getInstanceId()))
- {
- players.showQuestMovie(movie);
- }
- }
- }
-}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/instances/IceQueensCastleNormalBattle/18851-01.html b/trunk/dist/game/data/scripts/instances/IceQueensCastleNormalBattle/18851-01.html
deleted file mode 100644
index 8ca0096f88..0000000000
--- a/trunk/dist/game/data/scripts/instances/IceQueensCastleNormalBattle/18851-01.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Kegor:
-I'd entrust your associate with this mission, but..
-
diff --git a/trunk/dist/game/data/scripts/instances/IceQueensCastleNormalBattle/18851.html b/trunk/dist/game/data/scripts/instances/IceQueensCastleNormalBattle/18851.html
deleted file mode 100644
index b4be1ea0f2..0000000000
--- a/trunk/dist/game/data/scripts/instances/IceQueensCastleNormalBattle/18851.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Kegor:
-Without you, we would have failed. I can't thank you enough.
-Freya's last breath will flutter against your blade, I can feel it!
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/instances/InstanceLoader.java b/trunk/dist/game/data/scripts/instances/InstanceLoader.java
index e0d0c31c7e..02d3dc8ad6 100644
--- a/trunk/dist/game/data/scripts/instances/InstanceLoader.java
+++ b/trunk/dist/game/data/scripts/instances/InstanceLoader.java
@@ -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,
diff --git a/trunk/dist/game/data/scripts/instances/LibraryOfSages/LibraryOfSages.java b/trunk/dist/game/data/scripts/instances/LibraryOfSages/LibraryOfSages.java
index 0dd721791e..96b16e3663 100644
--- a/trunk/dist/game/data/scripts/instances/LibraryOfSages/LibraryOfSages.java
+++ b/trunk/dist/game/data/scripts/instances/LibraryOfSages/LibraryOfSages.java
@@ -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;
}
diff --git a/trunk/dist/game/data/scripts/instances/MithrilMine/MithrilMine.java b/trunk/dist/game/data/scripts/instances/MithrilMine/MithrilMine.java
index db57f419fe..802c064e3d 100644
--- a/trunk/dist/game/data/scripts/instances/MithrilMine/MithrilMine.java
+++ b/trunk/dist/game/data/scripts/instances/MithrilMine/MithrilMine.java
@@ -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
diff --git a/trunk/dist/game/data/scripts/instances/MonasteryOfSilence1/MonasteryOfSilence1.java b/trunk/dist/game/data/scripts/instances/MonasteryOfSilence1/MonasteryOfSilence1.java
index 2e4a5e028a..612ecca5c3 100644
--- a/trunk/dist/game/data/scripts/instances/MonasteryOfSilence1/MonasteryOfSilence1.java
+++ b/trunk/dist/game/data/scripts/instances/MonasteryOfSilence1/MonasteryOfSilence1.java
@@ -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;
diff --git a/trunk/dist/game/data/scripts/instances/MonasteryOfSilence2/MonasteryOfSilence2.java b/trunk/dist/game/data/scripts/instances/MonasteryOfSilence2/MonasteryOfSilence2.java
index 1532442f72..4780e7bf6d 100644
--- a/trunk/dist/game/data/scripts/instances/MonasteryOfSilence2/MonasteryOfSilence2.java
+++ b/trunk/dist/game/data/scripts/instances/MonasteryOfSilence2/MonasteryOfSilence2.java
@@ -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));
}
}
}
diff --git a/trunk/dist/game/data/scripts/instances/PailakaSongOfIceAndFire/PailakaSongOfIceAndFire.java b/trunk/dist/game/data/scripts/instances/PailakaSongOfIceAndFire/PailakaSongOfIceAndFire.java
index 37c64ca358..8f2f0ecb42 100644
--- a/trunk/dist/game/data/scripts/instances/PailakaSongOfIceAndFire/PailakaSongOfIceAndFire.java
+++ b/trunk/dist/game/data/scripts/instances/PailakaSongOfIceAndFire/PailakaSongOfIceAndFire.java
@@ -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":
diff --git a/trunk/dist/game/data/scripts/instances/SanctumOftheLordsOfDawn/SanctumOftheLordsOfDawn.java b/trunk/dist/game/data/scripts/instances/SanctumOftheLordsOfDawn/SanctumOftheLordsOfDawn.java
index 085709ae65..f1da6d7e3c 100644
--- a/trunk/dist/game/data/scripts/instances/SanctumOftheLordsOfDawn/SanctumOftheLordsOfDawn.java
+++ b/trunk/dist/game/data/scripts/instances/SanctumOftheLordsOfDawn/SanctumOftheLordsOfDawn.java
@@ -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;
}
}
diff --git a/trunk/dist/game/data/scripts/quests/Q00011_SecretMeetingWithKetraOrcs/31256-01.html b/trunk/dist/game/data/scripts/quests/Q00011_SecretMeetingWithKetraOrcs/31256-01.html
deleted file mode 100644
index 8f511283c0..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00011_SecretMeetingWithKetraOrcs/31256-01.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Trader Leon:
-All right. Guard Cadmon sent you here, didn't he? I'm glad you made it here. A number of young men have tried to come here, but they all ran away even before they reached the Orc barracks. I've sustained a great loss.
-As you know, the Ketra Orcs are the most daring and ferocious tribe. They never lag behind in terms of body structure or strength. So those who are weak run away at the sight of those orcs, causing me a great deal of trouble. But since Cadmon sent you here and you seem to possess great skills, I guess I don't have to worry about that. The task is simple. Take this box of supplies to the Ketra Orc outpost and deliver them to Messenger Wahkan. It won't be difficult to find Wahkan since he's staying in the base center. Although it may be a little difficult to enter the base...
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00011_SecretMeetingWithKetraOrcs/31256-02.html b/trunk/dist/game/data/scripts/quests/Q00011_SecretMeetingWithKetraOrcs/31256-02.html
deleted file mode 100644
index 5aefb66dca..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00011_SecretMeetingWithKetraOrcs/31256-02.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Trader Leon:
-Man, you are really a dependable person. Don't forget.
-You must take the box of supplies to Messenger Wahkan of Ketra at the Ketra Orc base.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00011_SecretMeetingWithKetraOrcs/31256-03.html b/trunk/dist/game/data/scripts/quests/Q00011_SecretMeetingWithKetraOrcs/31256-03.html
deleted file mode 100644
index 8b36993b04..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00011_SecretMeetingWithKetraOrcs/31256-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Trader Leon:
-What are you doing? Take the box of supplies I gave you to Messenger Wahkan of Ketra. You are already running late. Hurry. They're very bad-tempered.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00011_SecretMeetingWithKetraOrcs/31296-01.htm b/trunk/dist/game/data/scripts/quests/Q00011_SecretMeetingWithKetraOrcs/31296-01.htm
deleted file mode 100644
index 451ccfb0aa..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00011_SecretMeetingWithKetraOrcs/31296-01.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Guard Cadmon:
-Are you interested in the Ketra Orcs, stranger? Well, if you are, I can tell you an interesting story. Right now, the Ketra Orcs are hiring mercenaries! It's a great opportunity to get into their outpost under the pretext of delivering military supplies! Are you interested?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00011_SecretMeetingWithKetraOrcs/31296-02.html b/trunk/dist/game/data/scripts/quests/Q00011_SecretMeetingWithKetraOrcs/31296-02.html
deleted file mode 100644
index dfc15d1595..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00011_SecretMeetingWithKetraOrcs/31296-02.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Guard Cadmon:
-I appreciate your interest, but the Ketra Orcs are some dangerous characters! You wouldn't stand a chance against them!
-(Only a character of level 74 or above may undertake this quest.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00011_SecretMeetingWithKetraOrcs/31296-03.html b/trunk/dist/game/data/scripts/quests/Q00011_SecretMeetingWithKetraOrcs/31296-03.html
deleted file mode 100644
index 1ff9be750c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00011_SecretMeetingWithKetraOrcs/31296-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Guard Cadmon:
-Good! Find Trader Leon at the weapons and armor shop. He'll give you the details. Basically, you're delivering goods to them. The next step is up to you. You will either gain their trust or become their enemy!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00011_SecretMeetingWithKetraOrcs/31296-04.html b/trunk/dist/game/data/scripts/quests/Q00011_SecretMeetingWithKetraOrcs/31296-04.html
deleted file mode 100644
index f1a1541bea..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00011_SecretMeetingWithKetraOrcs/31296-04.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Guard Cadmon:
-Find Trader Leon in the weapons and armor shop to deliver military supplies to the Ketra Orcs.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00011_SecretMeetingWithKetraOrcs/31371-01.html b/trunk/dist/game/data/scripts/quests/Q00011_SecretMeetingWithKetraOrcs/31371-01.html
deleted file mode 100644
index f9f6509611..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00011_SecretMeetingWithKetraOrcs/31371-01.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Ketra's Messenger Wahkan:
-What brings you to the land of the Ketra, stranger?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00011_SecretMeetingWithKetraOrcs/31371-02.html b/trunk/dist/game/data/scripts/quests/Q00011_SecretMeetingWithKetraOrcs/31371-02.html
deleted file mode 100644
index aa51fe5b85..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00011_SecretMeetingWithKetraOrcs/31371-02.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Ketra's Messenger Wahkan:
-Good job, stranger.
-Well, are you a mercenary? Will you fight alongside the Ketra Orcs?
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00011_SecretMeetingWithKetraOrcs/31371-03.html b/trunk/dist/game/data/scripts/quests/Q00011_SecretMeetingWithKetraOrcs/31371-03.html
deleted file mode 100644
index 570ea89509..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00011_SecretMeetingWithKetraOrcs/31371-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Ketra's Messenger Wahkan:
-You don't have required items.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00011_SecretMeetingWithKetraOrcs/Q00011_SecretMeetingWithKetraOrcs.java b/trunk/dist/game/data/scripts/quests/Q00011_SecretMeetingWithKetraOrcs/Q00011_SecretMeetingWithKetraOrcs.java
deleted file mode 100644
index 0e8ad431fc..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00011_SecretMeetingWithKetraOrcs/Q00011_SecretMeetingWithKetraOrcs.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00011_SecretMeetingWithKetraOrcs;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-
-/**
- * Secret Meeting With Ketra Orcs (11)
- * Original Jython script by Emperorc.
- * @author nonom
- */
-public class Q00011_SecretMeetingWithKetraOrcs extends Quest
-{
- // NPCs
- private static final int CADMON = 31296;
- private static final int LEON = 31256;
- private static final int WAHKAN = 31371;
- // Item
- private static final int BOX = 7231;
-
- public Q00011_SecretMeetingWithKetraOrcs()
- {
- super(11, Q00011_SecretMeetingWithKetraOrcs.class.getSimpleName(), "Secret Meeting With Ketra Orcs");
- addStartNpc(CADMON);
- addTalkId(CADMON, LEON, WAHKAN);
- registerQuestItems(BOX);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- String htmltext = event;
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return htmltext;
- }
-
- switch (event)
- {
- case "31296-03.html":
- st.startQuest();
- break;
- case "31256-02.html":
- if (st.isCond(1))
- {
- st.setCond(2, true);
- st.giveItems(BOX, 1);
- }
- break;
- case "31371-02.html":
- if (st.isCond(2) && st.hasQuestItems(BOX))
- {
- st.addExpAndSp(233125, 18142);
- st.exitQuest(false, true);
- }
- else
- {
- htmltext = "31371-03.html";
- }
- break;
- }
- return htmltext;
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- String htmltext = getNoQuestMsg(player);
- final QuestState st = getQuestState(player, true);
- if (st == null)
- {
- return htmltext;
- }
-
- int npcId = npc.getId();
- switch (st.getState())
- {
- case State.COMPLETED:
- htmltext = getAlreadyCompletedMsg(player);
- break;
- case State.CREATED:
- if (npcId == CADMON)
- {
- htmltext = (player.getLevel() >= 74) ? "31296-01.htm" : "31296-02.html";
- }
- break;
- case State.STARTED:
- if ((npcId == CADMON) && st.isCond(1))
- {
- htmltext = "31296-04.html";
- }
- else if (npcId == LEON)
- {
- if (st.isCond(1))
- {
- htmltext = "31256-01.html";
-
- }
- else if (st.isCond(2))
- {
- htmltext = "31256-03.html";
- }
- }
- else if ((npcId == WAHKAN) && st.isCond(2))
- {
- htmltext = "31371-01.html";
- }
- break;
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00012_SecretMeetingWithVarkaSilenos/31258-01.html b/trunk/dist/game/data/scripts/quests/Q00012_SecretMeetingWithVarkaSilenos/31258-01.html
deleted file mode 100644
index 69451aec2c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00012_SecretMeetingWithVarkaSilenos/31258-01.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Trader Helmut:
-Did Guard Cadmon send you? All right. I guess you are good enough.
-Bear in mind that the Varka Silenos are different from other Silenos. They may look alike, but the Varka Silenos have traditionally been fearless soldiers. They are completely different from other Silenos who are engaged in stock farming. They are very particular about manners. You should try not to offend them.
-Okay, here's the task. You need to take this box of supplies to the Varka Silenos base. Sounds simple, right? Even a three year old can do this.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00012_SecretMeetingWithVarkaSilenos/31258-02.html b/trunk/dist/game/data/scripts/quests/Q00012_SecretMeetingWithVarkaSilenos/31258-02.html
deleted file mode 100644
index cccaae7a22..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00012_SecretMeetingWithVarkaSilenos/31258-02.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Trader Helmut:
-Good, good. I like your straight-forward personality. Now take this box of supplies to Naran Ashanuk Herald of Varka at the Varka Silenos base.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00012_SecretMeetingWithVarkaSilenos/31258-03.html b/trunk/dist/game/data/scripts/quests/Q00012_SecretMeetingWithVarkaSilenos/31258-03.html
deleted file mode 100644
index 447dc00d76..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00012_SecretMeetingWithVarkaSilenos/31258-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Trader Helmut:
-What are you still doing here? Take the box of supplies to Naran Ashanuk Herald of Varka!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00012_SecretMeetingWithVarkaSilenos/31296-01.htm b/trunk/dist/game/data/scripts/quests/Q00012_SecretMeetingWithVarkaSilenos/31296-01.htm
deleted file mode 100644
index 873e418c0b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00012_SecretMeetingWithVarkaSilenos/31296-01.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Guard Cadmon:
-Are you interested in the Varka Silenos, stranger? Well, if you are, I know an interesting story. They've been hiring mercenaries lately! It's a great opportunity to gain access to their barracks on the pretext of smuggling weapons in!
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00012_SecretMeetingWithVarkaSilenos/31296-02.html b/trunk/dist/game/data/scripts/quests/Q00012_SecretMeetingWithVarkaSilenos/31296-02.html
deleted file mode 100644
index 6cb555f832..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00012_SecretMeetingWithVarkaSilenos/31296-02.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Guard Cadmon:
-I appreciate your interest, but the Varkas aren't your average Silenos! They're some very rough characters! You wouldn't stand a chance!
-(Only a character of level 74 or above may undertake this quest.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00012_SecretMeetingWithVarkaSilenos/31296-03.html b/trunk/dist/game/data/scripts/quests/Q00012_SecretMeetingWithVarkaSilenos/31296-03.html
deleted file mode 100644
index a5029c40c7..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00012_SecretMeetingWithVarkaSilenos/31296-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Guard Cadmon:
-Good! Find Trader Helmut at the weapons and armor shop. He'll give you the details. Basically, you're delivering goods to them. It won't be very difficult. After the delivery, the next step is up to you. It depends entirely on how you act as to whether you gain their trust or become their enemy. Good luck!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00012_SecretMeetingWithVarkaSilenos/31296-04.html b/trunk/dist/game/data/scripts/quests/Q00012_SecretMeetingWithVarkaSilenos/31296-04.html
deleted file mode 100644
index 5f846df672..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00012_SecretMeetingWithVarkaSilenos/31296-04.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Guard Cadmon:
-Go to the weapons and armor shop, and tell Trader Helmut. Hurry up.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00012_SecretMeetingWithVarkaSilenos/31378-01.html b/trunk/dist/game/data/scripts/quests/Q00012_SecretMeetingWithVarkaSilenos/31378-01.html
deleted file mode 100644
index c4d6d0b6c5..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00012_SecretMeetingWithVarkaSilenos/31378-01.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Varka's Messenger Naran Ashanuk:
- What brings you to this land of the Varka, traveler of Zephyr Winds?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00012_SecretMeetingWithVarkaSilenos/31378-02.html b/trunk/dist/game/data/scripts/quests/Q00012_SecretMeetingWithVarkaSilenos/31378-02.html
deleted file mode 100644
index 5f94371399..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00012_SecretMeetingWithVarkaSilenos/31378-02.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Varka's Messenger Naran Ashanuk:
-Were these supplies sent by Helmut of Goddard? Thank you for bringing them so far! We Varkas never forget our debts!
-You look like a very strong person! We Varka have been at war with the Ketra Orcs for a very long time. Will you help us? We never forget our friends!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00012_SecretMeetingWithVarkaSilenos/31378-03.html b/trunk/dist/game/data/scripts/quests/Q00012_SecretMeetingWithVarkaSilenos/31378-03.html
deleted file mode 100644
index e085000b26..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00012_SecretMeetingWithVarkaSilenos/31378-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Varka's Messenger Naran Ashanuk:
-You don't have required items.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00012_SecretMeetingWithVarkaSilenos/Q00012_SecretMeetingWithVarkaSilenos.java b/trunk/dist/game/data/scripts/quests/Q00012_SecretMeetingWithVarkaSilenos/Q00012_SecretMeetingWithVarkaSilenos.java
deleted file mode 100644
index 436e306bfa..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00012_SecretMeetingWithVarkaSilenos/Q00012_SecretMeetingWithVarkaSilenos.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00012_SecretMeetingWithVarkaSilenos;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-
-/**
- * Secret Meeting With Varka Silenos (12)
- * Original Jython script by Emperorc.
- * @author nonom
- */
-public class Q00012_SecretMeetingWithVarkaSilenos extends Quest
-{
- // NPCs
- private static final int CADMON = 31296;
- private static final int HELMUT = 31258;
- private static final int NARAN = 31378;
- // Item
- private static final int BOX = 7232;
-
- public Q00012_SecretMeetingWithVarkaSilenos()
- {
- super(12, Q00012_SecretMeetingWithVarkaSilenos.class.getSimpleName(), "Secret Meeting With Varka Silenos");
- addStartNpc(CADMON);
- addTalkId(CADMON, HELMUT, NARAN);
- registerQuestItems(BOX);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- String htmltext = event;
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return htmltext;
- }
-
- switch (event)
- {
- case "31296-03.html":
- st.startQuest();
- break;
- case "31258-02.html":
- if (st.isCond(1))
- {
- st.setCond(2, true);
- giveItems(player, BOX, 1);
- }
- break;
- case "31378-02.html":
- if (st.isCond(2) && st.hasQuestItems(BOX))
- {
- st.addExpAndSp(233125, 18142);
- st.exitQuest(false, true);
- }
- else
- {
- htmltext = "31378-03.html";
- }
- break;
- }
- return htmltext;
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- String htmltext = getNoQuestMsg(player);
- final QuestState st = getQuestState(player, true);
- if (st == null)
- {
- return htmltext;
- }
-
- final int npcId = npc.getId();
- switch (st.getState())
- {
- case State.COMPLETED:
- htmltext = getAlreadyCompletedMsg(player);
- break;
- case State.CREATED:
- if (npcId == CADMON)
- {
- htmltext = (player.getLevel() >= 74) ? "31296-01.htm" : "31296-02.html";
- }
- break;
- case State.STARTED:
- final int cond = st.getInt("cond");
- if ((npcId == CADMON) && (cond == 1))
- {
- htmltext = "31296-04.html";
- }
- else if (npcId == HELMUT)
- {
- if (cond == 1)
- {
- htmltext = "31258-01.html";
- }
- else if (cond == 2)
- {
- htmltext = "31258-03.html";
- }
- }
- else if ((npcId == NARAN) && (cond == 2))
- {
- htmltext = "31378-01.html";
- }
- break;
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00014_WhereaboutsOfTheArchaeologist/31263-00.htm b/trunk/dist/game/data/scripts/quests/Q00014_WhereaboutsOfTheArchaeologist/31263-00.htm
deleted file mode 100644
index 0dde474fa4..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00014_WhereaboutsOfTheArchaeologist/31263-00.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Trader Liesel:
-My friend left home to study archaeology a couple of years ago. His mother was just overcome by disease.
-Could you deliver her last letter to him?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00014_WhereaboutsOfTheArchaeologist/31263-01.html b/trunk/dist/game/data/scripts/quests/Q00014_WhereaboutsOfTheArchaeologist/31263-01.html
deleted file mode 100644
index 43a0e5f44d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00014_WhereaboutsOfTheArchaeologist/31263-01.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Trader Liesel:
-My friend left to study archaeology at the Imperial Tomb a few years ago. I have a letter for him,
-but I think you aren't capable enough to handle this delivery yet.
-(This quest may only be undertaken by a character of level 74 or above.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00014_WhereaboutsOfTheArchaeologist/31263-02.html b/trunk/dist/game/data/scripts/quests/Q00014_WhereaboutsOfTheArchaeologist/31263-02.html
deleted file mode 100644
index 5bf04599ec..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00014_WhereaboutsOfTheArchaeologist/31263-02.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Trader Liesel:
-He may be hard to find, but his last letter mentioned the Imperial Tomb. Maybe you can find him there!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00014_WhereaboutsOfTheArchaeologist/31538-00.html b/trunk/dist/game/data/scripts/quests/Q00014_WhereaboutsOfTheArchaeologist/31538-00.html
deleted file mode 100644
index 38c78485c0..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00014_WhereaboutsOfTheArchaeologist/31538-00.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Ghost of Adventurer:
-Huh? You were asked to give me this letter? Who writes a letter to a dead person? Hmm...Let me see...
-Oh, it's from my mother! It's been so long since I've seen her! How is she?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00014_WhereaboutsOfTheArchaeologist/31538-01.html b/trunk/dist/game/data/scripts/quests/Q00014_WhereaboutsOfTheArchaeologist/31538-01.html
deleted file mode 100644
index 7648b56416..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00014_WhereaboutsOfTheArchaeologist/31538-01.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Ghost of Adventurer:
-Oh, yes, I see. Well, I could never let her see me like this, anyway!
-Thank you for bringing the letter to me. Please accept this token of my appreciation.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00014_WhereaboutsOfTheArchaeologist/31538-02.html b/trunk/dist/game/data/scripts/quests/Q00014_WhereaboutsOfTheArchaeologist/31538-02.html
deleted file mode 100644
index 02f48f1fd8..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00014_WhereaboutsOfTheArchaeologist/31538-02.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Ghost of Adventurer:
-You don't have the required items.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00014_WhereaboutsOfTheArchaeologist/Q00014_WhereaboutsOfTheArchaeologist.java b/trunk/dist/game/data/scripts/quests/Q00014_WhereaboutsOfTheArchaeologist/Q00014_WhereaboutsOfTheArchaeologist.java
deleted file mode 100644
index b23ea1dd5a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00014_WhereaboutsOfTheArchaeologist/Q00014_WhereaboutsOfTheArchaeologist.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00014_WhereaboutsOfTheArchaeologist;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-
-/**
- * Whereabouts of the Archaeologist (14)
- * Original Jython script by disKret.
- * @author nonom
- */
-public class Q00014_WhereaboutsOfTheArchaeologist extends Quest
-{
- // NPCs
- private static final int LIESEL = 31263;
- private static final int GHOST_OF_ADVENTURER = 31538;
- // Item
- private static final int LETTER = 7253;
-
- public Q00014_WhereaboutsOfTheArchaeologist()
- {
- super(14, Q00014_WhereaboutsOfTheArchaeologist.class.getSimpleName(), "Whereabouts of the Archaeologist");
- addStartNpc(LIESEL);
- addTalkId(LIESEL, GHOST_OF_ADVENTURER);
- registerQuestItems(LETTER);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- String htmltext = event;
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return htmltext;
- }
-
- switch (event)
- {
- case "31263-02.html":
- st.startQuest();
- st.giveItems(LETTER, 1);
- break;
- case "31538-01.html":
- if (st.isCond(1) && st.hasQuestItems(LETTER))
- {
- st.giveAdena(136928, true);
- st.addExpAndSp(325881, 32524);
- st.exitQuest(false, true);
- }
- else
- {
- htmltext = "31538-02.html";
- }
- break;
- }
- return htmltext;
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- String htmltext = getNoQuestMsg(player);
- final QuestState st = getQuestState(player, true);
- if (st == null)
- {
- return htmltext;
- }
-
- final int npcId = npc.getId();
- switch (st.getState())
- {
- case State.COMPLETED:
- htmltext = getAlreadyCompletedMsg(player);
- break;
- case State.CREATED:
- if (npcId == LIESEL)
- {
- htmltext = (player.getLevel() < 74) ? "31263-01.html" : "31263-00.htm";
- }
- break;
- case State.STARTED:
- if (st.isCond(1))
- {
- switch (npcId)
- {
- case LIESEL:
- htmltext = "31263-02.html";
- break;
- case GHOST_OF_ADVENTURER:
- htmltext = "31538-00.html";
- break;
- }
- }
- break;
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00018_MeetingWithTheGoldenRam/31314-01.htm b/trunk/dist/game/data/scripts/quests/Q00018_MeetingWithTheGoldenRam/31314-01.htm
deleted file mode 100644
index 6881e932a3..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00018_MeetingWithTheGoldenRam/31314-01.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Warehouse Chief Donal:
-The Golden Ram Mercenary Force are in the the Swamp of Screams fighting stakatos. I'm looking for someone to deliver war supplies, are you interested?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00018_MeetingWithTheGoldenRam/31314-02.html b/trunk/dist/game/data/scripts/quests/Q00018_MeetingWithTheGoldenRam/31314-02.html
deleted file mode 100644
index c967a3190b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00018_MeetingWithTheGoldenRam/31314-02.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Warehouse Chief Donal:
-This is too difficult for you.
-(This quest may be undertaken only by characters of level 66 or above.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00018_MeetingWithTheGoldenRam/31314-03.html b/trunk/dist/game/data/scripts/quests/Q00018_MeetingWithTheGoldenRam/31314-03.html
deleted file mode 100644
index 50dbac6569..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00018_MeetingWithTheGoldenRam/31314-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Warehouse Chief Donal:
-Get the supplies from my niece Daisy. I heard the Golden Ram might be recruiting if you are interested.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00018_MeetingWithTheGoldenRam/31314-04.html b/trunk/dist/game/data/scripts/quests/Q00018_MeetingWithTheGoldenRam/31314-04.html
deleted file mode 100644
index d76dfcf133..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00018_MeetingWithTheGoldenRam/31314-04.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Warehouse Chief Donal:
-Get the supplies from my niece Daisy and take them to the Swamp of Screams.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00018_MeetingWithTheGoldenRam/31315-01.html b/trunk/dist/game/data/scripts/quests/Q00018_MeetingWithTheGoldenRam/31315-01.html
deleted file mode 100644
index 22e5199ca7..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00018_MeetingWithTheGoldenRam/31315-01.html
+++ /dev/null
@@ -1,4 +0,0 @@
- Warehouse Freightman Daisy:
-Uncle Donal sent you? Here's the box! Heavy, isn't it? Deliver it quickly before the winter comes!
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00018_MeetingWithTheGoldenRam/31315-02.html b/trunk/dist/game/data/scripts/quests/Q00018_MeetingWithTheGoldenRam/31315-02.html
deleted file mode 100644
index 5a0541218c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00018_MeetingWithTheGoldenRam/31315-02.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Warehouse Freightman Daisy:
-Take it to the mercenary forces temporary outpost in the east part of the Swamp of Screams. I'll mark it on your Map. Speak with Mercenary Supplier Abercrombie.
-Thanks, and be careful!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00018_MeetingWithTheGoldenRam/31315-03.html b/trunk/dist/game/data/scripts/quests/Q00018_MeetingWithTheGoldenRam/31315-03.html
deleted file mode 100644
index eddca8988c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00018_MeetingWithTheGoldenRam/31315-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Warehouse Freightman Daisy:
-Hurry and deliver the box to Mercenary Supplier Abercrombie! I marked the Map, didn't I?
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00018_MeetingWithTheGoldenRam/31555-01.html b/trunk/dist/game/data/scripts/quests/Q00018_MeetingWithTheGoldenRam/31555-01.html
deleted file mode 100644
index 5a1f837abd..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00018_MeetingWithTheGoldenRam/31555-01.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Mercenary Supplier Abercrombie:
-Are these the supplies from Daisy?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00018_MeetingWithTheGoldenRam/31555-02.html b/trunk/dist/game/data/scripts/quests/Q00018_MeetingWithTheGoldenRam/31555-02.html
deleted file mode 100644
index 24f7ce5b10..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00018_MeetingWithTheGoldenRam/31555-02.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Mercenary Supplier Abercrombie:
-Hey, ale and mutton pie! You want a drink? What do you think of mercenary life? We're recruiting!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00018_MeetingWithTheGoldenRam/Q00018_MeetingWithTheGoldenRam.java b/trunk/dist/game/data/scripts/quests/Q00018_MeetingWithTheGoldenRam/Q00018_MeetingWithTheGoldenRam.java
deleted file mode 100644
index c8a2fa4a4f..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00018_MeetingWithTheGoldenRam/Q00018_MeetingWithTheGoldenRam.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00018_MeetingWithTheGoldenRam;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-
-/**
- * Meeting With The Golden Ram (18)
- * Original jython script by disKret.
- * @author nonom
- */
-public class Q00018_MeetingWithTheGoldenRam extends Quest
-{
- // NPCs
- private static final int DONAL = 31314;
- private static final int DAISY = 31315;
- private static final int ABERCROMBIE = 31555;
- // Item
- private static final int BOX = 7245;
-
- public Q00018_MeetingWithTheGoldenRam()
- {
- super(18, Q00018_MeetingWithTheGoldenRam.class.getSimpleName(), "Meeting With The Golden Ram");
- addStartNpc(DONAL);
- addTalkId(DONAL, DAISY, ABERCROMBIE);
- registerQuestItems(BOX);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- String htmltext = event;
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return htmltext;
- }
-
- switch (event)
- {
- case "31314-03.html":
- if (player.getLevel() >= 66)
- {
- st.startQuest();
- }
- else
- {
- htmltext = "31314-02.html";
- }
- break;
- case "31315-02.html":
- st.setCond(2, true);
- st.giveItems(BOX, 1);
- break;
- case "31555-02.html":
- if (st.hasQuestItems(BOX))
- {
- st.giveAdena(40000, true);
- st.addExpAndSp(126668, 11731);
- st.exitQuest(false, true);
- }
- break;
- }
- return htmltext;
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- String htmltext = getNoQuestMsg(player);
- final QuestState st = getQuestState(player, true);
- if (st == null)
- {
- return htmltext;
- }
-
- final int npcId = npc.getId();
- switch (st.getState())
- {
- case State.COMPLETED:
- htmltext = getAlreadyCompletedMsg(player);
- break;
- case State.CREATED:
- if (npcId == DONAL)
- {
- htmltext = "31314-01.htm";
- }
- break;
- case State.STARTED:
- if (npcId == DONAL)
- {
- htmltext = "31314-04.html";
- }
- else if (npcId == DAISY)
- {
- htmltext = (st.getCond() < 2) ? "31315-01.html" : "31315-03.html";
- }
- else if ((npcId == ABERCROMBIE) && st.isCond(2) && st.hasQuestItems(BOX))
- {
- htmltext = "31555-01.html";
- }
- break;
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31328-01.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31328-01.html
deleted file mode 100644
index 640f114834..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31328-01.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Innocentin:
-You came all this way just to find me? Yes, I was once a high priest, until some unfortunate political developments landed me here in this blasted library! But lately, I've seen signs that my luck might be changing...
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31328-02.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31328-02.html
deleted file mode 100644
index dce01e8800..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31328-02.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Innocentin:
-Zounds! Where did you find this?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31328-03.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31328-03.html
deleted file mode 100644
index 4be5c6faf5..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31328-03.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Innocentin:
-He was always a dutiful Warrior, even after his death... may the gods watch over his soul!
-... Why would he have you deliver this to me in person?
-Lately I've been having the same dream every night...
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31328-04.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31328-04.html
deleted file mode 100644
index fb7069e2a3..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31328-04.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Innocentin:
-In my dream, I'm looking down upon the Forest of the Dead... Suddenly, huge explosions rock the forest, and an army of undead rush towards me...
-This is bound to be a message from the gods!
-That's why I sent the one who held this crucifix there!
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31328-05.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31328-05.html
deleted file mode 100644
index 13719d0c43..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31328-05.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Innocentin:
-I've learned much of the ways of the wild since my days at the temple.
-In times like these, dead souls must be appeased!
-Take this crucifix to Grand Magister Tifaren of the Dark Elves and ask her to perform necromancy.She should be able to tell us what actually happened in the Forest of the Dead...
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31328-06.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31328-06.html
deleted file mode 100644
index b10139daae..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31328-06.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Innocentin:
-Take the crucifix to Grand Magister Tifaren of the Dark Elves and perform the necromancy to summon the soul of the priest.
-Ask him what happened in the Forest of the Dead...
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31348-01.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31348-01.html
deleted file mode 100644
index 4723e6f6c0..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31348-01.html
+++ /dev/null
@@ -1,3 +0,0 @@
-High Priest Agripel:
-Is Innocentin one of those devil worshippers executed in the old witch trials? I never heard of him, ask someone else.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31348-02.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31348-02.html
deleted file mode 100644
index f617554f1d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31348-02.html
+++ /dev/null
@@ -1,3 +0,0 @@
-High Priest Agripel:
-Maybe he was the guy who long ago was expelled for keeping a devil worshipper with him! He's probably a beggar now. I don't waste my time on such filth.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31348-03.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31348-03.html
deleted file mode 100644
index f523cc51af..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31348-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-High Priest Agripel:
-Maybe the devil worshippers are hiding in a library somewhere, they still need to acquire knowledge. They couldn't be here in the temple!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31349-01.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31349-01.html
deleted file mode 100644
index 4168ff9980..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31349-01.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Benedict:
-Is Innocentin one of those devil worshippers executed in the old witch trials? I never heard of him, ask someone else.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31349-02.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31349-02.html
deleted file mode 100644
index 86e7522a49..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31349-02.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Benedict:
-Maybe he was the guy who long ago was expelled for keeping a devil worshipper with him! He's probably a beggar now. I don't waste my time with such filth.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31349-03.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31349-03.html
deleted file mode 100644
index f362bdcb87..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31349-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Benedict:
-Maybe the devil worshippers are hiding in a library somewhere, they still need to acquire knowledge. They couldn't be here in the temple!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31350-01.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31350-01.html
deleted file mode 100644
index 7a5e8e062a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31350-01.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Priest Dominic:
-Is Innocentin one of those devil worshippers executed in the old witch trials? I never heard of him, ask someone else.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31350-02.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31350-02.html
deleted file mode 100644
index ab803aa866..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31350-02.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Dominic:
-Maybe he was the guy who long ago was expelled for keeping a devil worshipper with him! He's probably a beggar now. I don't waste my time with such filth.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31350-03.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31350-03.html
deleted file mode 100644
index 9f543f86df..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31350-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Dominic:
-Maybe the devil worshippers are hiding in a library somewhere, they still need to acquire knowledge. They couldn't be here in the temple!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31522-01.htm b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31522-01.htm
deleted file mode 100644
index b1f28af1e1..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31522-01.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Mysterious Wizard:
-There's a ghost hanging around that tombstone that's been bothering me lately.
-Could you help me get rid of it?
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31522-02.htm b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31522-02.htm
deleted file mode 100644
index b7b56a7be1..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31522-02.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Mysterious Wizard:
-You think you're up to it?
-Look for the ghost in the tombstone.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31522-03.htm b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31522-03.htm
deleted file mode 100644
index e2dc87cc21..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31522-03.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Mysterious Wizard:
-Come back when the Forest of the Dead won't eat you alive!
-(Only characters of level 63 or above may undertake this quest.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31522-04.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31522-04.html
deleted file mode 100644
index 5afba2e52a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31522-04.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Mysterious Wizard:
-It may sound funny coming from a Dark Mage, but I don't like dealing with the dead. It's only trouble.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31522-05.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31522-05.html
deleted file mode 100644
index a618eda1e1..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31522-05.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Mysterious Wizard:
-What's this? Weren't you supposed to check the tombstone for that noisy ghost?
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31523-01.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31523-01.html
deleted file mode 100644
index 9efcbdc67d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31523-01.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Tombstone:
-After pushing away the moss, words appear engraved upon the stone. Could these words be used to conjure a ghost?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31523-02.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31523-02.html
deleted file mode 100644
index 1a36b3e525..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31523-02.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Tombstone:
-A jeweled scepter for the King and two Silver Spears for the von Hellmann family who protect him.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31523-03.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31523-03.html
deleted file mode 100644
index e6311e4458..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31523-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Tombstone:
-Soon a ghostly being appears...
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31523-04.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31523-04.html
deleted file mode 100644
index 92a47e1566..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31523-04.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Tombstone:
-Don't look now, but there's a ghost behind you!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31524-01.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31524-01.html
deleted file mode 100644
index 158677b0ae..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31524-01.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Ghost of von Hellmann:
-Who is calling me? Why am I stuck here? Why can't I sleep?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31524-02.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31524-02.html
deleted file mode 100644
index 87d9543e74..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31524-02.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Ghost of von Hellmann:
-I'm Duke Adolf von Hellmann, father of Alfred von Hellmann, who King Astor struck down with his spear.
-Why can't I rest in peace?! Who dares interrupt my sleep?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31524-03.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31524-03.html
deleted file mode 100644
index a0ca6779f2..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31524-03.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Ghost of von Hellmann:
-Woe is me! This was once our home, but now we have no authority! Does this land still belong to the Elmore Kingdom?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31524-04.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31524-04.html
deleted file mode 100644
index 8b5335fc03..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31524-04.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Ghost of von Hellmann:
-Elmore? Why can't I feel the King's grace? What's happened here?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31524-05.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31524-05.html
deleted file mode 100644
index 2d8e96b344..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31524-05.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Ghost of von Hellmann:
-Find out what happened here and who has owned this land while I was sleeping! What's become of my family?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31524-06.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31524-06.html
deleted file mode 100644
index 950ebbdc2c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31524-06.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Ghost of von Hellmann:
-Thank you. Find out what has transpired! Follow my servant and bring me the news!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31524-06a.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31524-06a.html
deleted file mode 100644
index 114b7c0d57..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31524-06a.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Ghost of von Hellmann:
-Find out what's happened in the forest.
-I'd have one of my servants show you the way, but they're all busy. Come back later!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31524-07.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31524-07.html
deleted file mode 100644
index ef4776cc84..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31524-07.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Ghost of von Hellmann:
-Thank you! Please find out what's happened in the forest. Follow my servant and bring me the news!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31524-07a.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31524-07a.html
deleted file mode 100644
index 467b86ec07..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31524-07a.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Ghost of von Hellmann:
-Find out what has happened in the forest!
-I'd have one of my servants show you the way, but they're all busy. Come back later!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31524-07b.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31524-07b.html
deleted file mode 100644
index 81616c1cfc..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31524-07b.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Ghost of von Hellmann:
-I've repeatedly sent my servants to help you! Find the bookshelf that contains the history of the forest. It's somewhere in the south.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31524-07c.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31524-07c.html
deleted file mode 100644
index 60a19e7ce6..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31524-07c.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Ghost of von Hellmann:
-You haven't found out enough to tell me why I can't rest in peace!
-Be gone!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31525-01.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31525-01.html
deleted file mode 100644
index 611bb4f6fa..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31525-01.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Ghost of Hellmann Page:
-I'm a guide of the Forest of the Dead. By the Lord's order, I'll lead you.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31525-02.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31525-02.html
deleted file mode 100644
index b2d86220f8..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31525-02.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Ghost of von Hellmann's Page:
-Find a book that discusses an old grudge.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-01.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-01.html
deleted file mode 100644
index 078c04d0cc..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-01.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Broken Bookshelf:
-The book that the ghost spoke of was easily found. The padlock was firmly locked.
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-02.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-02.html
deleted file mode 100644
index 78fbd5c576..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-02.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Broken Bookshelf:
-The padlock is engraved with the mark of the Hellmann family. In spite of it's many years outside, once the outer layer of dust and soil is brushed away, it shines silvery in the light! This lock won't be easy to break.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-03.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-03.html
deleted file mode 100644
index 5dc6b15bc0..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-03.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Broken Bookshelf:
-The book's cover is lambskin that's been discolored by dark, red-colored stains.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-04.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-04.html
deleted file mode 100644
index 0e1d9578c7..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-04.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Broken Bookshelf:
-The dark red stains have damaged the pages of the book as well. Not much text is legible. All the years outside couldn't have helped, either!
-Do you want to read it?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-05.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-05.html
deleted file mode 100644
index c366f27b62..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-05.html
+++ /dev/null
@@ -1,7 +0,0 @@
-
-"Chapter 5, The Lord of the Forest of the Dead
-... The lord of the Forest of the Dead... has existed from the beginning of...
-... the ruling is, ... the form of taxation...
-... rather than that, life and death itself... under the ruling authority..."
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-06.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-06.html
deleted file mode 100644
index 160500a21b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-06.html
+++ /dev/null
@@ -1,5 +0,0 @@
-
-"Basically, to her, taxation means... no different from... Due to... who's the master of the Moon Face Flower and the Forest of the Dead... went under her... are vampires
-... this is.... when examining the characteristics of..... sucking... by that one's power... that is... necessary to the subordinate of the lord of the forest..."
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-07.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-07.html
deleted file mode 100644
index d91e5ad858..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-07.html
+++ /dev/null
@@ -1,6 +0,0 @@
-
-".... vampire.............. of the Forest of Dead...............
-............... cursed............... working at..............."
-The rest of the text is obscured by the red stains.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-08.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-08.html
deleted file mode 100644
index 1fec52b142..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-08.html
+++ /dev/null
@@ -1,4 +0,0 @@
-
-When you're about to replace the book, you notice something lying on the ground. Maybe it fell out of the book...
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-09.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-09.html
deleted file mode 100644
index 017d06bf27..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-09.html
+++ /dev/null
@@ -1,4 +0,0 @@
-
-While examining the bookshelf, you notice something lying on the ground. Maybe it fell out of the book.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-10.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-10.html
deleted file mode 100644
index 5314d5f947..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-10.html
+++ /dev/null
@@ -1,4 +0,0 @@
-
-When you're about to replace the book, you notice something lying on the ground. Maybe it fell out of the book.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-11.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-11.html
deleted file mode 100644
index 5a3865e386..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-11.html
+++ /dev/null
@@ -1,4 +0,0 @@
-
-While examining the area around the bookshelf, you see something lying on the ground. Perhaps it fell when you were taking out the book.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-12.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-12.html
deleted file mode 100644
index b385a31b59..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-12.html
+++ /dev/null
@@ -1,5 +0,0 @@
-
-It's a metallic cross. It seems to be an Einhasad's Crucifix!
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-13.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-13.html
deleted file mode 100644
index aacaabb303..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-13.html
+++ /dev/null
@@ -1,5 +0,0 @@
-
-An old bookshelf is standing in front of you. It's extremely worn, and the lower section is used as a locker. A few books are arranged on the shelves, and the locker is secured with a padlock which bears the mark of the Hellmann Family.
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-14.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-14.html
deleted file mode 100644
index 57d7e46618..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-14.html
+++ /dev/null
@@ -1,5 +0,0 @@
-
-You feel the cold metallic surface of the Einhasad's Crucifix. Since it's been inside the bookshelf for a long time, it's a little rusty.
-At the moment you touch the crucifix, you hear a whisper in your ear!
-Take it to Einhasad Temple in the Rune Township... to Priest Innocentin there...
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-15.html b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-15.html
deleted file mode 100644
index 57d7e46618..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/31526-15.html
+++ /dev/null
@@ -1,5 +0,0 @@
-
-You feel the cold metallic surface of the Einhasad's Crucifix. Since it's been inside the bookshelf for a long time, it's a little rusty.
-At the moment you touch the crucifix, you hear a whisper in your ear!
-Take it to Einhasad Temple in the Rune Township... to Priest Innocentin there...
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/Q00021_HiddenTruth.java b/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/Q00021_HiddenTruth.java
deleted file mode 100644
index 401854b355..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00021_HiddenTruth/Q00021_HiddenTruth.java
+++ /dev/null
@@ -1,456 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00021_HiddenTruth;
-
-import com.l2jserver.gameserver.enums.QuestSound;
-import com.l2jserver.gameserver.instancemanager.WalkingManager;
-import com.l2jserver.gameserver.model.L2World;
-import com.l2jserver.gameserver.model.Location;
-import com.l2jserver.gameserver.model.actor.L2Character;
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
-import com.l2jserver.gameserver.network.serverpackets.NpcSay;
-
-/**
- * Hidden Truth (21)
- * @author xban1x
- */
-public class Q00021_HiddenTruth extends Quest
-{
- // NPCs
- private static final int INNOCENTIN = 31328;
- private static final int AGRIPEL = 31348;
- private static final int BENEDICT = 31349;
- private static final int DOMINIC = 31350;
- private static final int MYSTERIOUS_WIZARD = 31522;
- private static final int TOMBSTONE = 31523;
- private static final int GHOST_OF_VON_HELLMAN = 31524;
- private static final int GHOST_OF_VON_HELLMANS_PAGE = 31525;
- private static final int BROKEN_BOOKSHELF = 31526;
- // Location
- private static final Location GHOST_LOC = new Location(51432, -54570, -3136, 0);
- private static final Location PAGE_LOC = new Location(51446, -54514, -3136, 0);
- // Items
- private static final int CROSS_OF_EINHASAD = 7140;
- private static final int CROSS_OF_EINHASAD2 = 7141;
- // Misc
- private static final int MIN_LVL = 63;
- private static final String PAGE_ROUTE_NAME = "rune_ghost1b";
- private static int PAGE_COUNT = 0;
- private static boolean GHOST_SPAWNED = false;
- private boolean PAGE_SPAWNED = false;
- private boolean MOVE_ENDED = false;
-
- public Q00021_HiddenTruth()
- {
- super(21, Q00021_HiddenTruth.class.getSimpleName(), "Hidden Truth");
- addStartNpc(MYSTERIOUS_WIZARD);
- addTalkId(MYSTERIOUS_WIZARD, TOMBSTONE, GHOST_OF_VON_HELLMAN, GHOST_OF_VON_HELLMANS_PAGE, BROKEN_BOOKSHELF, AGRIPEL, BENEDICT, DOMINIC, INNOCENTIN);
- addSeeCreatureId(GHOST_OF_VON_HELLMANS_PAGE);
- addRouteFinishedId(GHOST_OF_VON_HELLMANS_PAGE);
- registerQuestItems(CROSS_OF_EINHASAD);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- QuestState st = getQuestState(player, false);
- String htmltext = null;
- if (st != null)
- {
- switch (event)
- {
- case "31328-02.html":
- case "31328-03.html":
- case "31328-04.html":
- case "31522-01.htm":
- case "31522-04.html":
- case "31523-02.html":
- case "31524-02.html":
- case "31524-03.html":
- case "31524-04.html":
- case "31524-05.html":
- case "31526-01.html":
- case "31526-02.html":
- case "31526-04.html":
- case "31526-05.html":
- case "31526-06.html":
- case "31526-12.html":
- case "31526-13.html":
- {
- htmltext = event;
- break;
- }
- case "31328-05.html":
- {
- if (st.isCond(7))
- {
- st.giveItems(CROSS_OF_EINHASAD2, 1);
- st.addExpAndSp(131228, 11978);
- st.exitQuest(false, true);
- htmltext = event;
- }
- break;
- }
- case "31522-02.htm":
- {
- if (player.getLevel() < MIN_LVL)
- {
- htmltext = "31522-03.htm";
- }
- else
- {
- st.startQuest();
- htmltext = event;
- }
- break;
- }
- case "31523-03.html":
- {
- if (GHOST_SPAWNED)
- {
- htmltext = "31523-04.html";
- st.playSound(QuestSound.SKILLSOUND_HORROR_2);
- }
- else
- {
- final L2Npc ghost = addSpawn(GHOST_OF_VON_HELLMAN, GHOST_LOC, false, 0);
- ghost.broadcastPacket(new NpcSay(ghost.getObjectId(), 0, ghost.getId(), NpcStringId.WHO_AWOKE_ME));
- GHOST_SPAWNED = true;
- st.startQuestTimer("DESPAWN_GHOST", 1000 * 300, ghost);
- st.setCond(2);
- st.playSound(QuestSound.SKILLSOUND_HORROR_2);
- htmltext = event;
- }
- break;
- }
- case "31524-06.html":
- {
- if (PAGE_COUNT < 5)
- {
- final L2Npc page = addSpawn(GHOST_OF_VON_HELLMANS_PAGE, PAGE_LOC, false, 0);
- page.setScriptValue(player.getObjectId());
- page.broadcastPacket(new NpcSay(page.getObjectId(), Say2.NPC_ALL, page.getId(), NpcStringId.MY_MASTER_HAS_INSTRUCTED_ME_TO_BE_YOUR_GUIDE_S1).addStringParameter(player.getName()));
- WalkingManager.getInstance().startMoving(page, PAGE_ROUTE_NAME);
- PAGE_COUNT++;
- st.setCond(3);
- htmltext = event;
- }
- else
- {
- htmltext = "31524-06a.html";
- }
- break;
- }
- case "31526-03.html":
- {
- st.playSound(QuestSound.ITEMSOUND_ARMOR_CLOTH);
- htmltext = event;
- break;
- }
- case "31526-07.html":
- {
- st.setCond(4);
- htmltext = event;
- break;
- }
- case "31526-08.html":
- {
- if (!st.isCond(5))
- {
- st.playSound(QuestSound.AMDSOUND_ED_CHIMES);
- st.setCond(5);
- htmltext = event;
- }
- else
- {
- htmltext = "31526-09.html";
- }
- break;
- }
- case "31526-14.html":
- {
- st.giveItems(CROSS_OF_EINHASAD, 1);
- st.setCond(6);
- htmltext = event;
- break;
- }
- case "DESPAWN_GHOST":
- {
- GHOST_SPAWNED = false;
- npc.deleteMe();
- break;
- }
- case "DESPAWN":
- {
- PAGE_COUNT--;
- npc.deleteMe();
- break;
- }
- }
- }
- return htmltext;
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- QuestState st = getQuestState(player, true);
- String htmltext = getNoQuestMsg(player);
- if (st != null)
- {
- switch (npc.getId())
- {
- case MYSTERIOUS_WIZARD:
- {
- switch (st.getState())
- {
- case State.CREATED:
- {
- htmltext = "31522-01.htm";
- break;
- }
- case State.STARTED:
- {
- htmltext = "31522-05.html";
- break;
- }
- case State.COMPLETED:
- {
- htmltext = getAlreadyCompletedMsg(player);
- break;
- }
- }
- break;
- }
- case TOMBSTONE:
- {
- htmltext = "31523-01.html";
- break;
- }
- case GHOST_OF_VON_HELLMAN:
- {
- switch (st.getCond())
- {
- case 2:
- {
- htmltext = "31524-01.html";
- break;
- }
- case 3:
- {
- if (PAGE_SPAWNED)
- {
- htmltext = "31524-07b.html";
- }
- else
- {
- if (PAGE_COUNT < 5)
- {
- final L2Npc PAGE = addSpawn(GHOST_OF_VON_HELLMANS_PAGE, PAGE_LOC, true, 0);
- PAGE_COUNT++;
- PAGE_SPAWNED = true;
- PAGE.setScriptValue(player.getObjectId());
- WalkingManager.getInstance().startMoving(PAGE, PAGE_ROUTE_NAME);
- htmltext = "31524-07.html";
- }
- else
- {
- htmltext = "31524-07a.html";
- }
- }
- break;
- }
- case 4:
- {
- htmltext = "31524-07c.html";
- break;
- }
- }
- break;
- }
- case GHOST_OF_VON_HELLMANS_PAGE:
- {
- if (st.isCond(3))
- {
- if (MOVE_ENDED)
- {
- htmltext = "31525-02.html";
- st.startQuestTimer("DESPAWN", 3000, npc);
- }
- else
- {
- htmltext = "31525-01.html";
- }
- }
- break;
- }
- case BROKEN_BOOKSHELF:
- {
- switch (st.getCond())
- {
- case 3:
- {
- htmltext = "31526-01.html";
- break;
- }
- case 4:
- {
- st.setCond(5);
- st.playSound(QuestSound.AMDSOUND_ED_CHIMES);
- htmltext = "31526-10.html";
- break;
- }
- case 5:
- {
- htmltext = "31526-11.html";
- break;
- }
- case 6:
- {
- htmltext = "31526-15.html";
- break;
- }
- }
- break;
- }
- case AGRIPEL:
- {
- if (st.hasQuestItems(CROSS_OF_EINHASAD) && st.isCond(6))
- {
- st.set("AGRIPEL", "1");
- if ((st.getInt("AGRIPEL") == 1) && (st.getInt("DOMINIC") == 1) && (st.getInt("BENEDICT") == 1))
- {
- htmltext = "31348-03.html";
- st.setCond(7);
- }
- else if ((st.getInt("DOMINIC") == 1) || (st.getInt("BENEDICT") == 1))
- {
- htmltext = "31348-02.html";
- }
- else
- {
- htmltext = "31348-01.html";
- }
- }
- else if (st.isCond(7))
- {
- htmltext = "31348-03.html";
- }
- break;
- }
-
- case BENEDICT:
- {
- if (st.hasQuestItems(CROSS_OF_EINHASAD) && st.isCond(6))
- {
-
- st.set("BENEDICT", "1");
- if ((st.getInt("AGRIPEL") == 1) && (st.getInt("DOMINIC") == 1) && (st.getInt("BENEDICT") == 1))
- {
- htmltext = "31349-03.html";
- st.setCond(7);
- }
- else if ((st.getInt("AGRIPEL") == 1) || (st.getInt("DOMINIC") == 1))
- {
- htmltext = "31349-02.html";
- }
- else
- {
- htmltext = "31349-01.html";
- }
- }
- else if (st.isCond(7))
- {
- htmltext = "31349-03.html";
- }
- break;
- }
- case DOMINIC:
- {
- if (st.hasQuestItems(CROSS_OF_EINHASAD) && st.isCond(6))
- {
- st.set("DOMINIC", "1");
- if ((st.getInt("AGRIPEL") == 1) && (st.getInt("DOMINIC") == 1) && (st.getInt("BENEDICT") == 1))
- {
- htmltext = "31350-03.html";
- st.setCond(7);
- }
- else if ((st.getInt("AGRIPEL") == 1) || (st.getInt("BENEDICT") == 1))
- {
- htmltext = "31350-02.html";
- }
- else
- {
- htmltext = "31350-01.html";
- }
- }
- else if (st.isCond(7))
- {
- htmltext = "31350-03.html";
- }
- break;
- }
- case INNOCENTIN:
- {
- if (st.isCond(7) && st.hasQuestItems(CROSS_OF_EINHASAD))
- {
- htmltext = "31328-01.html";
- }
- else if (st.isCompleted())
- {
- st = player.getQuestState("22_TragedyInVonHellmanForest");
- if (st == null)
- {
- htmltext = "31328-06.html";
- }
- }
- break;
- }
- }
- }
- return htmltext;
- }
-
- @Override
- public String onSeeCreature(L2Npc npc, L2Character creature, boolean isSummon)
- {
- if (creature.isPlayer())
- {
- playSound((L2PcInstance) creature, QuestSound.HORROR_01);
- }
- return super.onSeeCreature(npc, creature, isSummon);
- }
-
- @Override
- public void onRouteFinished(L2Npc npc)
- {
- final QuestState st = L2World.getInstance().getPlayer(npc.getScriptValue()).getQuestState(getName());
- if (st != null)
- {
- st.startQuestTimer("DESPAWN", 15000, npc);
- MOVE_ENDED = true;
- }
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-01.htm b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-01.htm
deleted file mode 100644
index 3789ba360d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-01.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Innocentin:
-You've been a great help to me in the past, and I'd like to thank you again for bringing me that report! There's one more thing... Could you help me out again?
-"OK, whatever."
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-01a.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-01a.html
deleted file mode 100644
index d4d1737ef4..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-01a.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Innocentin:
-This is something you can get started on immediately!
-There's a vast conspiracy afoot in the Rune Township and the Forest of the Dead!
-The roots of this conspiracy lie in that forest, and you should seek the truth there.
-(This quest may only be undertaken by a character of level 64 or above who has completed the Hidden Truth and Tragedy of Hellmann Forest quests.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-02.htm b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-02.htm
deleted file mode 100644
index cf947a5159..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-02.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Innocentin:
-You look tired, my friend! Why don't you take a break, improve your ability and then come back! This next mission is much more challenging than the last one...
-(This quest may only be undertaken by a character of level 64 or above who has completed the Tragedy of Hellmann Forest quest.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-03.htm b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-03.htm
deleted file mode 100644
index 56cc3f96d1..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-03.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Innocentin:
-Here's the Map and key he left behind. Take them and find out what he was searching for.
-"Tell me more about the Map and key."
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-04.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-04.html
deleted file mode 100644
index 1238a8f4c1..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-04.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Innocentin:
-He probably drew this Map while exploring the Forest of the Dead. As for the key... I'm not sure. The only clue I've found is the Silver Spear engraved upon it.
-"Tell me more about the Silver Spear."
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-05.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-05.html
deleted file mode 100644
index 1238a8f4c1..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-05.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Innocentin:
-He probably drew this Map while exploring the Forest of the Dead. As for the key... I'm not sure. The only clue I've found is the Silver Spear engraved upon it.
-"Tell me more about the Silver Spear."
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-06.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-06.html
deleted file mode 100644
index 0a796a3a5d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-06.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Innocentin:
-According to a custom from the Elmoreden period, a Silver Spear was the symbol of the family responsible for guarding the royal family.
-An ancient proverb says, "A jeweled scepter for the mighty King of Elmore and two Silver Spears for his protectors".
-I'll wager that somewhere is a lock that matches this key...
-"Who holds the spear now?"
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-07.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-07.html
deleted file mode 100644
index 0dd8ac5431..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-07.html
+++ /dev/null
@@ -1,5 +0,0 @@
-High Priestess Innocentin:
-Today's silver spears are dedicated to the people who worked hard to suppress the rebellion. One is for the protectors of the royal family, who captured and punished the rebels, and one is for those who fought against the undead and captured the demon's followers... and it will therefore be a dedication that upholds the false accusations against our former priests.
-The one responsible for all this is staying at the temple in Rune Castle Town.
-Please don't ask any more questions. Just take the records that he left behind, and find out where that key fits.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-08.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-08.html
deleted file mode 100644
index a622c83652..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-08.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Innocentin:
-You must find the lock that matches that key! It would probably be in the possession of a family worthy of the spear!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-09.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-09.html
deleted file mode 100644
index 54adb628b3..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-09.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Innocentin:
-So, did you find anything?
-"Here is the diary and the hairpin."
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-10.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-10.html
deleted file mode 100644
index cee78b8d71..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-10.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Innocentin:
-Please! Put those things away...Please!
-I'm sorry, but the power of darkness contained in them is overpowering! I can't even look at them...
-How about you? Are you okay?
-"I'm fine."
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-11.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-11.html
deleted file mode 100644
index 26aa604bbf..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-11.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Innocentin:
-Really? Have you read it?
-"Yes, I read it."
-"No, I haven't read it."
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-12.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-12.html
deleted file mode 100644
index faa84f2bf5..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-12.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Innocentin:
-Read it and come back to me... I have many questions!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-13.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-13.html
deleted file mode 100644
index 25945ad1b9..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-13.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Innocentin:
-Then answer me... What is it?
-"Lidia's Diary."
-"Alfred's Diary."
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-14.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-14.html
deleted file mode 100644
index 058b8c7543..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-14.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Innocentin:
-Have you read the document?
-"Yes, I read it."
-No, I didn't read it."
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-15.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-15.html
deleted file mode 100644
index 25945ad1b9..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-15.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Innocentin:
-Then answer me... What is it?
-"Lidia's Diary."
-"Alfred's Diary."
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-16.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-16.html
deleted file mode 100644
index 6a634f342e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-16.html
+++ /dev/null
@@ -1,7 +0,0 @@
-Innocentin:
-Lidia's Diary?
-Lidia was dear Alfred's precious daughter... They led an idyllic life, until that tragic day...
-Does her diary cover the period after she became lord of the forest?
-"Yes, it does."
-"No, it doesn't."
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-17.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-17.html
deleted file mode 100644
index 345da46980..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-17.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Innocentin:
-What did you learn from the diary?
-"Lidia was bitten by a vampire."
-"Lidia signed some sort of contract."
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-18.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-18.html
deleted file mode 100644
index b9b9b4122d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-18.html
+++ /dev/null
@@ -1,8 +0,0 @@
-Innocentin:
-A contract?!
-I'll bet that rascal Nidrah was behind this! Was he involved?
-"Yes, he forced her to sign the contract."
-"Lidia approached Nidrah."
-"Nidrah wasn't involved."
-"As I said before, Lidia was bitten by a vampire! Don't you get it?"
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-19.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-19.html
deleted file mode 100644
index af5ad36d6c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-19.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Innocentin:
-Oh really? Then let me ask you one more question. Have you ever heard the expression "Owner of a Moon Face Flower"?
-"It's the Lord of the Forest of the Dead."
-"It's Lidia von Hellmann."
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-20.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-20.html
deleted file mode 100644
index 1a747b689b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-20.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Innocentin:
-Ah ha! Then that hairpin must belong to Lidia!
-Now I remember it! She used to wear it in her hair! Sigh... She was so beautiful then...
-Thank you for your help! I suppose our business is done now, but your journey continues...
-I'll always be here for you if you have any questions.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-21.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-21.html
deleted file mode 100644
index 926ba2ece5..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-21.html
+++ /dev/null
@@ -1,3 +0,0 @@
-
-The moment the words leave your lips, you feel an electric current shoot through your head, buzzing like 5000 wyverns in flight! Deep within your heart wells an emotion, small but growing more intense by the moment... It's remorse! Lidia must have been angered by your answer!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-22.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-22.html
deleted file mode 100644
index 77a2ab5dfc..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-22.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Innocentin:
-I don't think your journey's over yet. Someone close to her wants to see you. He'll show you the path that leads to your next adventure.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31386-01.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31386-01.html
deleted file mode 100644
index 7ff24873bc..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31386-01.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Violet:
-Oh, the key? That's right! That's the key that Duke Adolph von Hellmann asked me to keep for him! That was a very long time ago! He told me that it guards the highest honor his family received from the King!
-But I can't go there. I can't leave this village.
-Go towards the northern part of the village. You'll find a box near the center of the Forest of the Dead. This key opens the padlock on the box.
-Bring me the object you find inside the box.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31386-02.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31386-02.html
deleted file mode 100644
index 26fffef58d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31386-02.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Violet:
-I can't go there. I can't leave this village!
-Go towards the northern part of the village, you'll find a box near the center of the Forest of the Dead. This key opens the padlock on the box.
-Bring me the object you find inside the box.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31386-03.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31386-03.html
deleted file mode 100644
index 954562c12e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31386-03.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Violet:
-This is the very Silver Spear that King Astaire Van Halter bestowed upon Duke Adolph! It's the treasured heirloom of the Hellmann family! The lord will be overjoyed! The long lost honor of his family name is restored, and it's all because of you!
-Thank you. Please accept this small token of our gratitude! I only wish that we could have you over to the castle and give you a more formal recognition...
-I probably have to express our gratitude to the lord through another person, not me. Please talk with the village people.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31386-04.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31386-04.html
deleted file mode 100644
index 630bdafdde..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31386-04.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Violet:
-Find someone among the villagers to express your gratitude to the lord.
-Have you visited Doriun yet?
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31523-01.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31523-01.html
deleted file mode 100644
index 6863ce0e31..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31523-01.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Tombstone:
-One jeweled scepter for the King and two Silver Spears for the von Hellmann family who protects him.
-Wait a while.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31523-02.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31523-02.html
deleted file mode 100644
index 725a6eb089..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31523-02.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Tombstone:
-After a while, a white ghost appears.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31523-03.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31523-03.html
deleted file mode 100644
index 74910b9305..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31523-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Tombstone:
-The ghost was beside you all along!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31523-04.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31523-04.html
deleted file mode 100644
index 2b77bb9898..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31523-04.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Tombstone:
-There is a tablet engraved with familiar characters.
-Dig
-Recall the ghost
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31523-05.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31523-05.html
deleted file mode 100644
index 75f1931a18..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31523-05.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Tombstone:
-There is a tablet engraved with familiar characters.
-It appears that something else has been crudely etched into the tablet.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31523-06.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31523-06.html
deleted file mode 100644
index bab35c3717..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31523-06.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Tombstone:
-You find a key engraved with a silver spear.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31524-01.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31524-01.html
deleted file mode 100644
index 191e97c226..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31524-01.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Ghost of von Hellmann:
-Who has summoned me here? Why can't I sleep?
-"Let me tell you about Lidia von Hellmann."
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31524-02.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31524-02.html
deleted file mode 100644
index 5c29303c3d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31524-02.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Ghost of von Hellmann:
-Oh, the horror! The von Hellmann's are dead and Lidia is a demon? Her curse upon this land is depriving me of my rest!
-"It's the truth."
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31524-03.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31524-03.html
deleted file mode 100644
index 5073d58c8f..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31524-03.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Ghost of von Hellmann:
-How did she become the Lord of the Dead?
-"Here's her diary."
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31524-04.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31524-04.html
deleted file mode 100644
index 1b50cf3007..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31524-04.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Ghost of von Hellmann:
-This concerns Lidia's Diary? Is that right? Oh, I see! Dear traveler! For whatever little time I have left, I'll read this diary and go over the past again and again in my mind!
-Traveler, I shall reward you well for this diary! Dig underneath this tombstone and you will find my key!
-Take that key to the Chamberlain of the Hellmann Family! You'll find him in the village hidden in the middle of this forest!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31524-05.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31524-05.html
deleted file mode 100644
index e3f72f8ea8..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31524-05.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Ghost of von Hellmann:
-Dig under this monument for the key and take it to the von Hellmann's page.
-He's in the hidden village in the center of the forest.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31524-06.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31524-06.html
deleted file mode 100644
index 958fa8e1e1..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31524-06.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Ghost of von Hellmann:
-Take the key to von Hellmann's page, He's in the hidden village in the center of the forest.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-01.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-01.html
deleted file mode 100644
index f996b8789e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-01.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Broken Desk:
-The chest is secured with a padlock which bears the mark of the Hellmann family.
-Use a Silver Spear key
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-02.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-02.html
deleted file mode 100644
index 4d71bbb831..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-02.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Broken Desk:
-The chest opens with a creak.
-Inside, you find an old hairpin and a book tied with a leather string.
-Examine the hair pin.
-Examine the book.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-03.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-03.html
deleted file mode 100644
index 1dd24e7fbe..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-03.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Broken Bookshelf:
-The chest opens with a creak. Inside, you find an old hairpin and a book tied with a leather string.
-Examine the hair pin.
-Examine the book.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-04.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-04.html
deleted file mode 100644
index 38a570515f..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-04.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Broken Bookshelf:
-The hair pin is a type once used by aristocratic ladies. It's engraved with the image of a Moon Face Flower, and was probably used by a unattached young lady.
-"I wonder what that design means?"
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-05.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-05.html
deleted file mode 100644
index 34d7b93cc9..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-05.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Broken Bookshelf:
-According to legend, the Moon Face Flower only blooms on moonlit nights.
-It's very shy, and shows its face only to its future husband. This legend made it quite popular among young, single, aristocratic ladies.
-I wonder who might have owned this one?
-Take the hairpin.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-06.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-06.html
deleted file mode 100644
index 2a5b92aca0..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-06.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Broken Bookshelf:
-You took the hairpin.
-Check the bookshelf. You may find something else.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-07.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-07.html
deleted file mode 100644
index 94f8d67270..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-07.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Broken Bookshelf:
-In the locker where you found the hairpin, you also find a book tied with a leather string.
-Examine the book.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-07a.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-07a.html
deleted file mode 100644
index 7a44b25299..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-07a.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Broken Bookshelf:
-A book tied with a leather string. It's tied very tight, and doesn't seem like it could easily be cut.
-Try to cut the string.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-08.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-08.html
deleted file mode 100644
index 8d12eadce7..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-08.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Broken Bookshelf:
-When you cut the string, it falls to the floor and you hear a faint sigh.
-Shall you read the book?
-Read the book.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-09.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-09.html
deleted file mode 100644
index d91eecf003..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-09.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Broken Bookshelf:
-"Month of Shilen, 15th day.
-Lately, Father spends all his days with Nidrah! He doesn't take care of the manor like he should. What makes him so angry?
-What's this?!
-"It's Lidia's Diary!"
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-10.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-10.html
deleted file mode 100644
index 37b4358938..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-10.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Broken Bookshelf:
-It's a journal that belonged to Lidia von Hellmann. It probably has a lot of useful information in it!
-Pick up the journal.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-11.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-11.html
deleted file mode 100644
index ad6aced3a7..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-11.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Broken Bookshelf:
-You've found Lidia's Diary!
-Check the bookshelf again. You may find something else.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-12.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-12.html
deleted file mode 100644
index 6db064a55d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-12.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Broken Bookshelf:
-In the chest where you found the book, you also find a hairpin shaped like a Moon Face Flower.
-Examine the hairpin.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-13.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-13.html
deleted file mode 100644
index ce7be3bba5..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-13.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Broken Bookshelf:
-The locker is empty.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31530-01.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31530-01.html
deleted file mode 100644
index 0964ea2811..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31530-01.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Box:
-It's an antique box with the von Hellmann family seal on the lock.
-Use the Silver Spear key.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31530-02.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31530-02.html
deleted file mode 100644
index fcea7452be..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31530-02.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Box:
-The box opens.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31530-03.html b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31530-03.html
deleted file mode 100644
index 1e5d9316ad..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31530-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Box:
-It's empty.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/Q00023_LidiasHeart.java b/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/Q00023_LidiasHeart.java
deleted file mode 100644
index e124e4b599..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/Q00023_LidiasHeart.java
+++ /dev/null
@@ -1,509 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00023_LidiasHeart;
-
-import quests.Q00024_InhabitantsOfTheForestOfTheDead.Q00024_InhabitantsOfTheForestOfTheDead;
-
-import com.l2jserver.gameserver.enums.QuestSound;
-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.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
-import com.l2jserver.gameserver.network.serverpackets.NpcSay;
-
-/**
- * Lidia's Heart (23)
- * @author ivantotov
- */
-public final class Q00023_LidiasHeart extends Quest
-{
- // NPCs
- private static final int HIGH_PRIEST_INNOCENTIN = 31328;
- private static final int TRADER_VIOLET = 31386;
- private static final int TOMBSTONE = 31523;
- private static final int GHOST_OF_VON_HELLMANN = 31524;
- private static final int BROKEN_BOOKSHELF = 31526;
- private static final int BOX = 31530;
- // Items
- private static final int LIDIAS_DIARY = 7064;
- private static final int SILVER_KEY = 7149;
- private static final int SILVER_SPEAR = 7150;
- // Reward
- private static final int MAP_FOREST_OF_THE_DEAD = 7063;
- private static final int LIDIAS_HAIRPIN = 7148;
- // Misc
- private static final int MIN_LEVEL = 64;
- // Locations
- private static final Location GHOST_SPAWN = new Location(51432, -54570, -3136);
-
- public Q00023_LidiasHeart()
- {
- super(23, Q00023_LidiasHeart.class.getSimpleName(), "Lidia's Heart");
- addStartNpc(HIGH_PRIEST_INNOCENTIN);
- addTalkId(HIGH_PRIEST_INNOCENTIN, TRADER_VIOLET, TOMBSTONE, GHOST_OF_VON_HELLMANN, BROKEN_BOOKSHELF, BOX);
- addSpawnId(GHOST_OF_VON_HELLMANN);
- registerQuestItems(LIDIAS_DIARY, SILVER_KEY, SILVER_SPEAR);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- if ("DESPAWN".equals(event))
- {
- final L2Npc npc0 = npc.getVariables().getObject("npc0", L2Npc.class);
- if (npc0 != null)
- {
- npc0.getVariables().set("SPAWNED", false);
- }
- npc.deleteMe();
- return super.onAdvEvent(event, npc, player);
- }
-
- final QuestState qs = getQuestState(player, false);
- if (qs == null)
- {
- return null;
- }
-
- String htmltext = null;
- switch (event)
- {
- case "ACCEPT":
- {
- if (player.getLevel() < MIN_LEVEL)
- {
- htmltext = "31328-02.htm";
- }
- else
- {
- if (!hasQuestItems(player, MAP_FOREST_OF_THE_DEAD))
- {
- giveItems(player, MAP_FOREST_OF_THE_DEAD, 1);
- }
- giveItems(player, SILVER_KEY, 1);
- qs.startQuest();
- qs.setMemoState(1);
- htmltext = "31328-03.htm";
- }
- break;
- }
- case "31328-05.html":
- case "31328-06.html":
- case "31328-10.html":
- case "31328-11.html":
- case "31328-16.html":
- case "31328-17.html":
- case "31328-18.html":
- case "31524-03.html":
- case "31526-04.html":
- case "31526-05.html":
- case "31526-07a.html":
- case "31526-09.html":
- {
- htmltext = event;
- break;
- }
- case "31328-07.html":
- {
- if (qs.isMemoState(1))
- {
- qs.setMemoState(2);
- qs.setCond(2, true);
- htmltext = event;
- }
- break;
- }
- case "31328-12.html":
- {
- if (qs.isMemoState(5) || qs.isMemoState(6))
- {
- qs.setMemoState(6);
- qs.setCond(5);
- htmltext = event;
- }
- break;
- }
- case "31328-13.html":
- {
- if (qs.isMemoState(5) || qs.isMemoState(6))
- {
- qs.setMemoState(7);
- htmltext = event;
- }
- break;
- }
- case "31328-19.html":
- {
- playSound(player, QuestSound.AMBSOUND_MT_CREAK);
- htmltext = event;
- break;
- }
- case "31328-20.html":
- {
- if (qs.isMemoState(7))
- {
- qs.setMemoState(8);
- qs.setCond(6);
- htmltext = event;
- }
- break;
- }
- case "31328-21.html":
- {
- qs.setCond(5);
- htmltext = event;
- break;
- }
- case "31523-02.html":
- {
- if (qs.isMemoState(8) || qs.isMemoState(9))
- {
- playSound(player, QuestSound.SKILLSOUND_HORROR_02);
- if (!npc.getVariables().getBoolean("SPAWNED", false))
- {
- npc.getVariables().set("SPAWNED", true);
- final L2Npc ghost = addSpawn(npc, GHOST_OF_VON_HELLMANN, GHOST_SPAWN, false, 0);
- ghost.getVariables().set("npc0", npc);
- htmltext = event;
- }
- else
- {
- htmltext = "31523-03.html";
- }
- }
- break;
- }
- case "31523-06.html":
- {
- if (qs.isMemoState(9))
- {
- giveItems(player, SILVER_KEY, 1);
- qs.setMemoState(10);
- qs.setCond(8);
- htmltext = event;
- }
- break;
- }
- case "31524-02.html":
- {
- playSound(player, QuestSound.CHRSOUND_MHFIGHTER_CRY);
- htmltext = event;
- break;
- }
- case "31524-04.html":
- {
- if (qs.isMemoState(8))
- {
- takeItems(player, LIDIAS_DIARY, 1);
- qs.setMemoState(9);
- qs.setCond(7);
- htmltext = event;
- }
- break;
- }
- case "31526-02.html":
- {
- if (qs.isMemoState(2) && hasQuestItems(player, SILVER_KEY))
- {
- takeItems(player, SILVER_KEY, -1);
- qs.setMemoState(3);
- htmltext = event;
- }
- break;
- }
- case "31526-06.html":
- {
- if (!hasQuestItems(player, LIDIAS_HAIRPIN))
- {
- giveItems(player, LIDIAS_HAIRPIN, 1);
- }
- qs.setMemoState(qs.getMemoState() + 1);
- if (hasQuestItems(player, LIDIAS_DIARY))
- {
- qs.setCond(4);
- }
- htmltext = event;
- break;
- }
- case "31526-08.html":
- {
- playSound(player, QuestSound.ITEMSOUND_ARMOR_LEATHER);
- htmltext = event;
- break;
- }
- case "31526-10.html":
- {
- playSound(player, QuestSound.AMBSOUND_EG_DRON);
- htmltext = event;
- break;
- }
- case "31526-11.html":
- {
- giveItems(player, LIDIAS_DIARY, 1);
- qs.setMemoState(qs.getMemoState() + 1);
- if (hasQuestItems(player, LIDIAS_HAIRPIN))
- {
- qs.setCond(4);
- }
- htmltext = event;
- break;
- }
- case "31530-02.html":
- {
- if (qs.isMemoState(11) && hasQuestItems(player, SILVER_KEY))
- {
- giveItems(player, SILVER_SPEAR, 1);
- takeItems(player, SILVER_KEY, -1);
- playSound(player, QuestSound.ITEMSOUND_WEAPON_SPEAR);
- qs.setCond(10);
- htmltext = event;
- }
- break;
- }
- }
- return htmltext;
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- final QuestState qs = getQuestState(player, true);
- String htmltext = getNoQuestMsg(player);
- if (qs.isCreated())
- {
- if (npc.getId() == HIGH_PRIEST_INNOCENTIN)
- {
- final QuestState q22 = player.getQuestState("22_TragedyInVonHellmannForest");
- if ((q22 != null) && q22.isCompleted())
- {
- htmltext = "31328-01.htm";
- }
- else
- {
- htmltext = "31328-01a.html";
- }
- }
- }
- else if (qs.isStarted())
- {
- switch (npc.getId())
- {
- case HIGH_PRIEST_INNOCENTIN:
- {
- switch (qs.getMemoState())
- {
- case 1:
- {
- htmltext = "31328-04.html";
- break;
- }
- case 2:
- {
- htmltext = "31328-08.html";
- break;
- }
- case 5:
- {
- htmltext = "31328-09.html";
- break;
- }
- case 6:
- {
- htmltext = "31328-14.html";
- break;
- }
- case 7:
- {
- htmltext = "31328-15.html";
- break;
- }
- case 8:
- {
- qs.setCond(6, true);
- htmltext = "31328-22.html";
- break;
- }
- }
- break;
- }
- case TRADER_VIOLET:
- {
- switch (qs.getMemoState())
- {
- case 10:
- {
- if (hasQuestItems(player, SILVER_KEY))
- {
- qs.setMemoState(11);
- qs.setCond(9, true);
- htmltext = "31386-01.html";
- }
- break;
- }
- case 11:
- {
- if (!hasQuestItems(player, SILVER_SPEAR))
- {
- htmltext = "31386-02.html";
- }
- else
- {
- giveAdena(player, 350000, true);
- addExpAndSp(player, 456893, 42112);
- qs.exitQuest(false, true);
- htmltext = "31386-03.html";
- }
- break;
- }
- }
- break;
- }
- case TOMBSTONE:
- {
- switch (qs.getMemoState())
- {
- case 8:
- {
- htmltext = "31523-01.html";
- break;
- }
- case 9:
- {
- htmltext = "31523-04.html";
- break;
- }
- case 10:
- {
- htmltext = "31523-05.html";
- break;
- }
- }
- break;
- }
- case GHOST_OF_VON_HELLMANN:
- {
- final int memoState = qs.getMemoState();
- if (memoState == 8)
- {
- htmltext = "31524-01.html";
- }
- else if (memoState == 9)
- {
- if (!hasQuestItems(player, SILVER_KEY))
- {
- htmltext = "31524-05.html";
- }
- }
- else if ((memoState == 9) || (memoState == 10))
- {
- if (hasQuestItems(player, SILVER_KEY))
- {
- qs.setMemoState(10);
- htmltext = "31524-06.html";
- }
- }
- break;
- }
- case BROKEN_BOOKSHELF:
- {
- switch (qs.getMemoState())
- {
- case 2:
- {
- if (hasQuestItems(player, SILVER_KEY))
- {
- qs.setCond(3, true);
- htmltext = "31526-01.html";
- }
- break;
- }
- case 3:
- {
- htmltext = "31526-03.html";
- break;
- }
- case 4:
- {
- if (hasQuestItems(player, LIDIAS_HAIRPIN))
- {
- htmltext = "31526-07.html";
- }
- else if (hasQuestItems(player, LIDIAS_DIARY))
- {
- htmltext = "31526-12.html";
- }
- break;
- }
- case 5:
- {
- if (hasQuestItems(player, LIDIAS_HAIRPIN, LIDIAS_DIARY))
- {
- htmltext = "31526-13.html";
- }
- break;
- }
- }
- break;
- }
- case BOX:
- {
- if (qs.getMemoState() == 11)
- {
- if (hasQuestItems(player, SILVER_KEY))
- {
- htmltext = "31530-01.html";
- }
- else if (hasQuestItems(player, SILVER_SPEAR))
- {
- htmltext = "31530-03.html";
- }
- }
- break;
- }
- }
- }
- else if (qs.isCompleted())
- {
- if (npc.getId() == HIGH_PRIEST_INNOCENTIN)
- {
- htmltext = getAlreadyCompletedMsg(player);
- }
- else if (npc.getId() == TRADER_VIOLET)
- {
- final QuestState q24 = player.getQuestState(Q00024_InhabitantsOfTheForestOfTheDead.class.getSimpleName());
- if ((q24 == null))
- {
- htmltext = "31386-04.html";
- }
- }
- }
- return htmltext;
- }
-
- @Override
- public String onSpawn(L2Npc npc)
- {
- startQuestTimer("DESPAWN", 300000, npc, null);
- npc.broadcastPacket(new NpcSay(npc, Say2.NPC_ALL, NpcStringId.WHO_AWOKE_ME));
- return super.onSpawn(npc);
- }
-}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-01.htm b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-01.htm
deleted file mode 100644
index 3f6990629b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-01.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Dorian:
-Are you the one who recovered the Silver Spear? Your reputation precedes you! Actually, I have a problem you may be able to help me with!
-Would you be willing to help me?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-02.htm b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-02.htm
deleted file mode 100644
index 6b7c852d44..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-02.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Dorian:
-Oh...? Was it really you who recovered the Silver Spear?
-I must have misjudged you! I thought you were more experienced...
-(Only a character of level 65 or above who has fulfilled the Lidia's Heart quest can undertake this quest.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-03.htm b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-03.htm
deleted file mode 100644
index 6a7c9dda4b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-03.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Dorian:
-Every day I place a flower in front of a tombstone on my way to the castle in the south part of the village, but I've been having severe pains in my legs all day! Would you place this flower in front of the tombstone for me?
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-04.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-04.html
deleted file mode 100644
index a0a07d14ce..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-04.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Dorian:
-Please place a flower in front of the tombstone in the southern part of the village. I'll tell you the rest of the story when you come back.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-05.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-05.html
deleted file mode 100644
index a15e68265b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-05.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Dorian:
-Did you place the flower at the tombstone? Did you notice who was buried in that grave?
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-06.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-06.html
deleted file mode 100644
index 6d22d804a3..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-06.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Dorian:
-Did you really put the flower there?
-This task requires someone with keen observation and insight, not someone who could not even look upon the grave!
-I hoped that it was you who would recover the Silver Spear...
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-07.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-07.html
deleted file mode 100644
index 6d22d804a3..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-07.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Dorian:
-Did you really put the flower there?
-This task requires someone with keen observation and insight, not someone who could not even look upon the grave!
-I hoped that it was you who would recover the Silver Spear...
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-08.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-08.html
deleted file mode 100644
index 02e7e17487..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-08.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Dorian:
-Yes! Rose rests there... She was the maid Mr. Alfred, my former master, assigned to his daughter. They were about the same age.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-09.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-09.html
deleted file mode 100644
index 42f434610a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-09.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Dorian:
-Yes! Rose rests there... She was the maid Mr. Alfred, my former master, assigned to his daughter. They were about the same age.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-10.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-10.html
deleted file mode 100644
index f35443b8d8..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-10.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Dorian:
-Why, she's Lady Lidia, current lord of this manor! She thought highly of Rose, and didn't want her coming back as an undead! Lady Lidia graciously allowed Rose to rest in peace. That's better than most others get around here!
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-11.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-11.html
deleted file mode 100644
index fe4048facc..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-11.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Dorian:
-I don't know, exactly. All I know is, my fiance was with Lady Lidia, and died protecting her!
-Anyway, thank you for taking the flower to Rose's grave.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-12.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-12.html
deleted file mode 100644
index c44120992e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-12.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Dorian:
-Oh, don't be so modest! You remembered Rose's name! And you asked such respectful questions!
-You're obviously a wonderful person! Do you suppose you could do something else for me?
-Recently my nights have been dreamless, and I've woken up with wounds that I don't remember getting! Something strange is going on in this village! Will you investigate?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-13.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-13.html
deleted file mode 100644
index f87533f9a3..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-13.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Dorian:
-Excellent! Take this crucifix, just in case! This forest is very dangerous, you never know what might jump out at you!
-Please observe the village and try to determine what is going on there at night!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-14.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-14.html
deleted file mode 100644
index bb939be20e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-14.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Dorian:
-Observe the village closely. Help me figure out what's going on here!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-15.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-15.html
deleted file mode 100644
index 17b570675a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-15.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Dorian:
-I can't remember last night at all, and I'm exhausted! Have you discovered anything?
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-16.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-16.html
deleted file mode 100644
index d3565469ab..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-16.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Dorian:
-A vampire, eh?! Hmm... I see. Is the lord of the manor coming down here making the rounds? Hmm...Why am I so tired then?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-17.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-17.html
deleted file mode 100644
index 80e82bc286..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-17.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Dorian:
-Nooo!
-It can't be! Me? A vampire? It's true that the lord of the manor I serve is an undead... But that doesn't mean I'm a vampire!
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-18.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-18.html
deleted file mode 100644
index 62040260ea..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-18.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Dorian:
-I gave you that! ...I see. Now I remember...
-Young master Einhart and... and... you! You were standing there... holding the holy symbol!
-Now I know... why the lord gave me such an order!
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-19.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-19.html
deleted file mode 100644
index 0e36e244e9..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-19.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Dorian:
-This has all been a test! The lord himself ordered it!
-I think you might have something that belongs to him!
-Go to a bookshelf in the southwest part of the forest, you'll meet the maid of the lord. She only appears at night.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-20.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-20.html
deleted file mode 100644
index 0a20b79fcd..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-20.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Dorian:
-So, you haven't met the maid of our lord yet? Remember, she only appears at night. Naturally, things get pretty scary around here after dark... You should really be careful!
-But I'm sure you can handle it!
-Go to the bookshelf in the southwest part of the forest, the maid of the lord will be there. Meet her there at night!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-21.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-21.html
deleted file mode 100644
index 8d0035f070..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-21.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Dorian:
-Oh, come in! Say, you must've dropped this the last time you were here! It looks very valuable! You should keep it in a safe place.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-22.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-22.html
deleted file mode 100644
index a3785ddebf..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31389-22.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Dorian:
-Did you see the maid of the lord? I have no memories after dark, so I have no idea what she's like!
-I've heard that she's quite beautiful! I was even told that she resembles my fiance!
-At least she's... alive! What a privilege, even if it's only during the day! Oh, well, I shouldn't be talking about this...
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-01.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-01.html
deleted file mode 100644
index 85ad96f5a2..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-01.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Mysterious Wizard:
-Long time no see. Things sure are quiet these days!
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-02.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-02.html
deleted file mode 100644
index 5857841976..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-02.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Mysterious Wizard:
-What are you talking about?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-03.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-03.html
deleted file mode 100644
index 28782169ad..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-03.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Mysterious Wizard:
-Oh, that. It's an amulet to help my puppets collect bone pieces in the forest without getting hurt.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-04.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-04.html
deleted file mode 100644
index 5af6dca09b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-04.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Mysterious Wizard:
-It may look a little odd, but it's just an amulet.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-05.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-05.html
deleted file mode 100644
index 876dc0e07a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-05.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Mysterious Wizard:
-What did you hear?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-06.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-06.html
deleted file mode 100644
index e7dec180a4..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-06.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Mysterious Wizard:
-Where did you hear the name Nidrah?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-07.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-07.html
deleted file mode 100644
index 9fb600a35e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-07.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Mysterious Wizard:
-So, you're under the protection of Lady Lidia.
-We've signed a mutual contract not to harm each other.
-This doll was made by Nidrah, and tells the Lord of the Forest of the Dead not to attack its bearer.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-08.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-08.html
deleted file mode 100644
index d7bfa2988c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-08.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Mysterious Wizard:
-This much I can tell you.
-I'm a Dark Mage, that's how I got it! You just can't tell the future, can you?
-Come back when you have more confidence in me.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-09.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-09.html
deleted file mode 100644
index 14dabd92ae..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-09.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Mysterious Wizard:
-You trust me now? Tell me about Nidrah!
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-10.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-10.html
deleted file mode 100644
index 5900db2859..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-10.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Mysterous Wizard:
-So tell me!
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-11.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-11.html
deleted file mode 100644
index 031f7a913c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-11.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Mysterious Wizard:
-Where is your proof?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-12.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-12.html
deleted file mode 100644
index 4358403324..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-12.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Mysterious Wizard:
-So?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-13.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-13.html
deleted file mode 100644
index 77e71d4644..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-13.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Mysterious Wizard:
-So I made a mistake. What's wrong with that?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-14.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-14.html
deleted file mode 100644
index eb40aa842f..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-14.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Mysterious Wizard:
-History is filled with such contracts. Do you know why?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-15.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-15.html
deleted file mode 100644
index 7c05eb2924..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-15.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Mysterious Wizard:
-Go on.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-16.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-16.html
deleted file mode 100644
index 21b29fa01d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-16.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Mysterious Wizard:
-You think I have something to do with Nidrah?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-17.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-17.html
deleted file mode 100644
index a68cbc1427..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-17.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Mysterious Wizard:
-Let's say for arguments sake that I'm Nidrah. What difference would that make?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-18.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-18.html
deleted file mode 100644
index a68cbc1427..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-18.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Mysterious Wizard:
-Let's say for arguments sake that I'm Nidrah. What difference would that make?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-19.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-19.html
deleted file mode 100644
index 3b2174e092..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-19.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Mysterious Wizard:
-You found the diary! You're tracking Nidrah.
-Going further may be difficult, you're following a dangerous man. If you insist, you'll need the key.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-20.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-20.html
deleted file mode 100644
index 72945b5b1e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-20.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Mysterious Wizard:
-The Priest of the Rune Township has the key. I'll give you the doll, it represents the person who carried the real authority in the Hellmann Forest and Rune Territory, even over Lidia.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-21.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-21.html
deleted file mode 100644
index 187feac45d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-21.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Mysterious Wizard:
-I can't tell you, but you may find out soon.
-Come on, show the doll to the priest at the temple of the Rune Township. Ask him about the one who hides behind the truth.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-22.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-22.html
deleted file mode 100644
index b537b2efec..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31522-22.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Mysterious Mage:
-Visit the temple of the Rune Township if you want to learn more about them. Ask about the one who hides the truth...
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31531-01.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31531-01.html
deleted file mode 100644
index 0f80109acd..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31531-01.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Tombstone:
-Here lies Rose, a faithful, loving servant. May she rest in peace.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31531-02.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31531-02.html
deleted file mode 100644
index facd6c78ab..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31531-02.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Tombstone:
-You've placed flowers on the grave.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31531-03.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31531-03.html
deleted file mode 100644
index 843268724c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31531-03.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Tombstone:
-The tombstone bears an epitaph:
-Here lies Rose, a faithful and loving servant. May she rest in peace.
-Moon Face Flowers bloom brilliantly around the tomb.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-01.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-01.html
deleted file mode 100644
index 94aa7591e9..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-01.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Maid of Lidia:
-My lady thanks you for recovering the Silver Spear. It's a family treasure.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-02.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-02.html
deleted file mode 100644
index 913f543c2e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-02.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Maid of Lidia:
-She knows how you helped her ancestors rest in peace. My lady knows all that happens in her forest!
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-03.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-03.html
deleted file mode 100644
index 86c8a19ac8..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-03.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Maid of Lidia:
-My lady knows everything about your journeys here. She hopes you'll uncover all the details of what has transpired.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-04.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-04.html
deleted file mode 100644
index 71c0d3c245..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-04.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Maid of Lidia:
-Come back after reading this letter from my lady.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-05.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-05.html
deleted file mode 100644
index 2512343914..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-05.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Maid of Lidia:
-I don't know what it says, I wouldn't dream of reading the letter meant for my lord!
-I was told you had something for me?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-06.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-06.html
deleted file mode 100644
index e1531eb175..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-06.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Maid of Lidia:
-This is Neidrahu's work, a hairpin of Moon Face Flower. How beautiful!
-I must go now.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-07.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-07.html
deleted file mode 100644
index 7b7810ae9c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-07.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Maid of Lidia:
-Oh no! Could you have dropped it in the village? Take the letter with you and ask around for it. Meet me again tomorrow night.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-07a.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-07a.html
deleted file mode 100644
index 6e0f64abef..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-07a.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Maid of Lidia:
-Do you have something for me?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-08.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-08.html
deleted file mode 100644
index d9fbccec6b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-08.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Maid of Lidia:
-What is it?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-09.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-09.html
deleted file mode 100644
index 5bf8566642..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-09.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Maid of Lidia:
-What is it?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-10.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-10.html
deleted file mode 100644
index eaa34b0a3c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-10.html
+++ /dev/null
@@ -1,7 +0,0 @@
-Maid of Lidia:
-Did I say Neidrahu?
-What do you know of the name?
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-11.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-11.html
deleted file mode 100644
index eaa34b0a3c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-11.html
+++ /dev/null
@@ -1,7 +0,0 @@
-Maid of Lidia:
-Did I say Neidrahu?
-What do you know of the name?
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-12.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-12.html
deleted file mode 100644
index cdfa240581..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-12.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Maid of Lidia:
-Perhaps there is a tree with that name. Why would you think I had anything to do with this?
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-13.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-13.html
deleted file mode 100644
index 8b6622e529..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-13.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Maid of Lidia:
-This manor is covered in corpses. This is the Forest of the Dead. Why do you keep asking about it?
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-14.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-14.html
deleted file mode 100644
index 1592fa52a2..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-14.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Maid of Lidia:
-What kind of Mystic was he?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-15.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-15.html
deleted file mode 100644
index 027b5582d6..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-15.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Maid of Lidia:
-Oh! Only Lord Alfred and Lady Lidia know. Even Einhalder thinks he's an ordinary Mystic! How do you know of this?
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-16.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-16.html
deleted file mode 100644
index efc11d59f9..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-16.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Maid of Lidia:
-Did you read of the contract between Neidrahu and my lady in the diary?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-17.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-17.html
deleted file mode 100644
index 73dd03b908..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-17.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Maid of Lidia:
-How do you know about Neidrahu? Are you the last survivor? If so, you'll never get out of this forest alive...or dead!
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-18.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-18.html
deleted file mode 100644
index 6d7ecb7f88..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-18.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Maid of Lidia:
-I was there when the contract was signed, but the memory of the undead is not very clear.
-If you find out what's on the missing page, when the contract was signed, I'll tell you more.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-19.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-19.html
deleted file mode 100644
index 4c314a7983..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-19.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Maid of Lidia:
-This I can tell you.
-The black magi roam freely during the day, but are fewer at night. Some carry odd looking dolls. Take one to their master, I'm sure he can tell you more!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-20.html b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-20.html
deleted file mode 100644
index 4c314a7983..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/31532-20.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Maid of Lidia:
-This I can tell you.
-The black magi roam freely during the day, but are fewer at night. Some carry odd looking dolls. Take one to their master, I'm sure he can tell you more!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/Q00024_InhabitantsOfTheForestOfTheDead.java b/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/Q00024_InhabitantsOfTheForestOfTheDead.java
deleted file mode 100644
index b812075cb2..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/Q00024_InhabitantsOfTheForestOfTheDead.java
+++ /dev/null
@@ -1,350 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00024_InhabitantsOfTheForestOfTheDead;
-
-import quests.Q00023_LidiasHeart.Q00023_LidiasHeart;
-
-import com.l2jserver.gameserver.enums.QuestSound;
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-
-/**
- * Inhabitants of the Forest of the Dead (24)
- * @author malyelfik
- */
-public class Q00024_InhabitantsOfTheForestOfTheDead extends Quest
-{
- // NPCs
- private static final int DORIAN = 31389;
- private static final int MYSTERIOUS_WIZARD = 31522;
- private static final int TOMBSTONE = 31531;
- private static final int LIDIA_MAID = 31532;
- // Items
- private static final int LIDIA_LETTER = 7065;
- private static final int LIDIA_HAIRPIN = 7148;
- private static final int SUSPICIOUS_TOTEM_DOLL = 7151;
- private static final int FLOWER_BOUQUET = 7152;
- private static final int SILVER_CROSS_OF_EINHASAD = 7153;
- private static final int BROKEN_SILVER_CROSS_OF_EINHASAD = 7154;
- private static final int TOTEM = 7156;
- // Monsters
- // @formatter:off
- private static final int[] MOBS = { 21557, 21558, 21560, 21563, 21564, 21565, 21566, 21567 };
- // @formatter:on
-
- public Q00024_InhabitantsOfTheForestOfTheDead()
- {
- super(24, Q00024_InhabitantsOfTheForestOfTheDead.class.getSimpleName(), "Inhabitants of the Forest of the Dead");
- addStartNpc(DORIAN);
- addTalkId(DORIAN, MYSTERIOUS_WIZARD, TOMBSTONE, LIDIA_MAID);
- addKillId(MOBS);
- registerQuestItems(LIDIA_LETTER, LIDIA_HAIRPIN, SUSPICIOUS_TOTEM_DOLL, FLOWER_BOUQUET, SILVER_CROSS_OF_EINHASAD, BROKEN_SILVER_CROSS_OF_EINHASAD);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return null;
- }
-
- String htmltext = event;
- switch (event)
- {
- // Dorian
- case "31389-02.htm":
- final QuestState qs = player.getQuestState(Q00023_LidiasHeart.class.getSimpleName());
- if ((player.getLevel() >= 65) && (qs != null) && qs.isCompleted())
- {
- st.startQuest();
- st.giveItems(FLOWER_BOUQUET, 1);
- return "31389-03.htm";
- }
- break;
- case "31389-08.html":
- st.set("var", "1");
- break;
- case "31389-13.html":
- st.giveItems(SILVER_CROSS_OF_EINHASAD, 1);
- st.setCond(3, true);
- st.unset("var");
- break;
- case "31389-18.html":
- st.playSound(QuestSound.INTERFACESOUND_CHARSTAT_OPEN);
- break;
- case "31389-19.html":
- if (!st.hasQuestItems(BROKEN_SILVER_CROSS_OF_EINHASAD))
- {
- return getNoQuestMsg(player);
- }
- st.takeItems(BROKEN_SILVER_CROSS_OF_EINHASAD, -1);
- st.setCond(5, true);
- break;
- case "31389-06.html":
- case "31389-07.html":
- case "31389-10.html":
- case "31389-11.html":
- case "31389-12.html":
- case "31389-16.html":
- case "31389-17.html":
- break;
- // Lidia Maid
- case "31532-04.html":
- st.giveItems(LIDIA_LETTER, 1);
- st.setCond(6, true);
- break;
- case "31532-07.html":
- if (st.isCond(8))
- {
- if (!hasQuestItems(player, LIDIA_HAIRPIN, LIDIA_LETTER))
- {
- return getNoQuestMsg(player);
- }
- st.takeItems(LIDIA_HAIRPIN, -1);
- st.takeItems(LIDIA_LETTER, -1);
- st.set("var", "1");
- htmltext = "31532-06.html";
- }
- else
- {
- if (st.isCond(6))
- {
- st.setCond(7, true);
- }
- }
- break;
- case "31532-10.html":
- st.set("var", "2");
- break;
- case "31532-14.html":
- st.set("var", "3");
- break;
- case "31532-19.html":
- st.unset("var");
- st.setCond(9, true);
- break;
- case "31532-02.html":
- case "31532-03.html":
- case "31532-09.html":
- case "31532-12.html":
- case "31532-13.html":
- case "31532-15.html":
- case "31532-16.html":
- case "31532-17.html":
- case "31532-18.html":
- break;
- // Mysterious Wizard
- case "31522-03.html":
- if (!st.hasQuestItems(SUSPICIOUS_TOTEM_DOLL))
- {
- return getNoQuestMsg(player);
- }
- st.takeItems(SUSPICIOUS_TOTEM_DOLL, 1);
- st.set("var", "1");
- break;
- case "31522-08.html":
- st.unset("var");
- st.setCond(11, true);
- break;
- case "31522-17.html":
- st.set("var", "1");
- break;
- case "31522-21.html":
- st.giveItems(TOTEM, 1);
- st.addExpAndSp(242105, 22529); // GoD: Harmony: 6191140 exp and 6118650 sp
- st.exitQuest(false, true);
- break;
- case "31522-02.html":
- case "31522-05.html":
- case "31522-06.html":
- case "31522-07.html":
- case "31522-10.html":
- case "31522-11.html":
- case "31522-12.html":
- case "31522-13.html":
- case "31522-14.html":
- case "31522-15.html":
- case "31522-16.html":
- case "31522-19.html":
- case "31522-20.html":
- break;
- // Tombstone
- case "31531-02.html":
- if (!st.hasQuestItems(FLOWER_BOUQUET))
- {
- return getNoQuestMsg(player);
- }
- st.takeItems(FLOWER_BOUQUET, -1);
- st.setCond(2, true);
- break;
- default:
- htmltext = null;
- break;
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
- {
- final QuestState st = getQuestState(player, false);
-
- if ((st != null) && st.isCond(9) && (getRandom(100) < 10))
- {
- st.giveItems(SUSPICIOUS_TOTEM_DOLL, 1);
- st.setCond(10, true);
- }
- return super.onKill(npc, player, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- String htmltext = getNoQuestMsg(player);
- final QuestState st = getQuestState(player, true);
-
- if (st == null)
- {
- return htmltext;
- }
-
- switch (npc.getId())
- {
- case DORIAN:
- switch (st.getState())
- {
- case State.CREATED:
- htmltext = "31389-01.htm";
- break;
- case State.STARTED:
- switch (st.getCond())
- {
- case 1:
- htmltext = "31389-04.html";
- break;
- case 2:
- htmltext = (st.getInt("var") == 0) ? "31389-05.html" : "31389-09.html";
- break;
- case 3:
- htmltext = "31389-14.html";
- break;
- case 4:
- htmltext = "31389-15.html";
- break;
- case 5:
- htmltext = "31389-20.html";
- break;
- case 6:
- case 8:
- htmltext = "31389-22.html";
- break;
- case 7:
- st.giveItems(LIDIA_HAIRPIN, 1);
- st.setCond(8, true);
- htmltext = "31389-21.html";
- break;
- }
- break;
- case State.COMPLETED:
- htmltext = getAlreadyCompletedMsg(player);
- break;
- }
- break;
- case MYSTERIOUS_WIZARD:
- if (st.isStarted())
- {
- if (st.isCond(10))
- {
- htmltext = (st.getInt("var") == 0) ? "31522-01.html" : "31522-04.html";
- }
- else if (st.isCond(11))
- {
- htmltext = (st.getInt("var") == 0) ? "31522-09.html" : "31522-18.html";
- }
- }
- else if (st.isCompleted())
- {
- final QuestState qs = player.getQuestState("25_HidingBehindTheTruth");
- if (!((qs != null) && (qs.isStarted() || qs.isStarted())))
- {
- htmltext = "31522-22.html";
- }
- }
- break;
- case TOMBSTONE:
- if (st.isStarted())
- {
- if (st.isCond(1))
- {
- st.playSound(QuestSound.AMDSOUND_WIND_LOOT);
- htmltext = "31531-01.html";
- }
- else if (st.isCond(2))
- {
- htmltext = "31531-03.html";
- }
- }
- break;
- case LIDIA_MAID:
- if (st.isStarted())
- {
- switch (st.getCond())
- {
- case 5:
- htmltext = "31532-01.html";
- break;
- case 6:
- htmltext = "31532-05.html";
- break;
- case 7:
- htmltext = "31532-07a.html";
- break;
- case 8:
- switch (st.getInt("var"))
- {
- case 0:
- htmltext = "31532-07a.html";
- break;
- case 1:
- htmltext = "31532-08.html";
- break;
- case 2:
- htmltext = "31532-11.html";
- break;
- case 3:
- htmltext = "31532-15.html";
- break;
- }
- break;
- case 9:
- case 10:
- htmltext = "31532-20.html";
- break;
- }
- }
- break;
- }
- return htmltext;
- }
-}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00027_ChestCaughtWithABaitOfWind/31434-00.htm b/trunk/dist/game/data/scripts/quests/Q00027_ChestCaughtWithABaitOfWind/31434-00.htm
deleted file mode 100644
index 7932c2209e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00027_ChestCaughtWithABaitOfWind/31434-00.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Blueprint Seller Shaling:
-Hello! what ca I do for you? Do you need the blueprint for an extraordinary golem? Sorry, but I have only ordinary ones left now.
-Recently, I completed a really great golem bluprint, but I accidently dropped it off of the bridge and lost it! What a terrible loss!
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00027_ChestCaughtWithABaitOfWind/31434-01.htm b/trunk/dist/game/data/scripts/quests/Q00027_ChestCaughtWithABaitOfWind/31434-01.htm
deleted file mode 100644
index 0b507c4842..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00027_ChestCaughtWithABaitOfWind/31434-01.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Blueprint Seller Shaling:
-This is amazing! How did you find it? You must be a great adventurer! Thank you so much! Please accept this token of my appreciation!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00027_ChestCaughtWithABaitOfWind/31434-02.htm b/trunk/dist/game/data/scripts/quests/Q00027_ChestCaughtWithABaitOfWind/31434-02.htm
deleted file mode 100644
index 05f375f5fa..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00027_ChestCaughtWithABaitOfWind/31434-02.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Blueprint Seller Shaling:
-You said you'd found the blueprint, but you have neither the blueprint nor the box! Are you teasing me?
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00027_ChestCaughtWithABaitOfWind/31570-01.htm b/trunk/dist/game/data/scripts/quests/Q00027_ChestCaughtWithABaitOfWind/31570-01.htm
deleted file mode 100644
index 0cb25f328f..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00027_ChestCaughtWithABaitOfWind/31570-01.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Fishermen's Guild Member Lanosco:
-Hello again! You got the bait of wind from me before. Did it work? Honestly, it's not intended to catch fish at all!
-But you look rather pleased with yourself! Did you catch anything? Besides fish, I mean!
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00027_ChestCaughtWithABaitOfWind/31570-02.htm b/trunk/dist/game/data/scripts/quests/Q00027_ChestCaughtWithABaitOfWind/31570-02.htm
deleted file mode 100644
index eff112d889..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00027_ChestCaughtWithABaitOfWind/31570-02.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Fishermen's Guild Member Lanosco:
-Well, it's obvious you're not here to buy fishing gear! Have you ever been fishing? Try it once, you'll be hooked! Heh heh! I'm the man to see when you need bait!
-(This quest may only be undertaken by characters of level 27 or above who have completed Lanosco's Special Bait quest.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00027_ChestCaughtWithABaitOfWind/31570-03.htm b/trunk/dist/game/data/scripts/quests/Q00027_ChestCaughtWithABaitOfWind/31570-03.htm
deleted file mode 100644
index bed19e454e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00027_ChestCaughtWithABaitOfWind/31570-03.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Fishermen's Guild Member Lanosco:
-A while back someone was here asking about a large blue treasure box. The bait I gave you earlier was designed to find it! Don't look so hurt! It only works if the person using it doesn't know about it. If you haven't found it yet, please continue to look for it. Only you can use that bait now.
-This should be easy for you! I can't tell you who the large blue treasure box belongs to now, but I will if you find it! It was lost near the shore. Look for it there. Your fishing skill must be level 9 and you must bring the box to me unopened. Someone else may have found it by now, so make sure to ask around about it in the market.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00027_ChestCaughtWithABaitOfWind/31570-04.htm b/trunk/dist/game/data/scripts/quests/Q00027_ChestCaughtWithABaitOfWind/31570-04.htm
deleted file mode 100644
index 265b37bff3..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00027_ChestCaughtWithABaitOfWind/31570-04.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Fishermen's Guild Member Lanosco:
-You're back! Did you finish your assignment already? Maybe I should've made it harder for you! Let me check it out... Is that the large blue treasure box?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00027_ChestCaughtWithABaitOfWind/31570-05.htm b/trunk/dist/game/data/scripts/quests/Q00027_ChestCaughtWithABaitOfWind/31570-05.htm
deleted file mode 100644
index fb3d2d1988..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00027_ChestCaughtWithABaitOfWind/31570-05.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Fishermen's Guild Member Lanosco:
-You're back! Did you finish your assignment already? No? Well then, by all means, go and find the large blue treasure box. It won't be easy to find, but I'm really counting on you!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00027_ChestCaughtWithABaitOfWind/31570-06.htm b/trunk/dist/game/data/scripts/quests/Q00027_ChestCaughtWithABaitOfWind/31570-06.htm
deleted file mode 100644
index 898135d4f4..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00027_ChestCaughtWithABaitOfWind/31570-06.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Fishermen's Guild Member Lanosco:
-I think this is the large blue treasure box that my client lost. It seems to contain a blueprint of golem. The only blacksmith in this whole area capable of making such a thing is Shaling in this village. She told me recently that she had dropped a box containing a blueprint in the river while she was traveling. This must be it! Please take this blueprint of golem to Shaling in the Blacksmith Shop.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00027_ChestCaughtWithABaitOfWind/31570-07.htm b/trunk/dist/game/data/scripts/quests/Q00027_ChestCaughtWithABaitOfWind/31570-07.htm
deleted file mode 100644
index 85fc5618e3..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00027_ChestCaughtWithABaitOfWind/31570-07.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Fishermen's Guild Member Lanosco:
-Why haven't you gone to see Shaling yet? Take the blueprint of golem to her in the Blacksmith Shop immediately!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00027_ChestCaughtWithABaitOfWind/Q00027_ChestCaughtWithABaitOfWind.java b/trunk/dist/game/data/scripts/quests/Q00027_ChestCaughtWithABaitOfWind/Q00027_ChestCaughtWithABaitOfWind.java
deleted file mode 100644
index 9a4ae01bcb..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00027_ChestCaughtWithABaitOfWind/Q00027_ChestCaughtWithABaitOfWind.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00027_ChestCaughtWithABaitOfWind;
-
-import quests.Q00050_LanoscosSpecialBait.Q00050_LanoscosSpecialBait;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-
-/**
- * Chest Caught With A Bait Of Wind (27)
- * Original Jython script by DooMIta.
- * @author nonom
- */
-public class Q00027_ChestCaughtWithABaitOfWind extends Quest
-{
- // NPCs
- private static final int LANOSCO = 31570;
- private static final int SHALING = 31434;
- // Items
- private static final int BLUE_TREASURE_BOX = 6500;
- private static final int STRANGE_BLUESPRINT = 7625;
- private static final int BLACK_PEARL_RING = 880;
-
- public Q00027_ChestCaughtWithABaitOfWind()
- {
- super(27, Q00027_ChestCaughtWithABaitOfWind.class.getSimpleName(), "Chest Caught With A Bait Of Wind");
- addStartNpc(LANOSCO);
- addTalkId(LANOSCO, SHALING);
- registerQuestItems(STRANGE_BLUESPRINT);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- String htmltext = event;
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return htmltext;
- }
-
- switch (event)
- {
- case "31570-03.htm":
- st.startQuest();
- break;
- case "31570-05.htm":
- if (st.isCond(1) && st.hasQuestItems(BLUE_TREASURE_BOX))
- {
- htmltext = "31570-06.htm";
- st.setCond(2, true);
- st.giveItems(STRANGE_BLUESPRINT, 1);
- st.takeItems(BLUE_TREASURE_BOX, -1);
- }
- break;
- case "31434-02.htm":
- if (st.isCond(2) && st.hasQuestItems(STRANGE_BLUESPRINT))
- {
- st.giveItems(BLACK_PEARL_RING, 1);
- st.exitQuest(false, true);
- htmltext = "31434-01.htm";
- }
- break;
-
- }
- return htmltext;
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- String htmltext = getNoQuestMsg(player);
- final QuestState st = getQuestState(player, true);
- if (st == null)
- {
- return htmltext;
- }
-
- switch (st.getState())
- {
- case State.COMPLETED:
- htmltext = getAlreadyCompletedMsg(player);
- break;
- case State.CREATED:
- final QuestState qs = player.getQuestState(Q00050_LanoscosSpecialBait.class.getSimpleName());
- if (npc.getId() == LANOSCO)
- {
- htmltext = "31570-02.htm";
- if (qs != null)
- {
- htmltext = ((player.getLevel() >= 27) && qs.isCompleted()) ? "31570-01.htm" : htmltext;
- }
- }
- break;
- case State.STARTED:
- switch (npc.getId())
- {
- case LANOSCO:
- if (st.isCond(1))
- {
- if (st.hasQuestItems(BLUE_TREASURE_BOX))
- {
- htmltext = "31570-04.htm";
- }
- else
- {
- htmltext = "31570-05.htm";
- }
- }
- else
- {
- htmltext = "31570-07.htm";
- }
- break;
- case SHALING:
- if (st.isCond(2))
- {
- htmltext = "31434-00.htm";
- }
- break;
- }
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/31442-01.htm b/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/31442-01.htm
deleted file mode 100644
index d8814ff911..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/31442-01.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Mineral Trader Kiki:
-If you're not here to buy minerals, why have you come?
-You must be either a soldier or a traveler.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/31442-02.htm b/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/31442-02.htm
deleted file mode 100644
index 31a98cf81e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/31442-02.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Mineral Trader Kiki:
-The letter!
-I had given up on it. The guild sent it a while back, but the ship ran aground and all was feared lost.
-Thank you.
-Don't let anyone else know about this! If word got out that Dwarves had lost it, it could damage our reputation as the most reliable race! Here is a gift for your trouble. As a Dwarf, I must show my gratitude for your kindness.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/31442-03.htm b/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/31442-03.htm
deleted file mode 100644
index 6933d0bba6..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/31442-03.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Mineral Trader Kiki:
-A letter for me? You must be mistaken. Dwarves never lose anything! You must have misunderstood.
-Now, if you're not going to buy anything, get lost!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/31572-01.htm b/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/31572-01.htm
deleted file mode 100644
index 4e50443aa8..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/31572-01.htm
+++ /dev/null
@@ -1,7 +0,0 @@
-Fishermen's Guild Member O'Fulle:
-Welcome back! You got the bait of chill before.
-You really did a number on those bandits! They're not all gone, however. Was the bait useful?
-It's not designed to catch fish, but has another, more valuable power!
-Did you catch anything? That bait was designed to catch something besides fish, by the way! If your fishing skill is level 12, you definitely should catch something with it! Have you found anything?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/31572-02.htm b/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/31572-02.htm
deleted file mode 100644
index b37c6846c0..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/31572-02.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Fishermen's Guild Member O'Fulle:
-Well, it's obvious you're not here to buy fishing gear! Have you ever been fishing? Try it once, you'll be hooked! Heh heh! I'm the man to see when you need bait!
-(This quest may only be undertaken by characters of level 36 or above who have completed O'Fulle's Special Bait quest.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/31572-03.htm b/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/31572-03.htm
deleted file mode 100644
index b468c8b868..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/31572-03.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Fishermen's Guild Member O'Fulle:
-Well, it's obvious you're not here to buy fishing gear!
-Have you ever been fishing? Try it once, you'll be hooked!
-Heh heh! I'm the man to see when you need bait!
-(This quest may only be undertaken by characters of level 36 or above who have completed O'Fulle's Special Bait quest.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/31572-04.htm b/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/31572-04.htm
deleted file mode 100644
index 453700ba20..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/31572-04.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Fishermen's Guild Member O'Fulle:
-Well, I hate to bring this up, but a while back, someone asked me to find a large yellow treasure box. The bait I gave you earlier was specifically designed to find it! Don't look at me like that! It wouldn't have worked if you had known!
-I hope it won't be too much trouble for you to find the large yellow treasure box. Use the bait of chill to find it. You'll find this bait works best when your fishing skill level is exactly 12. Someone may have already found it, so you should also ask around in the market.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/31572-05.htm b/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/31572-05.htm
deleted file mode 100644
index 5643a9b8d5..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/31572-05.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Fishermen's Guild Member O'Fulle:
-Did you find the large yellow treasure box If so, let me authenticate it! I'll open it to verify its contents.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/31572-06.htm b/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/31572-06.htm
deleted file mode 100644
index fe1468aad1..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/31572-06.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Fishermen's Guild Member O'Fulle:
-Are you finished already? No? Please, find the large yellow treasure box! If you can't find it by fishing, maybe you can get it from someone in the market.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/31572-07.htm b/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/31572-07.htm
deleted file mode 100644
index 9242ff5daa..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/31572-07.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Fishermen's Guild Member O'Fulle:
-This seems to be the large yellow treasure box that my client lost! When I opened it, it contained a letter addressed to Miss Kiki.
-The Dwarves must've really hated to lose this one! They're always bragging that they've never lost an item! Take this chest to Mineral Trader Kiki.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/31572-08.htm b/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/31572-08.htm
deleted file mode 100644
index 5204936cd4..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/31572-08.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Fishermen's Guild Member O'Fulle:
-Didn't you say you had found the large yellow treasure box?
-I must authenticate its contents!
-If you opened it, it's useless!
-You'll need to bring another, unopened one.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/31572-09.htm b/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/31572-09.htm
deleted file mode 100644
index 929da646a5..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/31572-09.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Fishermen's Guild Member O'Fulle:
-Why haven't you taken the chest to Miss Kiki yet? Take it to the Blacksmith Shop.
-The Dwarves lost it in a shipwreck at the mouth of the river while delivering it to her. This loss would totally disgrace the Dwarves! Best to keep it to yourself!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/Q00028_ChestCaughtWithABaitOfIcyAir.java b/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/Q00028_ChestCaughtWithABaitOfIcyAir.java
deleted file mode 100644
index d7ec723b54..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/Q00028_ChestCaughtWithABaitOfIcyAir.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00028_ChestCaughtWithABaitOfIcyAir;
-
-import quests.Q00051_OFullesSpecialBait.Q00051_OFullesSpecialBait;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-
-/**
- * Chest Caught With A Bait Of Icy Air (28)
- * Original Jython script by Skeleton.
- * @author nonom
- */
-public class Q00028_ChestCaughtWithABaitOfIcyAir extends Quest
-{
- // NPCs
- private static final int OFULLE = 31572;
- private static final int KIKI = 31442;
- // Items
- private static final int YELLOW_TREASURE_BOX = 6503;
- private static final int KIKIS_LETTER = 7626;
- private static final int ELVEN_RING = 881;
-
- public Q00028_ChestCaughtWithABaitOfIcyAir()
- {
- super(28, Q00028_ChestCaughtWithABaitOfIcyAir.class.getSimpleName(), "Chest Caught With A Bait Of Icy Air");
- addStartNpc(OFULLE);
- addTalkId(OFULLE, KIKI);
- registerQuestItems(KIKIS_LETTER);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- String htmltext = event;
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return htmltext;
- }
-
- switch (event)
- {
- case "31572-04.htm":
- st.startQuest();
- break;
- case "31572-08.htm":
- if (st.isCond(1) && st.hasQuestItems(YELLOW_TREASURE_BOX))
- {
- st.giveItems(KIKIS_LETTER, 1);
- st.takeItems(YELLOW_TREASURE_BOX, -1);
- st.setCond(2, true);
- htmltext = "31572-07.htm";
- }
- break;
- case "31442-03.htm":
- if (st.isCond(2) && st.hasQuestItems(KIKIS_LETTER))
- {
- st.giveItems(ELVEN_RING, 1);
- st.exitQuest(false, true);
- htmltext = "31442-02.htm";
- }
- break;
-
- }
- return htmltext;
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- String htmltext = getNoQuestMsg(player);
- final QuestState st = getQuestState(player, true);
- if (st == null)
- {
- return htmltext;
- }
-
- final int npcId = npc.getId();
- switch (st.getState())
- {
- case State.COMPLETED:
- htmltext = getAlreadyCompletedMsg(player);
- break;
- case State.CREATED:
- final QuestState qs = player.getQuestState(Q00051_OFullesSpecialBait.class.getSimpleName());
- if (npcId == OFULLE)
- {
- htmltext = "31572-02.htm";
- if (qs != null)
- {
- htmltext = ((player.getLevel() >= 36) && qs.isCompleted()) ? "31572-01.htm" : htmltext;
- }
- }
- break;
- case State.STARTED:
- switch (npcId)
- {
- case OFULLE:
- switch (st.getCond())
- {
- case 1:
- htmltext = "31572-06.htm";
- if (st.hasQuestItems(YELLOW_TREASURE_BOX))
- {
- htmltext = "31572-05.htm";
- }
- break;
- case 2:
- htmltext = "31572-09.htm";
- break;
- }
- break;
- case KIKI:
- if (st.isCond(2))
- {
- htmltext = "31442-01.htm";
- }
- break;
- }
- break;
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00029_ChestCaughtWithABaitOfEarth/30909-01.htm b/trunk/dist/game/data/scripts/quests/Q00029_ChestCaughtWithABaitOfEarth/30909-01.htm
deleted file mode 100644
index 27ae03d2aa..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00029_ChestCaughtWithABaitOfEarth/30909-01.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Magister Anabel:
-Neither love nor friendship will ever last between a mortal Human and an Elf.
-They fade with time, but memories, they'll last forever. What can I do for you?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00029_ChestCaughtWithABaitOfEarth/30909-02.htm b/trunk/dist/game/data/scripts/quests/Q00029_ChestCaughtWithABaitOfEarth/30909-02.htm
deleted file mode 100644
index 5954fb1053..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00029_ChestCaughtWithABaitOfEarth/30909-02.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Magister Anabel:
-Really? I asked Willie to find it for me... That bait has power beyond normal magic. It draws on the four elements of nature, earth, water, fire and air. The lost items find their own way in the water through the elements in the bait rather than trying to catch them with magic. I've studied magic for a hundred years, and I could never come up with that!
-Ah, Liesel. I miss her so much. We met long ago, and swore we would be friends forever. We made this Secret Box and buried it in the sand on Talking Island, where it was washed away by the waves. I am now 400 years old and she was Human, so only her ancestors are left. For this memory of my past, I offer you this gift, please take it.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00029_ChestCaughtWithABaitOfEarth/30909-03.htm b/trunk/dist/game/data/scripts/quests/Q00029_ChestCaughtWithABaitOfEarth/30909-03.htm
deleted file mode 100644
index 2cafc202ac..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00029_ChestCaughtWithABaitOfEarth/30909-03.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Magister Anabel:
-A box with our names? Ah Liesel, I miss her so. You don't have the box with you, but if you find it, please bring it to me.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00029_ChestCaughtWithABaitOfEarth/31574-01.htm b/trunk/dist/game/data/scripts/quests/Q00029_ChestCaughtWithABaitOfEarth/31574-01.htm
deleted file mode 100644
index 2613264c5e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00029_ChestCaughtWithABaitOfEarth/31574-01.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Fishermen's Guild Member Willie:
-Did the bait of land that I gave you work?
-Mastering the spirits of land can be tricky, but it's worth the effort.
-You may find that you catch more than you bargained for! Actually, this bait isn't intended to catch fish at all! We've had a few complaints about that...
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00029_ChestCaughtWithABaitOfEarth/31574-02.htm b/trunk/dist/game/data/scripts/quests/Q00029_ChestCaughtWithABaitOfEarth/31574-02.htm
deleted file mode 100644
index a5eb7495ba..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00029_ChestCaughtWithABaitOfEarth/31574-02.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Fishermen's Guild Member Willie:
-Well, it's obvious you're not here to buy fishing gear! Have you ever been fishing? Try it once, you'll be hooked! Heh heh! I'm the man to think of when you need bait!
-(This quest may only be undertaken by characters of level 48 or above who have completed Willie's Special Bait quest.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00029_ChestCaughtWithABaitOfEarth/31574-04.htm b/trunk/dist/game/data/scripts/quests/Q00029_ChestCaughtWithABaitOfEarth/31574-04.htm
deleted file mode 100644
index 58825f6516..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00029_ChestCaughtWithABaitOfEarth/31574-04.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Fishermen's Guild Member Willie:
-A while back someone was here asking about a small purple treasure box. The bait that I gave you before was designed to find it. The problem is that the bait occasionally catches other things, but it's the best hope you have of recovering the box. If you've found the box, please give it to me. If not, I must ask you to go and find it for me.
-I apologize for being untruthful earlier. The bait works better if the fisherman doesn't know about its properties. Bring me the small purple treasure box and I'll tell you who it belongs to! He lost it near the shore. Look for it there. Remember, your fishing skill must be level 16, and you must bring the box to me unopened. Someone else may have already found it, so ask around in the market.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00029_ChestCaughtWithABaitOfEarth/31574-05.htm b/trunk/dist/game/data/scripts/quests/Q00029_ChestCaughtWithABaitOfEarth/31574-05.htm
deleted file mode 100644
index b8c55ca835..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00029_ChestCaughtWithABaitOfEarth/31574-05.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Fishermen's Guild Member Willie:
-Certainly you're not finished already! I don't believe it! Have you already found the small purple treasure box? Let me see it!
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00029_ChestCaughtWithABaitOfEarth/31574-06.htm b/trunk/dist/game/data/scripts/quests/Q00029_ChestCaughtWithABaitOfEarth/31574-06.htm
deleted file mode 100644
index 4024621b33..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00029_ChestCaughtWithABaitOfEarth/31574-06.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Fishermen's Guild Member Willie:
-Welcome back! You've already finished, eh? No? Well, I don't have all day, buddy! Bring me the small purple treasure box. I realize it's like looking for a needle in a haystack, but I'm counting on you! Maybe you should ask around in the market... Someone may have already found it!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00029_ChestCaughtWithABaitOfEarth/31574-07.htm b/trunk/dist/game/data/scripts/quests/Q00029_ChestCaughtWithABaitOfEarth/31574-07.htm
deleted file mode 100644
index c182f870dd..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00029_ChestCaughtWithABaitOfEarth/31574-07.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Fishermen's Guild Member Willie:
-This seems to be the small purple treasure box that my client lost. When I opened it, I found this Small Glass Box.
-It has the names of Anabel and Liesel engraved on it. I don't know who Liesel is, but Anabel is my client. Anabel is a Magister in Heine Castle Town. She's kept the temple there for centuries. Please deliver this glass box to her.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00029_ChestCaughtWithABaitOfEarth/31574-08.htm b/trunk/dist/game/data/scripts/quests/Q00029_ChestCaughtWithABaitOfEarth/31574-08.htm
deleted file mode 100644
index bf8e479fe4..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00029_ChestCaughtWithABaitOfEarth/31574-08.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Fishermen's Guild Member Willie:
-Didn't you say you found the small purple treasure box? I must authenticate its contents. If you opened it, it's useless! You'll need to bring another one. You don't seem to have the box.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00029_ChestCaughtWithABaitOfEarth/31574-09.htm b/trunk/dist/game/data/scripts/quests/Q00029_ChestCaughtWithABaitOfEarth/31574-09.htm
deleted file mode 100644
index 7fd0e48943..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00029_ChestCaughtWithABaitOfEarth/31574-09.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Fishermen's Guild Member Willie:
-Why haven't you taken the glass box to Anabel in Heine Castle Town?
-She's been waiting for it an awful long time. I'm sure she's anxious to get it back!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00029_ChestCaughtWithABaitOfEarth/Q00029_ChestCaughtWithABaitOfEarth.java b/trunk/dist/game/data/scripts/quests/Q00029_ChestCaughtWithABaitOfEarth/Q00029_ChestCaughtWithABaitOfEarth.java
deleted file mode 100644
index a551a4aa77..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00029_ChestCaughtWithABaitOfEarth/Q00029_ChestCaughtWithABaitOfEarth.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00029_ChestCaughtWithABaitOfEarth;
-
-import quests.Q00052_WilliesSpecialBait.Q00052_WilliesSpecialBait;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-
-/**
- * Chest Caught With A Bait Of Earth (29)
- * Original Jython script by Skeleton.
- * @author nonom
- */
-public class Q00029_ChestCaughtWithABaitOfEarth extends Quest
-{
- // NPCs
- private static final int WILLIE = 31574;
- private static final int ANABEL = 30909;
- // Items
- private static final int PURPLE_TREASURE_BOX = 6507;
- private static final int SMALL_GLASS_BOX = 7627;
- private static final int PLATED_LEATHER_GLOVES = 2455;
-
- public Q00029_ChestCaughtWithABaitOfEarth()
- {
- super(29, Q00029_ChestCaughtWithABaitOfEarth.class.getSimpleName(), "Chest Caught With A Bait Of Earth");
- addStartNpc(WILLIE);
- addTalkId(WILLIE, ANABEL);
- registerQuestItems(SMALL_GLASS_BOX);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- String htmltext = event;
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return htmltext;
- }
-
- switch (event)
- {
- case "31574-04.htm":
- st.startQuest();
- break;
- case "31574-08.htm":
- if (st.isCond(1) && st.hasQuestItems(PURPLE_TREASURE_BOX))
- {
- st.giveItems(SMALL_GLASS_BOX, 1);
- st.takeItems(PURPLE_TREASURE_BOX, -1);
- st.setCond(2, true);
- htmltext = "31574-07.htm";
- }
- break;
- case "30909-03.htm":
- if (st.isCond(2) && st.hasQuestItems(SMALL_GLASS_BOX))
- {
- st.giveItems(PLATED_LEATHER_GLOVES, 1);
- st.exitQuest(false, true);
- htmltext = "30909-02.htm";
- }
- break;
-
- }
- return htmltext;
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- String htmltext = getNoQuestMsg(player);
- final QuestState st = getQuestState(player, true);
- if (st == null)
- {
- return htmltext;
- }
-
- final int npcId = npc.getId();
- switch (st.getState())
- {
- case State.COMPLETED:
- htmltext = getAlreadyCompletedMsg(player);
- break;
- case State.CREATED:
- final QuestState qs = player.getQuestState(Q00052_WilliesSpecialBait.class.getSimpleName());
- if (npcId == WILLIE)
- {
- htmltext = "31574-02.htm";
- if (qs != null)
- {
- htmltext = ((player.getLevel() >= 48) && qs.isCompleted()) ? "31574-01.htm" : htmltext;
- }
- }
- break;
- case State.STARTED:
- switch (npcId)
- {
- case WILLIE:
- switch (st.getCond())
- {
- case 1:
- htmltext = "31574-06.htm";
- if (st.hasQuestItems(PURPLE_TREASURE_BOX))
- {
- htmltext = "31574-05.htm";
- }
- break;
- case 2:
- htmltext = "31574-09.htm";
- break;
- }
- break;
- case ANABEL:
- if (st.isCond(2))
- {
- htmltext = "30909-01.htm";
- }
- break;
- }
- break;
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00030_ChestCaughtWithABaitOfFire/30629-01.htm b/trunk/dist/game/data/scripts/quests/Q00030_ChestCaughtWithABaitOfFire/30629-01.htm
deleted file mode 100644
index acc67ba1e7..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00030_ChestCaughtWithABaitOfFire/30629-01.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Bard Rukal:
-Beautiful music is pure magic! Are you here to listen to songs of the old poets?
-No? You have something for me? The musical score signed by Rukal that credits me as the composer and lyricist? That's what I've been waiting for! Show it to me!
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00030_ChestCaughtWithABaitOfFire/30629-02.htm b/trunk/dist/game/data/scripts/quests/Q00030_ChestCaughtWithABaitOfFire/30629-02.htm
deleted file mode 100644
index 79952981c9..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00030_ChestCaughtWithABaitOfFire/30629-02.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Bard Rukal:
-You say you've found the musical score I'm looking for, but you don't seem to have it with you. If you find a musical score with the name "Rukal" written on it, please bring it to me. It was composed by my late father.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00030_ChestCaughtWithABaitOfFire/30629-03.htm b/trunk/dist/game/data/scripts/quests/Q00030_ChestCaughtWithABaitOfFire/30629-03.htm
deleted file mode 100644
index 564628519b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00030_ChestCaughtWithABaitOfFire/30629-03.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Bard Rukal:
-The Fishermen's Guild is truly a major patron of the arts! Whenever an object is lost, anywhere in the world, they manage to retrieve it! It's ironic that only those who know nothing about the lost objects can find them... As an Elf, it's hard to understand how Humans could have created such a technique!
-Could it be that they're catching all these objects by accident? It doesn't seem likely, does it? They must be the best detectives in the world! I'm so grateful to have recovered this lost score by my dead father. I don't dare to use his name when I compose! This is his musical score!
-Please accept this gift of thanks for recovering the musical score for me.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00030_ChestCaughtWithABaitOfFire/31577-00.htm b/trunk/dist/game/data/scripts/quests/Q00030_ChestCaughtWithABaitOfFire/31577-00.htm
deleted file mode 100644
index af93e2b7c4..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00030_ChestCaughtWithABaitOfFire/31577-00.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Fishermen's Guild Member Linneus:
-Fishing really brings life into perspective. You're not here to buy fishing gear, are you? Have you ever been fishing? Even the nobles of Aden enjoy it.
-(This quest may only be undertaken by characters of level 60 or above who have completed Linneus's Special Bait quest.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00030_ChestCaughtWithABaitOfFire/31577-01.htm b/trunk/dist/game/data/scripts/quests/Q00030_ChestCaughtWithABaitOfFire/31577-01.htm
deleted file mode 100644
index 294dab5301..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00030_ChestCaughtWithABaitOfFire/31577-01.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Fishermen's Guild Member Linneus:
-Welcome back! You're the one that I gave the bait of flame, right? So... Did you catch anything with it? Other than fish, I mean? That was a very specialized bait you were using! You didn't happen to catch a box, did you?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00030_ChestCaughtWithABaitOfFire/31577-02.htm b/trunk/dist/game/data/scripts/quests/Q00030_ChestCaughtWithABaitOfFire/31577-02.htm
deleted file mode 100644
index 323e7df30a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00030_ChestCaughtWithABaitOfFire/31577-02.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Fishermen's Guild Member Linneus:
-There are some things more interesting than fish! A while back, someone came around looking for a red treasure box. Honestly, the bait I gave you earlier was designed to find it!
-Don't look at me like that! It wouldn't have worked if you would've known what the bait was for! So, did you find it? I'll tell you who my client is when you bring me the red treasure box. You must bring it to me unopened. Use the bait of flame to find it.
-Remember, your fishing skill must be level 20. Someone may already have found it, so ask around in the market first.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00030_ChestCaughtWithABaitOfFire/31577-03.htm b/trunk/dist/game/data/scripts/quests/Q00030_ChestCaughtWithABaitOfFire/31577-03.htm
deleted file mode 100644
index fc5df6a88d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00030_ChestCaughtWithABaitOfFire/31577-03.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Fishermen's Guild Member Linneus:
-Wow! Did you already find the red treasure box? Let me see it! I need to verify that it's the one my client lost.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00030_ChestCaughtWithABaitOfFire/31577-03a.htm b/trunk/dist/game/data/scripts/quests/Q00030_ChestCaughtWithABaitOfFire/31577-03a.htm
deleted file mode 100644
index 45dcd879c3..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00030_ChestCaughtWithABaitOfFire/31577-03a.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Fishermen's Guild Member Linneus:
-You're back! Did you finish your assignment already? No? Please, go and find the Red Treasure Box. I know it's not easy, but I really must have it! Ask around, see if anyone's found it.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00030_ChestCaughtWithABaitOfFire/31577-04.htm b/trunk/dist/game/data/scripts/quests/Q00030_ChestCaughtWithABaitOfFire/31577-04.htm
deleted file mode 100644
index 43d6477f3d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00030_ChestCaughtWithABaitOfFire/31577-04.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Fishermen's Guild Member Linneus:
-I think this is my client's red treasure box. It contains the musical score that Mr. Rukal was looking for. It has his name listed as the composer and lyricist. If it is anything like his other works, it's wonderfully powerful music! Take it to Mr. Rukal in Dion Castle Town.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00030_ChestCaughtWithABaitOfFire/31577-04a.htm b/trunk/dist/game/data/scripts/quests/Q00030_ChestCaughtWithABaitOfFire/31577-04a.htm
deleted file mode 100644
index 1732fcbefc..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00030_ChestCaughtWithABaitOfFire/31577-04a.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Fishermen's Guild Member Linneus:
-You found the red treasure box? Well, I hope you didn't open it! Let me see... Hmm, this isn't the box I'm looking for.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00030_ChestCaughtWithABaitOfFire/31577-05.htm b/trunk/dist/game/data/scripts/quests/Q00030_ChestCaughtWithABaitOfFire/31577-05.htm
deleted file mode 100644
index e1df295e21..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00030_ChestCaughtWithABaitOfFire/31577-05.htm
+++ /dev/null
@@ -1,3 +0,0 @@
- Fishermen's Guild Member Linneus:
-Why haven't you gone to see Mr. Rukal yet? Go to Dion Castle Town. Mortals such as us are unworthy to possess such beautiful music! It should be reserved for Swordsingers and Bladedancers!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00030_ChestCaughtWithABaitOfFire/Q00030_ChestCaughtWithABaitOfFire.java b/trunk/dist/game/data/scripts/quests/Q00030_ChestCaughtWithABaitOfFire/Q00030_ChestCaughtWithABaitOfFire.java
deleted file mode 100644
index 5051038117..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00030_ChestCaughtWithABaitOfFire/Q00030_ChestCaughtWithABaitOfFire.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00030_ChestCaughtWithABaitOfFire;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-
-/**
- * Chest Caught With A Bait Of Fire (30)
- * Original Jython script by Ethernaly.
- * @author nonom
- */
-public class Q00030_ChestCaughtWithABaitOfFire extends Quest
-{
- // NPCs
- private static final int LINNAEUS = 31577;
- private static final int RUKAL = 30629;
- // Items
- private static final int RED_TREASURE_BOX = 6511;
- private static final int RUKAL_MUSICAL = 7628;
- private static final int PROTECTION_NECKLACE = 916;
-
- public Q00030_ChestCaughtWithABaitOfFire()
- {
- super(30, Q00030_ChestCaughtWithABaitOfFire.class.getSimpleName(), "Chest Caught With A Bait Of Fire");
- addStartNpc(LINNAEUS);
- addTalkId(LINNAEUS, RUKAL);
- registerQuestItems(RUKAL_MUSICAL);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- String htmltext = event;
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return htmltext;
- }
-
- switch (event)
- {
- case "31577-02.htm":
- st.startQuest();
- break;
- case "31577-04a.htm":
- if (st.isCond(1) && st.hasQuestItems(RED_TREASURE_BOX))
- {
- st.giveItems(RUKAL_MUSICAL, 1);
- st.takeItems(RED_TREASURE_BOX, -1);
- st.setCond(2, true);
- htmltext = "31577-04.htm";
- }
- break;
- case "30629-02.htm":
- if (st.isCond(2) && st.hasQuestItems(RUKAL_MUSICAL))
- {
- st.giveItems(PROTECTION_NECKLACE, 1);
- st.exitQuest(false, true);
- htmltext = "30629-03.htm";
- }
- break;
- }
- return htmltext;
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- String htmltext = getNoQuestMsg(player);
- final QuestState st = getQuestState(player, true);
- if (st == null)
- {
- return htmltext;
- }
-
- final int npcId = npc.getId();
-
- switch (st.getState())
- {
- case State.COMPLETED:
- htmltext = getAlreadyCompletedMsg(player);
- break;
- case State.CREATED:
- if (npcId == LINNAEUS)
- {
- htmltext = (player.getLevel() >= 61) ? "31577-01.htm" : "31577-00.htm";
- }
- break;
- case State.STARTED:
- switch (npcId)
- {
- case LINNAEUS:
- switch (st.getCond())
- {
- case 1:
- htmltext = "31577-03a.htm";
- if (st.hasQuestItems(RED_TREASURE_BOX))
- {
- htmltext = "31577-03.htm";
- }
- break;
- case 2:
- htmltext = "31577-05.htm";
- break;
- }
- break;
- case RUKAL:
- if (st.isCond(2))
- {
- htmltext = "30629-01.htm";
- }
- break;
- }
- break;
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00050_LanoscosSpecialBait/31570-01.htm b/trunk/dist/game/data/scripts/quests/Q00050_LanoscosSpecialBait/31570-01.htm
deleted file mode 100644
index 4d2f35bff8..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00050_LanoscosSpecialBait/31570-01.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Fishermen's Guild Member Lanosco:
-Some time ago, I caught a few strange boxes while fishing. I thought it was strange to catch so many things that weren't fish! I quickly learned that some people will pay very well for these boxes! I think they're intrigued by the mystery of what's inside...
-You must use a special bait to recover items from the water. This special bait uses the magical attraction of elements to change the polarity of sunken items and raise them to the surface! I mention this because I think you may be good at it!
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00050_LanoscosSpecialBait/31570-02.html b/trunk/dist/game/data/scripts/quests/Q00050_LanoscosSpecialBait/31570-02.html
deleted file mode 100644
index b44046b3a9..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00050_LanoscosSpecialBait/31570-02.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Fishermen's Guild Member Lanosco:
-Some time ago, I caught a few strange boxes while fishing. I thought it was strange to catch so many things that weren't fish! Most fishermen would've just thrown them back, but I know better! Some people will pay well for such things! They must be intrigued by not knowing what's inside... It could be something very expensive or completely worthless!
-I have a knack for finding these boxes, but I can't show you how to do it yet.
-(This quest may only be undertaken by a character of level 27 or above with a fishing skill of level 9.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00050_LanoscosSpecialBait/31570-03.htm b/trunk/dist/game/data/scripts/quests/Q00050_LanoscosSpecialBait/31570-03.htm
deleted file mode 100644
index 8a75cd6255..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00050_LanoscosSpecialBait/31570-03.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Fishermen's Guild Member Lanosco:
-The power to attract items by switching their polarity is present in all four elements. Wind, ice, land and flame each have unique attractions to submerged items. Me and some of my buddies here at the guild have learned to make bait that uses these attractions to retrieve lost items.
-To use the power of wind, go to Windy Hill, far to the north of Gludin. You'll find some low-level wind spirits there known as singing winds. Collect 100 essences of wind and bring them to me. I'll make an special bait for you.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00050_LanoscosSpecialBait/31570-04.html b/trunk/dist/game/data/scripts/quests/Q00050_LanoscosSpecialBait/31570-04.html
deleted file mode 100644
index 445683f032..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00050_LanoscosSpecialBait/31570-04.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Fishermen's Guild Member Lanosco:
-Thanks for your help. I can't get around to get the materials I need like I used to... Now I'll make the bait of wind for you. I use the repulsive power between the elements of water and wind. Just as water and air don't mix, things that are underwater begin to float.
-Now, give me the 100 essences of wind!
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00050_LanoscosSpecialBait/31570-05.html b/trunk/dist/game/data/scripts/quests/Q00050_LanoscosSpecialBait/31570-05.html
deleted file mode 100644
index 095556a649..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00050_LanoscosSpecialBait/31570-05.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Fishermen's Guild Member Lanosco:
-You haven't brought the materials I need. You can get Essence of Wind from the singing winds on Windy Hill, far to the north of Gludin.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00050_LanoscosSpecialBait/31570-06.htm b/trunk/dist/game/data/scripts/quests/Q00050_LanoscosSpecialBait/31570-06.htm
deleted file mode 100644
index c7493ed2d0..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00050_LanoscosSpecialBait/31570-06.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Fishermen's Guild Member Lanosco:
-You've obtained all of the Essence of Wind I need to make the bait. Please accept this as a token of my appreciation. This will increase your chances of finding lost treasure, but how often you actually land your catch will depend on your skill.
-Your fishing skill should be exactly level 9 to obtain the optimum performance from this bait. If you're not level 9, you might consider giving to bait to someone who is. Remember, bring anything you recover to me unopened!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00050_LanoscosSpecialBait/31570-07.html b/trunk/dist/game/data/scripts/quests/Q00050_LanoscosSpecialBait/31570-07.html
deleted file mode 100644
index 9600e2c55e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00050_LanoscosSpecialBait/31570-07.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Fishermen's Guild Member Lanosco:
-You didn't bring enough ingredients! This isn't enough to make bait! You must bring more Essence of Wind!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00050_LanoscosSpecialBait/Q00050_LanoscosSpecialBait.java b/trunk/dist/game/data/scripts/quests/Q00050_LanoscosSpecialBait/Q00050_LanoscosSpecialBait.java
deleted file mode 100644
index e38d77f1cd..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00050_LanoscosSpecialBait/Q00050_LanoscosSpecialBait.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00050_LanoscosSpecialBait;
-
-import com.l2jserver.Config;
-import com.l2jserver.gameserver.enums.QuestSound;
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-
-/**
- * Lanosco's Special Bait (50)
- * Original Jython script by Kilkenny.
- * @author nonom
- */
-public class Q00050_LanoscosSpecialBait extends Quest
-{
- // NPCs
- private static final int LANOSCO = 31570;
- private static final int SINGING_WIND = 21026;
- // Items
- private static final int ESSENCE_OF_WIND = 7621;
- private static final int WIND_FISHING_LURE = 7610;
-
- public Q00050_LanoscosSpecialBait()
- {
- super(50, Q00050_LanoscosSpecialBait.class.getSimpleName(), "Lanosco's Special Bait");
- addStartNpc(LANOSCO);
- addTalkId(LANOSCO);
- addKillId(SINGING_WIND);
- registerQuestItems(ESSENCE_OF_WIND);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return getNoQuestMsg(player);
- }
-
- String htmltext = event;
-
- switch (event)
- {
- case "31570-03.htm":
- st.startQuest();
- break;
- case "31570-07.html":
- if ((st.isCond(2)) && (st.getQuestItemsCount(ESSENCE_OF_WIND) >= 100))
- {
- htmltext = "31570-06.htm";
- st.giveItems(WIND_FISHING_LURE, 4);
- st.exitQuest(false, true);
- }
- break;
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
- {
- final L2PcInstance partyMember = getRandomPartyMember(player, 1);
- if (partyMember == null)
- {
- return null;
- }
-
- final QuestState st = getQuestState(partyMember, false);
-
- if (st.getQuestItemsCount(ESSENCE_OF_WIND) < 100)
- {
- float chance = 33 * Config.RATE_QUEST_DROP;
- if (getRandom(100) < chance)
- {
- st.rewardItems(ESSENCE_OF_WIND, 1);
- st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
- }
- }
-
- if (st.getQuestItemsCount(ESSENCE_OF_WIND) >= 100)
- {
- st.setCond(2, true);
-
- }
-
- return super.onKill(npc, player, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- String htmltext = getNoQuestMsg(player);
- final QuestState st = getQuestState(player, true);
- if (st == null)
- {
- return htmltext;
- }
-
- switch (st.getState())
- {
- case State.COMPLETED:
- htmltext = getAlreadyCompletedMsg(player);
- break;
- case State.CREATED:
- htmltext = (player.getLevel() >= 27) ? "31570-01.htm" : "31570-02.html";
- break;
- case State.STARTED:
- htmltext = (st.isCond(1)) ? "31570-05.html" : "31570-04.html";
- break;
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00051_OFullesSpecialBait/31572-01.htm b/trunk/dist/game/data/scripts/quests/Q00051_OFullesSpecialBait/31572-01.htm
deleted file mode 100644
index ad5392e327..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00051_OFullesSpecialBait/31572-01.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Fishermen's Guild Member O'Fulle:
-I may look chipper, but I feel terrible! Recently a delivery of ingredients for our bait of chill was hijacked by fettered souls at the Death Pass! It was several years worth of supplies! A devastating loss!
-Are you here for bait? Sorry, I couldn't make any if I wanted to. What can I do?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00051_OFullesSpecialBait/31572-02.html b/trunk/dist/game/data/scripts/quests/Q00051_OFullesSpecialBait/31572-02.html
deleted file mode 100644
index ff27bf85b7..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00051_OFullesSpecialBait/31572-02.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Fishermen's Guild Member O'Fulle:
-A while back, I ordered some special seeds from Goddard that are designed for cold weather. The flowers of the plants are used to make a very special bait! They're called ice snow flowers because they bloom in the dead of winter. All of my order was stolen by bandits, and with the chaos left after the war, I haven't been able to order any more! But I'm just a poor fisherman, and no better equipped to deal with them than you are!
-(This quest may only be undertaken by characters of level 36 or above.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00051_OFullesSpecialBait/31572-03.htm b/trunk/dist/game/data/scripts/quests/Q00051_OFullesSpecialBait/31572-03.htm
deleted file mode 100644
index bd548988fb..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00051_OFullesSpecialBait/31572-03.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Fishermen's Guild Member O'Fulle:
-A while back, I ordered some special seeds from Goddard that are designed for cold weather. The flowers of the plants are used to make bait of chill. My entire order was stolen by fettered souls! In the chaos left after the war, I haven't been able to order any more. I'm just a poor fisherman, and not equipped to deal with those ruffians!
-Would you help me? Bring me 100 of the lost bait materials from the fettered souls at the Death Pass. I'll make bait of chill for you.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00051_OFullesSpecialBait/31572-04.html b/trunk/dist/game/data/scripts/quests/Q00051_OFullesSpecialBait/31572-04.html
deleted file mode 100644
index be50986220..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00051_OFullesSpecialBait/31572-04.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Fishermen's Guild Member O'Fulle:
-Did you recover my stolen bait materials? Awesome! Please accept this bait of chill from my inventory as a token of my gratitude! Please give me the 100 lost bait materials that you found!
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00051_OFullesSpecialBait/31572-05.html b/trunk/dist/game/data/scripts/quests/Q00051_OFullesSpecialBait/31572-05.html
deleted file mode 100644
index dced9bfd73..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00051_OFullesSpecialBait/31572-05.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Fishermen's Guild Member O'Fulle:
-You haven't recovered the lost bait materials from the fettered souls at the Death Pass in northern Giran yet? Go on! They're no use to those beasts, anyway!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00051_OFullesSpecialBait/31572-06.htm b/trunk/dist/game/data/scripts/quests/Q00051_OFullesSpecialBait/31572-06.htm
deleted file mode 100644
index 422f955a55..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00051_OFullesSpecialBait/31572-06.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Fishermen's Guild Member O'Fulle:
-Well, you could've brought more... Oh well, take this bait of chill. It will increase your chance of finding lost items in the water. No good at all for catching fish, though! You won't always land your catch with this bait.
-It works best if your fishing skill is exactly level 12. If it's not, you should consider giving it to someone who can use it more effectively. Remember, bring anything you recover to me unopened!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00051_OFullesSpecialBait/31572-07.html b/trunk/dist/game/data/scripts/quests/Q00051_OFullesSpecialBait/31572-07.html
deleted file mode 100644
index 32dc905939..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00051_OFullesSpecialBait/31572-07.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Fishermen's Guild Member O'Fulle:
-You say that you brought 100 bait materials, but you don't seem to have brought enough for me to make bait! Honestly, I'm more interested in getting rid of the bandits than getting the bait materials back! Get busy, will you?
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00051_OFullesSpecialBait/Q00051_OFullesSpecialBait.java b/trunk/dist/game/data/scripts/quests/Q00051_OFullesSpecialBait/Q00051_OFullesSpecialBait.java
deleted file mode 100644
index 481e2ed432..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00051_OFullesSpecialBait/Q00051_OFullesSpecialBait.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00051_OFullesSpecialBait;
-
-import com.l2jserver.Config;
-import com.l2jserver.gameserver.enums.QuestSound;
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-
-/**
- * O'Fulle's Special Bait (51)
- * Original Jython script by Kilkenny.
- * @author nonom
- */
-public class Q00051_OFullesSpecialBait extends Quest
-{
- // NPCs
- private static final int OFULLE = 31572;
- private static final int FETTERED_SOUL = 20552;
- // Items
- private static final int LOST_BAIT = 7622;
- private static final int ICY_AIR_LURE = 7611;
-
- public Q00051_OFullesSpecialBait()
- {
- super(51, Q00051_OFullesSpecialBait.class.getSimpleName(), "O'Fulle's Special Bait");
- addStartNpc(OFULLE);
- addTalkId(OFULLE);
- addKillId(FETTERED_SOUL);
- registerQuestItems(LOST_BAIT);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return getNoQuestMsg(player);
- }
-
- String htmltext = event;
- switch (event)
- {
- case "31572-03.htm":
- st.startQuest();
- break;
- case "31572-07.html":
- if ((st.isCond(2)) && (st.getQuestItemsCount(LOST_BAIT) >= 100))
- {
- htmltext = "31572-06.htm";
- st.giveItems(ICY_AIR_LURE, 4);
- st.exitQuest(false, true);
- }
- break;
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
- {
- final L2PcInstance partyMember = getRandomPartyMember(player, 1);
- if (partyMember == null)
- {
- return null;
- }
-
- final QuestState st = getQuestState(partyMember, false);
- if (st.getQuestItemsCount(LOST_BAIT) < 100)
- {
- float chance = 33 * Config.RATE_QUEST_DROP;
- if (getRandom(100) < chance)
- {
- st.rewardItems(LOST_BAIT, 1);
- st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
- }
- }
-
- if (st.getQuestItemsCount(LOST_BAIT) >= 100)
- {
- st.setCond(2, true);
- }
- return super.onKill(npc, player, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- String htmltext = getNoQuestMsg(player);
- final QuestState st = getQuestState(player, true);
- if (st == null)
- {
- return htmltext;
- }
-
- switch (st.getState())
- {
- case State.COMPLETED:
- htmltext = getAlreadyCompletedMsg(player);
- break;
- case State.CREATED:
- htmltext = (player.getLevel() >= 36) ? "31572-01.htm" : "31572-02.html";
- break;
- case State.STARTED:
- htmltext = (st.isCond(1)) ? "31572-05.html" : "31572-04.html";
- break;
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00052_WilliesSpecialBait/31574-01.htm b/trunk/dist/game/data/scripts/quests/Q00052_WilliesSpecialBait/31574-01.htm
deleted file mode 100644
index f7d17fdd13..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00052_WilliesSpecialBait/31574-01.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Fishermen's Guild Member Willie:
-Hi, traveler! You look like an experienced fisherman! You know, if you want to catch something really special, you've got to use special bait!
-I think you're ready for the big time, my friend! I suggest you try this bait made of Tarlk basilisk's eyes! It pulls the most incredible things from the deep! It's one of the most powerful of my products! It uses the power of the spirit of the land! Will you bring the materials I need to make it for you?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00052_WilliesSpecialBait/31574-02.html b/trunk/dist/game/data/scripts/quests/Q00052_WilliesSpecialBait/31574-02.html
deleted file mode 100644
index fe92e35757..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00052_WilliesSpecialBait/31574-02.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Fishermen's Guild Member Willie:
-Hi, traveler! Have you ever been fishing? You'll find it much more relaxing than the life of a soldier! Why don't you come back and let me teach you to fish when you have the time. It won't be free, but your fishing skill should be exactly level 16.
-(This quest may only be undertaken by characters of level 48 or above.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00052_WilliesSpecialBait/31574-03.htm b/trunk/dist/game/data/scripts/quests/Q00052_WilliesSpecialBait/31574-03.htm
deleted file mode 100644
index 2b9abe2d0a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00052_WilliesSpecialBait/31574-03.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Fishermen's Guild Member Willie:
-The powers of attraction of elements lie within the elements themselves. The elements are wind, ice, land and flame. Me and some of my buddies at the guild have figured out how to make bait from the elements! I use the power of land.
-To use it, you must travel all the way to the Forest of Outlaws in Oren. There you'll find Tarlk basilisks, a middle-level spirits of land. Bring me 100 Tarlk basilisks' eyes. I'll make a very special bait for you.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00052_WilliesSpecialBait/31574-04.html b/trunk/dist/game/data/scripts/quests/Q00052_WilliesSpecialBait/31574-04.html
deleted file mode 100644
index 155ec48b50..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00052_WilliesSpecialBait/31574-04.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Fishermen's Guild Member Willie:
-Good job, my friend! You brought everything I need to make the bait! You're really getting a good deal! Well, our guild wants to build our customer base, so we work for free! OK, give me the eyes...
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00052_WilliesSpecialBait/31574-05.html b/trunk/dist/game/data/scripts/quests/Q00052_WilliesSpecialBait/31574-05.html
deleted file mode 100644
index 08663332a8..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00052_WilliesSpecialBait/31574-05.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Fishermen's Guild Member Willie:
-I need 100 Tarlk basilisk's eyes to make the bait. I'm working for free, so the least you can do it bring me the materials I need! Go to the Forest of Outlaws, slaughter the Tarlk basilisks and bring me their eyes.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00052_WilliesSpecialBait/31574-06.htm b/trunk/dist/game/data/scripts/quests/Q00052_WilliesSpecialBait/31574-06.htm
deleted file mode 100644
index c63fd97665..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00052_WilliesSpecialBait/31574-06.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Fishermen's Guild Member Willie:
-Thanks for the eyes. Take this bait of land. It finds more valuable items than baits of wind or chill.
-Remember, this bait only works when your fishing level is exactly 16. Whether or not you land your catch will depend on your skill.
-Remember, if you catch anything besides fish, bring it to me unopened! Don't even bother bringing me opened boxes.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00052_WilliesSpecialBait/31574-07.html b/trunk/dist/game/data/scripts/quests/Q00052_WilliesSpecialBait/31574-07.html
deleted file mode 100644
index f8f1b9db8a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00052_WilliesSpecialBait/31574-07.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Fishermen's Guild Member Willie:
-There aren't 100 Tarlk basilisk's eyes here. This isn't enough to make bait!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00052_WilliesSpecialBait/Q00052_WilliesSpecialBait.java b/trunk/dist/game/data/scripts/quests/Q00052_WilliesSpecialBait/Q00052_WilliesSpecialBait.java
deleted file mode 100644
index 482325fe3a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00052_WilliesSpecialBait/Q00052_WilliesSpecialBait.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00052_WilliesSpecialBait;
-
-import com.l2jserver.Config;
-import com.l2jserver.gameserver.enums.QuestSound;
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-
-/**
- * Willie's Special Bait (52)
- * Original Jython script by Kilkenny.
- * @author nonom
- */
-public class Q00052_WilliesSpecialBait extends Quest
-{
- // NPCs
- private static final int WILLIE = 31574;
- private static final int TARLK_BASILISK = 20573;
- // Items
- private static final int TARLK_EYE = 7623;
- private static final int EARTH_FISHING_LURE = 7612;
-
- public Q00052_WilliesSpecialBait()
- {
- super(52, Q00052_WilliesSpecialBait.class.getSimpleName(), "Willie's Special Bait");
- addStartNpc(WILLIE);
- addTalkId(WILLIE);
- addKillId(TARLK_BASILISK);
- registerQuestItems(TARLK_EYE);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return getNoQuestMsg(player);
- }
-
- String htmltext = event;
- switch (event)
- {
- case "31574-03.htm":
- st.startQuest();
- break;
- case "31574-07.html":
- if (st.isCond(2) && (st.getQuestItemsCount(TARLK_EYE) >= 100))
- {
- htmltext = "31574-06.htm";
- st.giveItems(EARTH_FISHING_LURE, 4);
- st.exitQuest(false, true);
- }
- break;
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
- {
- final L2PcInstance partyMember = getRandomPartyMember(player, 1);
- if (partyMember == null)
- {
- return null;
- }
-
- final QuestState st = getQuestState(partyMember, false);
- if (st.getQuestItemsCount(TARLK_EYE) < 100)
- {
- float chance = 33 * Config.RATE_QUEST_DROP;
- if (getRandom(100) < chance)
- {
- st.rewardItems(TARLK_EYE, 1);
- st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
- }
- }
-
- if (st.getQuestItemsCount(TARLK_EYE) >= 100)
- {
- st.setCond(2, true);
- }
- return super.onKill(npc, player, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- String htmltext = getNoQuestMsg(player);
- final QuestState st = getQuestState(player, true);
- if (st == null)
- {
- return htmltext;
- }
-
- switch (st.getState())
- {
- case State.COMPLETED:
- htmltext = getAlreadyCompletedMsg(player);
- break;
- case State.CREATED:
- htmltext = (player.getLevel() >= 48) ? "31574-01.htm" : "31574-02.html";
- break;
- case State.STARTED:
- htmltext = (st.isCond(1)) ? "31574-05.html" : "31574-04.html";
- break;
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00114_ResurrectionOfAnOldManager/Q00114_ResurrectionOfAnOldManager.java b/trunk/dist/game/data/scripts/quests/Q00114_ResurrectionOfAnOldManager/Q00114_ResurrectionOfAnOldManager.java
index 2648acf987..0a15141c06 100644
--- a/trunk/dist/game/data/scripts/quests/Q00114_ResurrectionOfAnOldManager/Q00114_ResurrectionOfAnOldManager.java
+++ b/trunk/dist/game/data/scripts/quests/Q00114_ResurrectionOfAnOldManager/Q00114_ResurrectionOfAnOldManager.java
@@ -21,6 +21,7 @@ package quests.Q00114_ResurrectionOfAnOldManager;
import quests.Q00121_PavelTheGiant.Q00121_PavelTheGiant;
import com.l2jserver.gameserver.ai.CtrlIntention;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.actor.L2Attackable;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Npc;
@@ -30,7 +31,6 @@ import com.l2jserver.gameserver.model.quest.Quest;
import com.l2jserver.gameserver.model.quest.QuestState;
import com.l2jserver.gameserver.model.quest.State;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.NpcSay;
/**
@@ -194,7 +194,7 @@ public class Q00114_ResurrectionOfAnOldManager extends Quest
if ((golem == null) || ((golem != null) && golem.isDead()))
{
golem = (L2Attackable) addSpawn(GUARDIAN, 96977, -110625, -3280, 0, false, 0);
- golem.broadcastPacket(new NpcSay(golem.getObjectId(), Say2.NPC_ALL, golem.getId(), NpcStringId.YOU_S1_YOU_ATTACKED_WENDY_PREPARE_TO_DIE).addStringParameter(player.getName()));
+ golem.broadcastPacket(new NpcSay(golem.getObjectId(), ChatType.NPC_GENERAL, golem.getId(), NpcStringId.YOU_S1_YOU_ATTACKED_WENDY_PREPARE_TO_DIE).addStringParameter(player.getName()));
golem.setRunning();
golem.addDamageHate(player, 0, 999);
golem.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, player);
@@ -267,7 +267,7 @@ public class Q00114_ResurrectionOfAnOldManager extends Quest
// Quest timer
case "golem_despawn":
st.unset("spawned");
- golem.broadcastPacket(new NpcSay(golem.getObjectId(), Say2.NPC_ALL, golem.getId(), NpcStringId.S1_YOUR_ENEMY_WAS_DRIVEN_OUT_I_WILL_NOW_WITHDRAW_AND_AWAIT_YOUR_NEXT_COMMAND).addStringParameter(player.getName()));
+ golem.broadcastPacket(new NpcSay(golem.getObjectId(), ChatType.NPC_GENERAL, golem.getId(), NpcStringId.S1_YOUR_ENEMY_WAS_DRIVEN_OUT_I_WILL_NOW_WITHDRAW_AND_AWAIT_YOUR_NEXT_COMMAND).addStringParameter(player.getName()));
golem.deleteMe();
golem = null;
htmltext = null;
@@ -329,7 +329,7 @@ public class Q00114_ResurrectionOfAnOldManager extends Quest
if ((st != null) && st.isCond(10) && (st.getInt("spawned") == 1))
{
- npc.broadcastPacket(new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npc.getId(), NpcStringId.THIS_ENEMY_IS_FAR_TOO_POWERFUL_FOR_ME_TO_FIGHT_I_MUST_WITHDRAW));
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.THIS_ENEMY_IS_FAR_TOO_POWERFUL_FOR_ME_TO_FIGHT_I_MUST_WITHDRAW));
st.setCond(11, true);
st.unset("spawned");
cancelQuestTimers("golem_despawn");
diff --git a/trunk/dist/game/data/scripts/quests/Q00132_MatrasCuriosity/32245-01.htm b/trunk/dist/game/data/scripts/quests/Q00132_MatrasCuriosity/32245-01.htm
deleted file mode 100644
index cf180377fa..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00132_MatrasCuriosity/32245-01.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Matras:
-You know I am keenly interested in the magnificent structure called the Steel Citadel. I have been researching it, but strangely I have found no complete blueprints. It seems that it was built independently by a number of different parties... I am still searching for additional information, but without success.
-Would you be willing to help me?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00132_MatrasCuriosity/32245-02.htm b/trunk/dist/game/data/scripts/quests/Q00132_MatrasCuriosity/32245-02.htm
deleted file mode 100644
index 95f80d1930..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00132_MatrasCuriosity/32245-02.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Matras:
-I am very interested in this magnificent structure called the Steel Citadel, so I have been researching it. Ah, but I think you are too inexperienced to help me. Perhaps you will come again some day.
-(Only characters level 76 and higher may embark on this quest.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00132_MatrasCuriosity/32245-03.htm b/trunk/dist/game/data/scripts/quests/Q00132_MatrasCuriosity/32245-03.htm
deleted file mode 100644
index f7d4bb69ff..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00132_MatrasCuriosity/32245-03.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Matras:
-Actually, I need a blueprint of the structure of the tower of the Steel Citadel. I have learned who possesses the information I need, but I can't get it on my own. Perhaps...someone like you could go into the tower, find that blueprint and bring it to me. Apparently the Demon Prince and Ranku in the Steel Citadel have access to the blueprint I need. Please bring the blueprint to me, and I'll reward you very well.
-Oh, one last thing: take these raw ore. They might look rough, but they function just like other ore. I think they will help you in this task.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00132_MatrasCuriosity/32245-03a.htm b/trunk/dist/game/data/scripts/quests/Q00132_MatrasCuriosity/32245-03a.htm
deleted file mode 100644
index 3e6e2efb2c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00132_MatrasCuriosity/32245-03a.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Matras:
-Actually, I need a blueprint of the structure of the tower of the Steel Citadel. I have learned who possesses the information I need, but I can't get it on my own. Perhaps...someone like you could go into the tower, find that blueprint and bring it to me. Apparently the Demon Prince and Ranku in the Steel Citadel have access to the blueprint I need. Please bring the blueprint to me, and I'll reward you very well.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00132_MatrasCuriosity/32245-04.htm b/trunk/dist/game/data/scripts/quests/Q00132_MatrasCuriosity/32245-04.htm
deleted file mode 100644
index 383e6276d6..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00132_MatrasCuriosity/32245-04.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Matras:
-Have you brought the blueprints? No? Then go to the Tower and get the Tower blueprints from Demon Prince and Ranku. I will reward you for your risk!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00132_MatrasCuriosity/32245-05.htm b/trunk/dist/game/data/scripts/quests/Q00132_MatrasCuriosity/32245-05.htm
deleted file mode 100644
index 69ac32c185..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00132_MatrasCuriosity/32245-05.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Matras:
-Ah, you have brought the blueprints I needed!
-Thank you! Now my research may progress as I had hoped. Ah, but let me just check to ensure that it is authentic... In my line of work, forgeries occur far too often. If it is the real item, I will reward you as I promised.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00132_MatrasCuriosity/32245-06.htm b/trunk/dist/game/data/scripts/quests/Q00132_MatrasCuriosity/32245-06.htm
deleted file mode 100644
index d72a5d177e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00132_MatrasCuriosity/32245-06.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Matras:
-Excellent -- the blueprints are authentic! Many thanks. I have already discovered several items of interest, including a secret passage...
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00132_MatrasCuriosity/32245-07.htm b/trunk/dist/game/data/scripts/quests/Q00132_MatrasCuriosity/32245-07.htm
deleted file mode 100644
index e93ccb1261..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00132_MatrasCuriosity/32245-07.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Matras:
-I am going to tell you this secret because I only found out about it thanks to your help. Apparently, there is a passage that leads directly to the second tower of the Steel Citadel. I found it easily enough, and I think you will, too. In fact, if you want to use that passage, go speak with Deltuva. Since you helped me by obtaining the blueprint, I know he will help you. May Maphr protect you!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00132_MatrasCuriosity/Q00132_MatrasCuriosity.java b/trunk/dist/game/data/scripts/quests/Q00132_MatrasCuriosity/Q00132_MatrasCuriosity.java
deleted file mode 100644
index 91a45bd76f..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00132_MatrasCuriosity/Q00132_MatrasCuriosity.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00132_MatrasCuriosity;
-
-import com.l2jserver.gameserver.enums.QuestSound;
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-
-/**
- * Matras' Curiosity (132)
- * @author GKR, Gladicek
- */
-public final class Q00132_MatrasCuriosity extends Quest
-{
- // NPCs
- private static final int MATRAS = 32245;
- private static final int DEMON_PRINCE = 25540;
- private static final int RANKU = 25542;
- // Items
- private static final int FIRE = 10521;
- private static final int WATER = 10522;
- private static final int EARTH = 10523;
- private static final int WIND = 10524;
- private static final int DARKNESS = 10525;
- private static final int DIVINITY = 10526;
- private static final int BLUEPRINT_RANKU = 9800;
- private static final int BLUEPRINT_PRINCE = 9801;
-
- public Q00132_MatrasCuriosity()
- {
- super(132, Q00132_MatrasCuriosity.class.getSimpleName(), "Matras' Curiosity");
- addStartNpc(MATRAS);
- addTalkId(MATRAS);
- addKillId(RANKU, DEMON_PRINCE);
- registerQuestItems(BLUEPRINT_RANKU, BLUEPRINT_PRINCE);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return getNoQuestMsg(player);
- }
-
- String htmltext = event;
-
- if (event.equalsIgnoreCase("32245-03.htm") && (player.getLevel() >= 76) && !st.isCompleted())
- {
- if (st.isCreated())
- {
- st.startQuest();
- st.set("rewarded_prince", "1");
- st.set("rewarded_ranku", "1");
- }
- else
- {
- htmltext = "32245-03a.htm";
- }
- }
- else if (event.equalsIgnoreCase("32245-07.htm") && st.isCond(3) && !st.isCompleted())
- {
- st.giveAdena(65884, true);
- st.addExpAndSp(50541, 5094);
- st.giveItems(FIRE, 1);
- st.giveItems(WATER, 1);
- st.giveItems(EARTH, 1);
- st.giveItems(WIND, 1);
- st.giveItems(DARKNESS, 1);
- st.giveItems(DIVINITY, 1);
- st.exitQuest(false, true);
- }
- return htmltext;
- }
-
- @Override
- public final String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
- {
- L2PcInstance pl = null;
- switch (npc.getId())
- {
- case DEMON_PRINCE:
- pl = getRandomPartyMember(player, "rewarded_prince", "1");
- if (pl != null)
- {
- final QuestState st = getQuestState(pl, false);
- st.giveItems(BLUEPRINT_PRINCE, 1);
- st.set("rewarded_prince", "2");
-
- if (st.hasQuestItems(BLUEPRINT_RANKU))
- {
- st.setCond(2, true);
- }
- else
- {
- st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
- }
- }
- break;
- case RANKU:
- pl = getRandomPartyMember(player, "rewarded_ranku", "1");
- if (pl != null)
- {
- final QuestState st = getQuestState(pl, false);
- st.giveItems(BLUEPRINT_RANKU, 1);
- st.set("rewarded_ranku", "2");
-
- if (st.hasQuestItems(BLUEPRINT_PRINCE))
- {
- st.setCond(2, true);
- }
- else
- {
- st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
- }
- }
- break;
- }
- return null;
- }
-
- @Override
- public final String onTalk(L2Npc npc, L2PcInstance player)
- {
- String htmltext = getNoQuestMsg(player);
- final QuestState st = getQuestState(player, true);
- if (st == null)
- {
- return htmltext;
- }
-
- if (st.isCreated())
- {
- htmltext = (player.getLevel() >= 76) ? "32245-01.htm" : "32245-02.htm";
- }
- else if (st.isCompleted())
- {
- htmltext = getAlreadyCompletedMsg(player);
- }
- else if (st.isStarted())
- {
- switch (st.getCond())
- {
- case 1:
- case 2:
- if (st.hasQuestItems(BLUEPRINT_RANKU) && st.hasQuestItems(BLUEPRINT_PRINCE))
- {
- st.takeItems(BLUEPRINT_RANKU, -1);
- st.takeItems(BLUEPRINT_PRINCE, -1);
- st.setCond(3, true);
- htmltext = "32245-05.htm";
- }
- else
- {
- htmltext = "32245-04.htm";
- }
-
- break;
- case 3:
- htmltext = "32245-06.htm";
- }
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00147_PathtoBecominganEliteMercenary/Q00147_PathtoBecominganEliteMercenary.java b/trunk/dist/game/data/scripts/quests/Q00147_PathtoBecominganEliteMercenary/Q00147_PathtoBecominganEliteMercenary.java
deleted file mode 100644
index 64bff69e0d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00147_PathtoBecominganEliteMercenary/Q00147_PathtoBecominganEliteMercenary.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00147_PathtoBecominganEliteMercenary;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-
-/**
- * Path to Becoming an Elite Mercenary (147)
- * @author Gnacik
- * @version 2010-09-30 Based on official server Franz
- */
-public class Q00147_PathtoBecominganEliteMercenary extends Quest
-{
- // NPCs
- private static final int[] MERC =
- {
- 36481,
- 36482,
- 36483,
- 36484,
- 36485,
- 36486,
- 36487,
- 36488,
- 36489
- };
- // Items
- private static final int ORDINARY_CERTIFICATE = 13766;
- private static final int ELITE_CERTIFICATE = 13767;
-
- public Q00147_PathtoBecominganEliteMercenary()
- {
- super(147, Q00147_PathtoBecominganEliteMercenary.class.getSimpleName(), "Path to Becoming an Elite Mercenary");
- addStartNpc(MERC);
- addTalkId(MERC);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- String htmltext = event;
- final QuestState st = getQuestState(player, false);
-
- if (st == null)
- {
- return htmltext;
- }
-
- if (event.equalsIgnoreCase("elite-02.htm"))
- {
- if (st.hasQuestItems(ORDINARY_CERTIFICATE))
- {
- return "elite-02a.htm";
- }
- st.giveItems(ORDINARY_CERTIFICATE, 1);
- }
- else if (event.equalsIgnoreCase("elite-04.htm"))
- {
- st.startQuest();
- }
- return htmltext;
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- String htmltext = getNoQuestMsg(player);
- final QuestState st = getQuestState(player, true);
- if (st == null)
- {
- return htmltext;
- }
-
- switch (st.getState())
- {
- case State.CREATED:
- if ((player.getClan() != null) && (player.getClan().getCastleId() > 0))
- {
- htmltext = "castle.htm";
- }
- else
- {
- htmltext = "elite-01.htm";
- }
- break;
- case State.STARTED:
- if (st.getCond() < 4)
- {
- htmltext = "elite-05.htm";
- }
- else if (st.isCond(4))
- {
- st.takeItems(ORDINARY_CERTIFICATE, -1);
- st.giveItems(ELITE_CERTIFICATE, 1);
- st.exitQuest(false);
- htmltext = "elite-06.htm";
- }
- break;
- case State.COMPLETED:
- htmltext = getAlreadyCompletedMsg(player);
- break;
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00147_PathtoBecominganEliteMercenary/castle.htm b/trunk/dist/game/data/scripts/quests/Q00147_PathtoBecominganEliteMercenary/castle.htm
deleted file mode 100644
index 6ec8693b07..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00147_PathtoBecominganEliteMercenary/castle.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Mercenary Captain:
-Did you come here to spy on us? Leave at once!
-(Members of a clan that owns a castle cannot undertake this quest)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00147_PathtoBecominganEliteMercenary/elite-01.htm b/trunk/dist/game/data/scripts/quests/Q00147_PathtoBecominganEliteMercenary/elite-01.htm
deleted file mode 100644
index 99bc381638..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00147_PathtoBecominganEliteMercenary/elite-01.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Mercenary Captain:
-Did you come see me in order to become a mercenary?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00147_PathtoBecominganEliteMercenary/elite-02.htm b/trunk/dist/game/data/scripts/quests/Q00147_PathtoBecominganEliteMercenary/elite-02.htm
deleted file mode 100644
index 7a5bec89b8..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00147_PathtoBecominganEliteMercenary/elite-02.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Mercenary Captain:
-Here is a proof of your mercenary status. Everybody starts as a general mercenary.
-If you want to advance beyond that, you must prove your capabilities. Interested?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00147_PathtoBecominganEliteMercenary/elite-02a.htm b/trunk/dist/game/data/scripts/quests/Q00147_PathtoBecominganEliteMercenary/elite-02a.htm
deleted file mode 100644
index e3447d6880..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00147_PathtoBecominganEliteMercenary/elite-02a.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Mercenary Captain:
-Why are you here?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00147_PathtoBecominganEliteMercenary/elite-03.htm b/trunk/dist/game/data/scripts/quests/Q00147_PathtoBecominganEliteMercenary/elite-03.htm
deleted file mode 100644
index 0ccca682b3..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00147_PathtoBecominganEliteMercenary/elite-03.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Mercenary Captain:
-There is a way.
-First, you must advance to a higher level: Elite Mercenary.
-An Elite Mercenary demonstrates superior bravery and responsibility. If you want to become one, you must prove that you possess those qualities.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00147_PathtoBecominganEliteMercenary/elite-04.htm b/trunk/dist/game/data/scripts/quests/Q00147_PathtoBecominganEliteMercenary/elite-04.htm
deleted file mode 100644
index edb963800f..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00147_PathtoBecominganEliteMercenary/elite-04.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Mercenary Captain:
-Very well. If your will is strong, join our Territory War and slay at least 10 enemies, then destroy their territory catapult. If you can do that, I'll approve you.
-If you can't, don't bother me any more with talk of becoming an Elite Mercenary.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00147_PathtoBecominganEliteMercenary/elite-05.htm b/trunk/dist/game/data/scripts/quests/Q00147_PathtoBecominganEliteMercenary/elite-05.htm
deleted file mode 100644
index 07e014dc5c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00147_PathtoBecominganEliteMercenary/elite-05.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Mercenary Captain:
-You remember what I asked you? If you want to be an Elite Mercenary, slay at least 10 enemies and destroy the enemy's territory catapult. Any questions?
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00147_PathtoBecominganEliteMercenary/elite-06.htm b/trunk/dist/game/data/scripts/quests/Q00147_PathtoBecominganEliteMercenary/elite-06.htm
deleted file mode 100644
index a46857af5b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00147_PathtoBecominganEliteMercenary/elite-06.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Mercenary Captain:
-Here is a proof of your Elite mercenary status.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00148_PathtoBecominganExaltedMercenary/Q00148_PathtoBecominganExaltedMercenary.java b/trunk/dist/game/data/scripts/quests/Q00148_PathtoBecominganExaltedMercenary/Q00148_PathtoBecominganExaltedMercenary.java
deleted file mode 100644
index 5910066523..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00148_PathtoBecominganExaltedMercenary/Q00148_PathtoBecominganExaltedMercenary.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00148_PathtoBecominganExaltedMercenary;
-
-import quests.Q00147_PathtoBecominganEliteMercenary.Q00147_PathtoBecominganEliteMercenary;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-
-/**
- * Path to Becoming an Exalted Mercenary (148)
- * @author Gnacik
- * @version 2010-09-30 Based on official server Franz
- */
-public class Q00148_PathtoBecominganExaltedMercenary extends Quest
-{
- // NPCs
- private static final int[] MERC =
- {
- 36481,
- 36482,
- 36483,
- 36484,
- 36485,
- 36486,
- 36487,
- 36488,
- 36489
- };
- // Items
- private static final int ELITE_CERTIFICATE = 13767;
- private static final int TOP_ELITE_CERTIFICATE = 13768;
-
- public Q00148_PathtoBecominganExaltedMercenary()
- {
- super(148, Q00148_PathtoBecominganExaltedMercenary.class.getSimpleName(), "Path to Becoming an Exalted Mercenary");
- addStartNpc(MERC);
- addTalkId(MERC);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- String htmltext = event;
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return htmltext;
- }
-
- if (event.equalsIgnoreCase("exalted-00b.htm"))
- {
- st.giveItems(ELITE_CERTIFICATE, 1);
- }
- else if (event.equalsIgnoreCase("exalted-03.htm"))
- {
- st.startQuest();
- }
- return htmltext;
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- String htmltext = getNoQuestMsg(player);
- final QuestState st = getQuestState(player, true);
- if (st == null)
- {
- return htmltext;
- }
-
- switch (st.getState())
- {
- case State.CREATED:
- QuestState _prev = player.getQuestState(Q00147_PathtoBecominganEliteMercenary.class.getSimpleName());
- if ((player.getClan() != null) && (player.getClan().getCastleId() > 0))
- {
- htmltext = "castle.htm";
- }
- else if (st.hasQuestItems(ELITE_CERTIFICATE))
- {
- htmltext = "exalted-01.htm";
- }
- else
- {
- if ((_prev != null) && _prev.isCompleted())
- {
- htmltext = "exalted-00a.htm";
- }
- else
- {
- htmltext = "exalted-00.htm";
- }
- }
- break;
- case State.STARTED:
- if (st.getCond() < 4)
- {
- htmltext = "exalted-04.htm";
- }
- else if (st.isCond(4))
- {
- st.takeItems(ELITE_CERTIFICATE, -1);
- st.giveItems(TOP_ELITE_CERTIFICATE, 1);
- st.exitQuest(false);
- htmltext = "exalted-05.htm";
- }
- break;
- case State.COMPLETED:
- htmltext = getAlreadyCompletedMsg(player);
- break;
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00148_PathtoBecominganExaltedMercenary/castle.htm b/trunk/dist/game/data/scripts/quests/Q00148_PathtoBecominganExaltedMercenary/castle.htm
deleted file mode 100644
index 6ec8693b07..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00148_PathtoBecominganExaltedMercenary/castle.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Mercenary Captain:
-Did you come here to spy on us? Leave at once!
-Adventurer agrees to go to Alligator Island and kill the Crokian lads, dailaon lads, Crokian lad warriors, farhite lads, nos lads, and the Swamp Tribe and bring back their teeth as proof.And Kluck, that's me, will count the number of teeth brought back and reward said adventurer accordingly.Third, if said adventurer brings back 100 or more teeth at a time, he or she will receive an additional bonus.Fourth, while carrying out the task specified in the Contract on Alligator Island, if the adventurer finds items other than the teeth of monsters, the adventurer will own those items free and clear.
-Alligator Island is to the north, across the sea from here. Swim there! You look like you could use the exercise!
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00354_ConquestOfAlligatorIsland/30895-06.html b/trunk/dist/game/data/scripts/quests/Q00354_ConquestOfAlligatorIsland/30895-06.html
deleted file mode 100644
index 6380a0b50b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00354_ConquestOfAlligatorIsland/30895-06.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Warehouse Freightman Kluck:
-Hey, impressive! You've brought over 100! Here is your reward! And, per the Contract, your bonus as well!
-I appreciate your hard work! Hopefully soon our dream of a free trade zone without tax will be realized. Keep up the good work!
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00354_ConquestOfAlligatorIsland/30895-07.html b/trunk/dist/game/data/scripts/quests/Q00354_ConquestOfAlligatorIsland/30895-07.html
deleted file mode 100644
index 2d5eae7a83..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00354_ConquestOfAlligatorIsland/30895-07.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Warehouse Freightman Kluck:
-Let's see, teeth are worth... Here you go! Thank you for your hard work! Hopefully soon the island will be completely free of monsters and our dream of a free trade zone without tax can be realized! Keep up the good work!
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00354_ConquestOfAlligatorIsland/30895-08.html b/trunk/dist/game/data/scripts/quests/Q00354_ConquestOfAlligatorIsland/30895-08.html
deleted file mode 100644
index 3c85d5d72b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00354_ConquestOfAlligatorIsland/30895-08.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Warehouse Freightman Kluck:
-Are you kidding? You expect something for nothing? Not around here, my friend! Go to Alligator Island immediately and bring me back some teeth! Do I need to read the Contract to you again?
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00354_ConquestOfAlligatorIsland/30895-09.html b/trunk/dist/game/data/scripts/quests/Q00354_ConquestOfAlligatorIsland/30895-09.html
deleted file mode 100644
index 0429bf8b3a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00354_ConquestOfAlligatorIsland/30895-09.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Warehouse Freightman Kluck:
-That's a good adventurer... Heh heh... This free trade zone will benefit us all!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00354_ConquestOfAlligatorIsland/30895-10.html b/trunk/dist/game/data/scripts/quests/Q00354_ConquestOfAlligatorIsland/30895-10.html
deleted file mode 100644
index e25d530c49..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00354_ConquestOfAlligatorIsland/30895-10.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Warehouse Freightman Kluck:
-What a pity... You won't be easy to replace... I appreciate your contribution to our cause... When the free trade zone on Alligator Island becomes a reality and I have opened my own shop, you must visit me there. May the prosperity of Maphr be with you always...
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00354_ConquestOfAlligatorIsland/30895-11.html b/trunk/dist/game/data/scripts/quests/Q00354_ConquestOfAlligatorIsland/30895-11.html
deleted file mode 100644
index 2f1301ac2c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00354_ConquestOfAlligatorIsland/30895-11.html
+++ /dev/null
@@ -1,8 +0,0 @@
-Warehouse Freightman Kluck:
-Ah, you again... Have you brought me teeth? Or is it another question? What's that, a piece of paper?
-
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00354_ConquestOfAlligatorIsland/30895-12.html b/trunk/dist/game/data/scripts/quests/Q00354_ConquestOfAlligatorIsland/30895-12.html
deleted file mode 100644
index 41dc7694e1..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00354_ConquestOfAlligatorIsland/30895-12.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Warehouse Freightman Kluck:
-Hmm... A piece of Map, eh? I bet if we collected about 10 pieces just like it, we'd have a complete Map!
-Come to think of it, there is a rumor that part of the legendary treasure of Zaken the pirate is buried on Alligator Island. Zaken's boatswain's lover stole it and hid it there...
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00354_ConquestOfAlligatorIsland/30895-13.html b/trunk/dist/game/data/scripts/quests/Q00354_ConquestOfAlligatorIsland/30895-13.html
deleted file mode 100644
index b590639dd8..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00354_ConquestOfAlligatorIsland/30895-13.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Warehouse Freightman Kluck:
-Ah, yes, these pieces definitely go together... Just like doing a puzzle! What have we here? This mark must show where the treasure is hidden!
-This must surely be the Map to the legendary treasure of Zaken the pirate!
-Hmm, I suppose, according to the terms of the Contract, that the Map rightfully belongs to you. Go and see Trader Espen in the weapons shop. He is an expert on Zaken. All pirates, actually...
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00354_ConquestOfAlligatorIsland/Q00354_ConquestOfAlligatorIsland.java b/trunk/dist/game/data/scripts/quests/Q00354_ConquestOfAlligatorIsland/Q00354_ConquestOfAlligatorIsland.java
deleted file mode 100644
index e48870f56c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00354_ConquestOfAlligatorIsland/Q00354_ConquestOfAlligatorIsland.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00354_ConquestOfAlligatorIsland;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-
-/**
- * Conquest of Alligator Island (354)
- * @author Adry_85
- */
-public final class Q00354_ConquestOfAlligatorIsland extends Quest
-{
- // NPC
- private static final int KLUCK = 30895;
- // Items
- private static final int ALLIGATOR_TOOTH = 5863;
- private static final int MYSTERIOUS_MAP_PIECE = 5864;
- private static final int PIRATES_TREASURE_MAP = 5915;
- // Misc
- private static final int MIN_LEVEL = 38;
- // Mobs
- private static final Map MOB1 = new HashMap<>();
- private static final Map MOB2 = new HashMap<>();
- static
- {
- MOB1.put(20804, 0.84); // crokian_lad
- MOB1.put(20805, 0.91); // dailaon_lad
- MOB1.put(20806, 0.88); // crokian_lad_warrior
- MOB1.put(20807, 0.92); // farhite_lad
- MOB2.put(22208, 14); // nos_lad
- MOB2.put(20991, 69); // tribe_of_swamp
- }
-
- public Q00354_ConquestOfAlligatorIsland()
- {
- super(354, Q00354_ConquestOfAlligatorIsland.class.getSimpleName(), "Conquest of Alligator Island");
- addStartNpc(KLUCK);
- addTalkId(KLUCK);
- addKillId(MOB1.keySet());
- addKillId(MOB2.keySet());
- registerQuestItems(ALLIGATOR_TOOTH, MYSTERIOUS_MAP_PIECE);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return null;
- }
-
- String htmltext = null;
- switch (event)
- {
- case "30895-04.html":
- case "30895-05.html":
- case "30895-09.html":
- {
- htmltext = event;
- break;
- }
- case "30895-02.html":
- {
- st.startQuest();
- htmltext = event;
- break;
- }
- case "ADENA":
- {
- final long count = st.getQuestItemsCount(ALLIGATOR_TOOTH);
- if (count >= 100)
- {
- st.giveAdena((count * 220) + 10700, true);
- st.takeItems(ALLIGATOR_TOOTH, -1);
- htmltext = "30895-06.html";
- }
- else if (count > 0)
- {
- st.giveAdena((count * 220) + 3100, true);
- st.takeItems(ALLIGATOR_TOOTH, -1);
- htmltext = "30895-07.html";
- }
- else
- {
- htmltext = "30895-08.html";
- }
- break;
- }
- case "30895-10.html":
- {
- st.exitQuest(true, true);
- htmltext = event;
- break;
- }
- case "REWARD":
- {
- final long count = st.getQuestItemsCount(MYSTERIOUS_MAP_PIECE);
- if (count >= 10)
- {
- st.giveItems(PIRATES_TREASURE_MAP, 1);
- st.takeItems(MYSTERIOUS_MAP_PIECE, 10);
- htmltext = "30895-13.html";
- }
- else if (count > 0)
- {
- htmltext = "30895-12.html";
- }
- break;
- }
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
- {
- final QuestState st = getRandomPartyMemberState(player, -1, 3, npc);
- if (st != null)
- {
- int npcId = npc.getId();
- if (MOB1.containsKey(npcId))
- {
- st.giveItemRandomly(npc, ALLIGATOR_TOOTH, 1, 0, MOB1.get(npcId), true);
- }
- else
- {
- final int itemCount = ((getRandom(100) < MOB2.get(npcId)) ? 2 : 1);
- st.giveItemRandomly(npc, ALLIGATOR_TOOTH, itemCount, 0, 1.0, true);
- }
-
- st.giveItemRandomly(npc, MYSTERIOUS_MAP_PIECE, 1, 0, 0.1, false);
- }
- return super.onKill(npc, player, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, true);
- String htmltext = getNoQuestMsg(player);
- if (st == null)
- {
- return htmltext;
- }
-
- if (st.isCreated())
- {
- htmltext = ((player.getLevel() >= MIN_LEVEL) ? "30895-01.htm" : "30895-03.html");
- }
- else if (st.isStarted())
- {
- htmltext = (st.hasQuestItems(MYSTERIOUS_MAP_PIECE) ? "30895-11.html" : "30895-04.html");
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30181-01.htm b/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30181-01.htm
deleted file mode 100644
index 0591a815f8..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30181-01.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Trader Galibredo:
-Although now I'm merely a merchant, at one time my family was prominent! Although I may not look it, the blood of kings courses through my veins!
-Whenever I say this, people laugh at me and think I'm lying. It's so very frustrating! But at last, now I have a chance to prove my noble heritage! All I need is a bit of help from an adventurer like yourself! I will pay you generously for your work! No cost is too great when the honor of my family is at stake! Will you help this old man?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30181-02.htm b/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30181-02.htm
deleted file mode 100644
index 779b0a9448..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30181-02.htm
+++ /dev/null
@@ -1,7 +0,0 @@
-Trader Galibredo:
-Have you ever heard of Berona, a sculptor from the Elmoreden Empire? She is well-known among antique lovers...
-A few months ago, hundreds of her works were excavated in Innadril. "Galfredo Romer's Bust" was one of them. He was one of my ancestors who was as an aid to the Emperor! It is recorded in my family's genealogy! If you don't believe me, I'll show it to you!
-Anyway, I sent my nephew to Innadril to buy all the sculptures for me. But, while they were being delivered to me, they were stolen by Orc bandits. I'm very upset with my nephew! I told him repeatedly to hire guards!
-Ahem! So, here's the deal. Will you recover the sculptures for me?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30181-03.htm b/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30181-03.htm
deleted file mode 100644
index f1346565b8..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30181-03.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Trader Galibredo:
-The thieves who stole my precious sculptures are the Timak Orc troop. According to my nephew, the troop consists of Timak Orc troop archers, timak Orc troop warriors, timak Orc troop leaders and the Timak Orc troop shaman. I doubt that those brutes even know the value of what they have!
-If you bring me "Galfredo Romer's Busts", I will pay you handsomely. If you bring me 100 or more of them at one time, you will receive a bonus. Please try your best!
-You can keep any other sculptures you recover. You can sell them to a store or give them to someone as a gift.
-They move around in a group, so it is not a bad idea to go with a couple of friends, if they wish to. Good luck! I'm counting on you.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30181-04.html b/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30181-04.html
deleted file mode 100644
index 2cf29be5ae..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30181-04.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Trader Galibredo:
-Although now I'm merely a merchant, at one time my family was prominent! Although I may not look it, the blood of kings courses through my veins!
-What's with the expression? Does it mean you don't believe me? You must think I'm just a crazy old man! Get away from me!
-(This quest can only be undertaken by a character of level 36 or higher.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30181-05.html b/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30181-05.html
deleted file mode 100644
index fd131e49b3..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30181-05.html
+++ /dev/null
@@ -1,7 +0,0 @@
-Trader Galibredo:
-Come on in! I've been waiting for you. How did you do?
-Let me say this to you again. The thieves who stole my precious antiques are the Timak Orc troop archers, timak Orc troop warriors, timak Orc troop leaders and the Timak Orc troop shaman. I trust that you destroyed them and recovered my goods?
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30181-06.html b/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30181-06.html
deleted file mode 100644
index d4b59caf4a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30181-06.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Trader Galibredo:
-What the...? Where are the statues of my ancestor...? Don't you know?! I mean, where are Galfredo Romer's Busts? Do you expect me to pay you for nothing?
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30181-07.html b/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30181-07.html
deleted file mode 100644
index 4ead6e930c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30181-07.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Trader Galibredo:
-Oh, at last! The proof of the prestigious heritage of my family! The dignity of my great ancestors is restored!
-Let me see... how may busts did you bring me? 70... 80... 90... Oh, wonderful! It's more than 100! Then, in addition to your regular pay, I'll add a bonus... Here you go! Thank you for your hard work!
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30181-08.html b/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30181-08.html
deleted file mode 100644
index 7449535bdd..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30181-08.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Trader Galibredo:
-Oh, at last! The proof of the prestigious heritage of my family! The dignity of my great ancestors is restored! Thank you very much young man! Let me see... how may busts did you bring me? Oh yes! Here is your reward!
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30181-09.html b/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30181-09.html
deleted file mode 100644
index 9105fab90a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30181-09.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Trader Galibredo:
-I'm counting on you! Go punish those dastardly thieves and recover my precious antiques.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30181-10.html b/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30181-10.html
deleted file mode 100644
index 0e552d0b97..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30181-10.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Trader Galibredo:
-You want to quit? Sigh...! That's the problem with today's young people... always hopping from job to job, they never stay in one place very long! Don't you know that once you accept a job, you should finish it? Dear me...
-Oh, well, if that is really what you want, I won't stop you. Thank you for your hard work.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30181-11.html b/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30181-11.html
deleted file mode 100644
index ad486cfa60..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30181-11.html
+++ /dev/null
@@ -1,8 +0,0 @@
-Trader Galibredo:
-Welcome back! I've been waiting for you. Were you successful? I trust that you destroyed the Timak Orc troop and brought back my goods?
-As I told you, all I want is "Galfredo Romer's Busts". You can keep the other works of sculptor Berona for yourself. You should be able to sell them for a fairly good price.
-Or... if you would like, you can also take them to the antique dealer Patrin over there and get them appraised. Since we are close friends, I'll put in a good word for you. If the statues are prototypes or originals they are more valuable. If they are imitations or fakes, then they are worthless. It's a gamble.
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30929-01.html b/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30929-01.html
deleted file mode 100644
index d8d441903a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30929-01.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Antique Dealer Patrin:
-Yes, Trader Galibredo told me about you. He said that you would be stopping by with some antique statues to be appraised...
-Oh my! That statue... is that the "Lady of the Court" by Berona? Where did you find such a precious item...? Let me have a look!
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30929-02.html b/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30929-02.html
deleted file mode 100644
index d38cc5c912..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30929-02.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Antique Dealer Patrin:
-Why, you find the true value of the item! To the untrained eye, an antique like this may seem rather ordinary. But to an expert like myself, each subtle mark and worn surface tells a story. The materials and techniques used in its manufacture are revealed to me.
-The different aspects will determine the true value of the statue. Statues that are appraised to be prototypes or genuine are the most valuable.
-If the appraisal shows that the statue is an imitation or a forgery, its value will be minimal. Sometimes it is better to skip the appraisal altogether.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30929-03.html b/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30929-03.html
deleted file mode 100644
index 37e31e469a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30929-03.html
+++ /dev/null
@@ -1,8 +0,0 @@
-Antique Dealer Patrin:
-Just a moment... Let me get my reading glasses...
-Now, what have we here? Hmm...
-Oh Oh...!
-Hmm...?!
-In... indeed...!
-This is a prototype made by the very hands of Berona! This was used to make molds from which many other statues were produced. You must understand that this is one of the most valuable antiques you will ever find. It will fetch a handsome price at any store.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30929-04.html b/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30929-04.html
deleted file mode 100644
index 669ed70a29..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30929-04.html
+++ /dev/null
@@ -1,8 +0,0 @@
-Antique Dealer Patrin:
-Just a moment... Let me get my reading glasses...
-Now, what have we here? Hmm...
-Oh Oh...!
-Hmm...?!
-In... indeed...!
-This is indeed a genuine statue. It was made from the prototype. Although not as valuable as its prototype, it is highly regarded among antique dealers. It will fetch a pretty good price at any store.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30929-05.html b/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30929-05.html
deleted file mode 100644
index 764b47df7a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30929-05.html
+++ /dev/null
@@ -1,7 +0,0 @@
-Antique Dealer Patrin:
-Just a moment... Let me get my reading glasses...
-Now, what have we here?
-Hmm...?!
-Oh... Heh heh...!
-This is no work of Berona. It is a very cleverly made imitation! An apprentice sculptor must have copied the work of Berona. It is not worth much.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30929-06.html b/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30929-06.html
deleted file mode 100644
index 31a504a480..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30929-06.html
+++ /dev/null
@@ -1,8 +0,0 @@
-Antique Dealer Patrin:
-Just a moment... Let me get my reading glasses...
-Now, shall I take a look at it? Hmm...
-Oh Oh...!
-Hmm...?!
-Heh Heh...!
-This is not Berona's work! It's a forgery! It must have been made by a skillful counterfeiter! I am sorry. It is virtually worthless.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30929-07.html b/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30929-07.html
deleted file mode 100644
index c9ebb79bd9..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30929-07.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Antique Dealer Patrin:
-Just a moment... Let me get my reading glasses...
-Now, what have we here? Hmm...
-Huh...?!! I barely touched it! How could I have made such a mistake!
-May I offer my abject apologies! Ancient articles such as this are so very fragile!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30929-08.html b/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30929-08.html
deleted file mode 100644
index f1c64f4f95..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/30929-08.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Antique Dealer Patrin:
-Why would you come to me empty-handed and ask for an appraisal? Are you kidding? What insolence!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/Q00355_FamilyHonor.java b/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/Q00355_FamilyHonor.java
deleted file mode 100644
index c55e362582..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00355_FamilyHonor/Q00355_FamilyHonor.java
+++ /dev/null
@@ -1,247 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00355_FamilyHonor;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.util.Util;
-
-/**
- * Family Honor (355)
- * @author Adry_85
- */
-public final class Q00355_FamilyHonor extends Quest
-{
- private static final class DropInfo
- {
- public final int _firstChance;
- public final int _secondChance;
-
- public DropInfo(int firstChance, int secondChance)
- {
- _firstChance = firstChance;
- _secondChance = secondChance;
- }
-
- public int getFirstChance()
- {
- return _firstChance;
- }
-
- public int getSecondChance()
- {
- return _secondChance;
- }
- }
-
- // NPCs
- private static final int GALIBREDO = 30181;
- private static final int PATRIN = 30929;
- // Items
- private static final int GALFREDO_ROMERS_BUST = 4252;
- private static final int SCULPTOR_BERONA = 4350;
- private static final int ANCIENT_STATUE_PROTOTYPE = 4351;
- private static final int ANCIENT_STATUE_ORIGINAL = 4352;
- private static final int ANCIENT_STATUE_REPLICA = 4353;
- private static final int ANCIENT_STATUE_FORGERY = 4354;
- // Misc
- private static final int MIN_LEVEL = 36;
-
- private static final Map MOBS = new HashMap<>();
- static
- {
- MOBS.put(20767, new DropInfo(560, 684)); // timak_orc_troop_leader
- MOBS.put(20768, new DropInfo(530, 650)); // timak_orc_troop_shaman
- MOBS.put(20769, new DropInfo(420, 516)); // timak_orc_troop_warrior
- MOBS.put(20770, new DropInfo(440, 560)); // timak_orc_troop_archer
- }
-
- public Q00355_FamilyHonor()
- {
- super(355, Q00355_FamilyHonor.class.getSimpleName(), "Family Honor");
- addStartNpc(GALIBREDO);
- addTalkId(GALIBREDO, PATRIN);
- addKillId(MOBS.keySet());
- registerQuestItems(GALFREDO_ROMERS_BUST);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState qs = getQuestState(player, false);
- if (qs == null)
- {
- return null;
- }
-
- String htmltext = null;
- switch (event)
- {
- case "30181-02.htm":
- case "30181-09.html":
- case "30929-01.html":
- case "30929-02.html":
- {
- htmltext = event;
- break;
- }
- case "30181-03.htm":
- {
- qs.startQuest();
- htmltext = event;
- break;
- }
- case "30181-06.html":
- {
- final long galfredoRomersBustCount = getQuestItemsCount(player, GALFREDO_ROMERS_BUST);
-
- if (galfredoRomersBustCount < 1)
- {
- htmltext = event;
- }
- else if (galfredoRomersBustCount >= 100)
- {
- giveAdena(player, (galfredoRomersBustCount * 120) + 7800, true);
- takeItems(player, GALFREDO_ROMERS_BUST, -1);
- htmltext = "30181-07.html";
- }
- else
- {
- giveAdena(player, (galfredoRomersBustCount * 120) + 2800, true);
- takeItems(player, GALFREDO_ROMERS_BUST, -1);
- htmltext = "30181-08.html";
- }
- break;
- }
- case "30181-10.html":
- {
- final long galfredoRomersBustCount = getQuestItemsCount(player, GALFREDO_ROMERS_BUST);
-
- if (galfredoRomersBustCount > 0)
- {
- giveAdena(player, galfredoRomersBustCount * 120, true);
- }
-
- takeItems(player, GALFREDO_ROMERS_BUST, -1);
- qs.exitQuest(true, true);
- htmltext = event;
- break;
- }
- case "30929-03.html":
- {
- final int random = getRandom(100);
-
- if (hasQuestItems(player, SCULPTOR_BERONA))
- {
- if (random < 2)
- {
- giveItems(player, ANCIENT_STATUE_PROTOTYPE, 1);
- htmltext = event;
- }
- else if (random < 32)
- {
- giveItems(player, ANCIENT_STATUE_ORIGINAL, 1);
- htmltext = "30929-04.html";
- }
- else if (random < 62)
- {
- giveItems(player, ANCIENT_STATUE_REPLICA, 1);
- htmltext = "30929-05.html";
- }
- else if (random < 77)
- {
- giveItems(player, ANCIENT_STATUE_FORGERY, 1);
- htmltext = "30929-06.html";
- }
- else
- {
- htmltext = "30929-07.html";
- }
-
- takeItems(player, SCULPTOR_BERONA, 1);
- }
- else
- {
- htmltext = "30929-08.html";
- }
- break;
- }
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
- {
- final QuestState qs = getQuestState(killer, false);
-
- if ((qs == null) || !Util.checkIfInRange(1500, npc, killer, true))
- {
- return null;
- }
-
- final DropInfo info = MOBS.get(npc.getId());
- final int random = getRandom(1000);
-
- if (random < info.getFirstChance())
- {
- qs.giveItemRandomly(npc, GALFREDO_ROMERS_BUST, 1, 0, 1.0, true);
- }
- else if (random < info.getSecondChance())
- {
- qs.giveItemRandomly(npc, SCULPTOR_BERONA, 1, 0, 1.0, true);
- }
- return super.onKill(npc, killer, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- QuestState qs = getQuestState(player, true);
- String htmltext = getNoQuestMsg(player);
- if (qs.isCreated())
- {
- htmltext = (player.getLevel() >= MIN_LEVEL) ? "30181-01.htm" : "30181-04.html";
- }
- else if (qs.isStarted())
- {
- if (npc.getId() == GALIBREDO)
- {
- if (hasQuestItems(player, SCULPTOR_BERONA))
- {
- htmltext = "30181-11.html";
- }
- else
- {
- htmltext = "30181-05.html";
- }
- }
- else
- {
- htmltext = "30929-01.html";
- }
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-01.htm b/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-01.htm
deleted file mode 100644
index 3a1b300f8c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-01.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Magister Gauen:
-Since the era of Shunaiman, the first emperor of the ancient Elmoreden Empire, the Mystics of the Ivory Tower have been researching the Sea of Spores. Around E.D. 500 they constructed a force field tower which stopped the spread of that wretched sea. Their research has continued throughout the centuries.
-Although the ancient barrier appears to be holding, the Sea of Spores continues to threaten us. A final solution to this problem must be found.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-02.htm b/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-02.htm
deleted file mode 100644
index 0f33d6934a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-02.htm
+++ /dev/null
@@ -1,7 +0,0 @@
-Magister Gauen:
-Frankly, I'm not sure. Up to now our research has been focused on sustaining and strengthening the magic force field tower.
-However, it has become clear that we need a more permanent solution. For this we must return to the Sea of Spores itself.
-We must shift our strategy to researching each individual spore, one by one.
-We must study the colonies they build, how they spawn and the complex relationships between the plants and animals of the sea.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-03.htm b/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-03.htm
deleted file mode 100644
index b52020e7e6..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-03.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Magister Gauen:
-I must have a tissue sample of an organism that has joined with spores and grown roots. Rotting Tree Spores and spore zombies will do nicely.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-04.htm b/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-04.htm
deleted file mode 100644
index 5a3aacd27b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-04.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Magister Gauen:
-There are many different types of spores, all with unique and often dangerous characteristics. Are you sure you want to do this?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-05.htm b/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-05.htm
deleted file mode 100644
index fbd791500e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-05.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Magister Gauen:
-Your resolve is admirable! Go and get the spores that live as parasites on rotten trees and spore zombies. Put the spores from the spore zombies in this grey pouch and put the spores from the rotten trees in this yellow pouch. The capacity of the pouches varies according to the size of the spores. Each pouch usually holds about 50 spores. Thank you for your assistance.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-06.htm b/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-06.htm
deleted file mode 100644
index 7ea5415d15..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-06.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Magister Gauen:
-Since the era of Shunaiman, the first emperor of the ancient Elmoreden Empire, the Mystics of the Ivory Tower have been researching the Sea of Spores. Around E.D. 500 they constructed a force field tower which stopped the spread of that wretched sea. Their research has continued through the centuries.
-They could use some help in their studies, but I'm afraid you're not yet ready.
-(This quest may only be undertaken by a character of level 43 or above.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-07.html b/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-07.html
deleted file mode 100644
index 364929bc8d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-07.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Magister Gauen:
-Have you been to the Sea of Spores? Bring me the spores from rotten trees in this yellow pouch and the spores from spore zombies in this grey pouch. Fill the pouches with 50 spores each and then bring them back to me.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-08.html b/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-08.html
deleted file mode 100644
index f25856c3bd..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-08.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Magister Gauen:
-Have you just returned from the Sea of Spores? I see that you have filled the yellow pouch. Due to inevitable...ah, shrinkage, I had hoped that you would fill both pouches. Well, no matter. What do you wish to do? Will you give me the yellow pouch?
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-09.html b/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-09.html
deleted file mode 100644
index c1c826f889..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-09.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Magister Gauen:
-Do you wish to continue collecting spores or would you like to quit?
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-10.html b/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-10.html
deleted file mode 100644
index ec977ea20b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-10.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Magister Gauen:
-Go to the Sea of Spores and bring back the spores that are parasites on the bodies of rotten trees and spore zombies. Collect 50 of each kind in each of the two pouches. Please do this and restore peace to the community.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-11.html b/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-11.html
deleted file mode 100644
index 863b4d7e5f..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-11.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Magister Gauen:
-Thank you very much. If you ever return to the Sea of Spores, come and see me.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-12.html b/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-12.html
deleted file mode 100644
index 4c285eb56b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-12.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Magister Gauen:
-Have you just returned from the Sea of Spores? I see that you have filled the grey pouch. Due to inevitable...ah, shrinkage, I had hoped that you would fill both pouches. Well, no matter. What do you wish to do? Will you give me the grey pouch?
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-13.html b/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-13.html
deleted file mode 100644
index 3a4d94bfbb..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-13.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Magister Gauen:
-Ah, you've returned! Give me the pouches. Hmm...
-Actually, I'm a little busy... Just put them anywhere...
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-14.html b/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-14.html
deleted file mode 100644
index f4279dd65b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-14.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Magister Gauen:
-Please put them in that box over there. Thanks to you, we can continue to conduct highly productive and effective research. Your contribution will be duly noted.
-Would you like to help us some more?
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-15.html b/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-15.html
deleted file mode 100644
index bb0994bca5..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-15.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Magister Gauen:
-Oh yes, this is great! Splendid work! Even experts aren't so neat!
-You must be rewarded! Please take this. You have greatly aided our research. I may ask for your assistance again. You are very good at this!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-16.html b/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-16.html
deleted file mode 100644
index bfe0ac66c7..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-16.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Magister Gauen:
-Here we go... I acknowledge that I received from you 50 Herbivorous Spores and 50 carnivorous spores. Here is your reward. If you wish, come back and help me again. We have enough for now, but I'm sure that in the future we shall need more.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-17.html b/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-17.html
deleted file mode 100644
index 475805b5fe..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-17.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Magister Gauen:
-What's this? They're all crushed together! I can't count them when they're like this... Well, they feel to be about the right weight...
-They have been too badly damaged to be useful for our research. But a deal's a deal, I shall pay you. If you wish to continue in this job, you must be more careful!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-18.html b/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-18.html
deleted file mode 100644
index 8e5c80e119..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/30717-18.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Magister Gauen:
-I'm sorry, I was distracted. Let's see, first we must sort them... What do we have here?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/Q00356_DigUpTheSeaOfSpores.java b/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/Q00356_DigUpTheSeaOfSpores.java
deleted file mode 100644
index bf686fbfbe..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00356_DigUpTheSeaOfSpores/Q00356_DigUpTheSeaOfSpores.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00356_DigUpTheSeaOfSpores;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.util.Util;
-import com.l2jserver.util.Rnd;
-
-/**
- * Dig Up the Sea of Spores! (356)
- * @author Adry_85
- */
-public final class Q00356_DigUpTheSeaOfSpores extends Quest
-{
- // NPC
- private static final int GAUEN = 30717;
- // Items
- private static final int CARNIVORE_SPORE = 5865;
- private static final int HERBIVOROUS_SPORE = 5866;
- // Misc
- private static final int MIN_LEVEL = 43;
- // Monsters
- private static final int ROTTING_TREE = 20558;
- private static final int SPORE_ZOMBIE = 20562;
- private static final Map MONSTER_DROP_CHANCES = new HashMap<>();
- static
- {
- MONSTER_DROP_CHANCES.put(ROTTING_TREE, 0.73);
- MONSTER_DROP_CHANCES.put(SPORE_ZOMBIE, 0.94);
- }
-
- public Q00356_DigUpTheSeaOfSpores()
- {
- super(356, Q00356_DigUpTheSeaOfSpores.class.getSimpleName(), "Dig Up the Sea of Spores!");
- addStartNpc(GAUEN);
- addTalkId(GAUEN);
- addKillId(ROTTING_TREE, SPORE_ZOMBIE);
- registerQuestItems(HERBIVOROUS_SPORE, CARNIVORE_SPORE);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState qs = getQuestState(player, false);
- if (qs == null)
- {
- return null;
- }
-
- String htmltext = null;
- switch (event)
- {
- case "30717-02.htm":
- case "30717-03.htm":
- case "30717-04.htm":
- case "30717-10.html":
- case "30717-18.html":
- {
- htmltext = event;
- break;
- }
- case "30717-05.htm":
- {
- qs.startQuest();
- htmltext = event;
- break;
- }
- case "30717-09.html":
- {
- addExpAndSp(player, 31850, 0);
- takeItems(player, CARNIVORE_SPORE, -1);
- takeItems(player, HERBIVOROUS_SPORE, -1);
- htmltext = event;
- break;
- }
- case "30717-11.html":
- {
- qs.exitQuest(true, true);
- htmltext = event;
- break;
- }
- case "30717-14.html":
- {
- addExpAndSp(player, 45500, 2600);
- qs.exitQuest(true, true);
- htmltext = event;
- break;
- }
- case "FINISH":
- {
- final int value = Rnd.get(100);
- int adena = 0;
- if (value < 20)
- {
- adena = 44000;
- htmltext = "30717-15.html";
- }
- else if (value < 70)
- {
- adena = 20950;
- htmltext = "30717-16.html";
- }
- else
- {
- adena = 10400;
- htmltext = "30717-17.html";
- }
- giveAdena(player, adena, true);
- qs.exitQuest(true, true);
- break;
- }
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
- {
- final QuestState qs = getQuestState(killer, false);
-
- if ((qs == null) || !Util.checkIfInRange(1500, npc, killer, true))
- {
- return null;
- }
-
- final int dropItem = ((npc.getId() == ROTTING_TREE) ? HERBIVOROUS_SPORE : CARNIVORE_SPORE);
- final int otherItem = ((dropItem == HERBIVOROUS_SPORE) ? CARNIVORE_SPORE : HERBIVOROUS_SPORE);
-
- if (giveItemRandomly(qs.getPlayer(), npc, dropItem, 1, 50, MONSTER_DROP_CHANCES.get(npc.getId()), true))
- {
- if (getQuestItemsCount(killer, otherItem) >= 50)
- {
- qs.setCond(3);
- }
- else
- {
- qs.setCond(2);
- }
- }
- return super.onKill(npc, killer, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- final QuestState qs = getQuestState(player, true);
- String htmltext = getNoQuestMsg(player);
- if (qs.isCreated())
- {
- htmltext = (player.getLevel() >= MIN_LEVEL) ? "30717-01.htm" : "30717-06.htm";
- }
- else if (qs.isStarted())
- {
- final boolean hasAllHerbSpores = (getQuestItemsCount(player, HERBIVOROUS_SPORE) >= 50);
- final boolean hasAllCarnSpores = (getQuestItemsCount(player, CARNIVORE_SPORE) >= 50);
-
- if (hasAllHerbSpores && hasAllCarnSpores)
- {
- htmltext = "30717-13.html";
- }
- else if (hasAllCarnSpores)
- {
- htmltext = "30717-12.html";
- }
- else if (hasAllHerbSpores)
- {
- htmltext = "30717-08.html";
- }
- else
- {
- htmltext = "30717-07.html";
- }
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00358_IllegitimateChildOfTheGoddess/30862-01.htm b/trunk/dist/game/data/scripts/quests/Q00358_IllegitimateChildOfTheGoddess/30862-01.htm
deleted file mode 100644
index 162c215dfc..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00358_IllegitimateChildOfTheGoddess/30862-01.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Grand Master Oltlin:
-Have you seen the sights of the city? The wonderful castles built by humans, in spite of countless errors and obstacles. Do you have any idea what is beneath them? Often, long shadows are cast under the glow of glory.
-You always find the darkest shadows under strong light. Those who pursue glory are wary of shadows. Where there is pure achievement, there is always absence.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00358_IllegitimateChildOfTheGoddess/30862-02.htm b/trunk/dist/game/data/scripts/quests/Q00358_IllegitimateChildOfTheGoddess/30862-02.htm
deleted file mode 100644
index 1a50d0b805..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00358_IllegitimateChildOfTheGoddess/30862-02.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Grand Master Oltlin:
-Ah, yes, the bitter ramblings of an old man. As you approach true enlightenment, the shadows grow darker. Among those who pursue glory, some work diligently against the shadow at every opportunity.
-At the same time, they must know that their efforts are as futile as covering up the sky with your hand. Of course, I don't need to explain this to you. The gods created us in their own imperfect image.
-Perfect beings' only creations are contrivances. As the perfect circle has no edge... perfect hatred only produces monsters.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00358_IllegitimateChildOfTheGoddess/30862-03.htm b/trunk/dist/game/data/scripts/quests/Q00358_IllegitimateChildOfTheGoddess/30862-03.htm
deleted file mode 100644
index de3bd55990..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00358_IllegitimateChildOfTheGoddess/30862-03.htm
+++ /dev/null
@@ -1,7 +0,0 @@
-Grand Master Oltlin:
-Her anger towards Gran Kain and Einhasad for a time turned Shilen into a pure and perfect being. That is, she became the literal incarnation of destruction.
-As she achieved the purest form of fury, her benevolence and austerity left her completely. Her perfect wrath is the source of those evil creatures.
-They are sealed away now, and I don't know what their current condition is, but their very existence proves that she has become a goddess of destruction!
-We worshippers of Shilen teach our children that she is our mother, therefore we must calm her wrath.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00358_IllegitimateChildOfTheGoddess/30862-04.htm b/trunk/dist/game/data/scripts/quests/Q00358_IllegitimateChildOfTheGoddess/30862-04.htm
deleted file mode 100644
index 42c81d97be..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00358_IllegitimateChildOfTheGoddess/30862-04.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Grand Master Oltlin:
-There are evil creatures close to her. These are the illegitimate children she bore while her fury was at its fiercest... Go slay Falibati and Trives who bear a striking resemblence to her. Bring back their Snake Scales.
-If you bring me 108 Snake Scales, I will teach you a secret, ancient method of creation.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00358_IllegitimateChildOfTheGoddess/30862-05.html b/trunk/dist/game/data/scripts/quests/Q00358_IllegitimateChildOfTheGoddess/30862-05.html
deleted file mode 100644
index b00d937a3b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00358_IllegitimateChildOfTheGoddess/30862-05.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Grand Master Oltlin:
-Have you seen the sights of the city? The wonderful castles built by humans, in spite of countless errors and obstacles. Do you have any idea what is beneath them? Often, long shadows are cast under the glow of glory.
-You always find the darkest shadows under strong light. Does this make sense to you? I thought not. It seems you will need more training. Why don't you explore the world some more and come back later.
-(This quest can only be undertaken by a character of level 63 or higher.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00358_IllegitimateChildOfTheGoddess/30862-06.html b/trunk/dist/game/data/scripts/quests/Q00358_IllegitimateChildOfTheGoddess/30862-06.html
deleted file mode 100644
index c2c6d719dc..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00358_IllegitimateChildOfTheGoddess/30862-06.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Grand Master Oltlin:
-To restore the dignity and glory of the goddess you must kill Falibati and Trives, the illegitimate children born of her wrath, and bring back 108 Snake Scales.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00358_IllegitimateChildOfTheGoddess/30862-07.html b/trunk/dist/game/data/scripts/quests/Q00358_IllegitimateChildOfTheGoddess/30862-07.html
deleted file mode 100644
index 82c3c11480..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00358_IllegitimateChildOfTheGoddess/30862-07.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Grand Master Oltlin:
-Thank you for your efforts. I know it was not easy... Needless to say, please don't tell other people that you have done this for me. Above all my children must never learn of it...
-In exchange for your efforts, I will give you this Secret Book in which ancient secret creation methods are recorded. I hope it will be helpful to you.
-Too many people think they can cover the sky with the palm of their hand. There is such a thing as too much truth... My work will likely never end... If you are ever interested in helping me again, come back to see me.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00358_IllegitimateChildOfTheGoddess/Q00358_IllegitimateChildOfTheGoddess.java b/trunk/dist/game/data/scripts/quests/Q00358_IllegitimateChildOfTheGoddess/Q00358_IllegitimateChildOfTheGoddess.java
deleted file mode 100644
index e27a11f5ae..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00358_IllegitimateChildOfTheGoddess/Q00358_IllegitimateChildOfTheGoddess.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00358_IllegitimateChildOfTheGoddess;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-
-/**
- * Illegitimate Child of the Goddess (358)
- * @author Adry_85
- */
-public final class Q00358_IllegitimateChildOfTheGoddess extends Quest
-{
- // NPC
- private static final int OLTRAN = 30862;
- // Item
- private static final int SNAKE_SCALE = 5868;
- // Misc
- private static final int MIN_LEVEL = 63;
- private static final int SNAKE_SCALE_COUNT = 108;
- // Rewards
- private static final int[] REWARDS = new int[]
- {
- 5364, // Recipe: Sealed Dark Crystal Shield(60%)
- 5366, // Recipe: Sealed Shield of Nightmare(60%)
- 6329, // Recipe: Sealed Phoenix Necklace(70%)
- 6331, // Recipe: Sealed Phoenix Earring(70%)
- 6333, // Recipe: Sealed Phoenix Ring(70%)
- 6335, // Recipe: Sealed Majestic Necklace(70%)
- 6337, // Recipe: Sealed Majestic Earring(70%)
- 6339, // Recipe: Sealed Majestic Ring(70%)
- };
- // Mobs
- private static final Map MOBS = new HashMap<>();
- static
- {
- MOBS.put(20672, 0.71); // trives
- MOBS.put(20673, 0.74); // falibati
- }
-
- public Q00358_IllegitimateChildOfTheGoddess()
- {
- super(358, Q00358_IllegitimateChildOfTheGoddess.class.getSimpleName(), "Illegitimate Child of the Goddess");
- addStartNpc(OLTRAN);
- addTalkId(OLTRAN);
- addKillId(MOBS.keySet());
- registerQuestItems(SNAKE_SCALE);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return null;
- }
-
- String htmltext = null;
- switch (event)
- {
- case "30862-02.htm":
- case "30862-03.htm":
- {
- htmltext = event;
- break;
- }
- case "30862-04.htm":
- {
- st.startQuest();
- htmltext = event;
- break;
- }
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
- {
- final QuestState st = getRandomPartyMemberState(player, 1, 3, npc);
- if ((st != null) && st.giveItemRandomly(npc, SNAKE_SCALE, 1, SNAKE_SCALE_COUNT, MOBS.get(npc.getId()), true))
- {
- st.setCond(2, true);
- }
- return super.onKill(npc, player, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, true);
- String htmltext = getNoQuestMsg(player);
- if (st.isCreated())
- {
- htmltext = ((player.getLevel() >= MIN_LEVEL) ? "30862-01.htm" : "30862-05.html");
- }
- else if (st.isStarted())
- {
- if (getQuestItemsCount(player, SNAKE_SCALE) < SNAKE_SCALE_COUNT)
- {
- htmltext = "30862-06.html";
- }
- else
- {
- rewardItems(player, REWARDS[getRandom(REWARDS.length)], 1);
- st.exitQuest(true, true);
- htmltext = "30862-07.html";
- }
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00360_PlunderTheirSupplies/30873-01.html b/trunk/dist/game/data/scripts/quests/Q00360_PlunderTheirSupplies/30873-01.html
deleted file mode 100644
index 4b17de7baf..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00360_PlunderTheirSupplies/30873-01.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Guard Coleman:
-Have you been to the Cemetery?
-It's a dangerous place, where many monsters roam. The neglect of the kingdom has allowed it to fall into ruins. If we incur our ancestors' wrath, we'll have no one to blame but ourselves. You must use extreme care when you go there. I seriously doubt that you will survive.
-(This quest can only be undertaken by a character of level 52 or higher.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00360_PlunderTheirSupplies/30873-02.htm b/trunk/dist/game/data/scripts/quests/Q00360_PlunderTheirSupplies/30873-02.htm
deleted file mode 100644
index 599ba67d7d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00360_PlunderTheirSupplies/30873-02.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Guard Coleman:
-Have you witnessed the current condition of the Cemetery?
-The final resting place of kings, aristocrats and heroes has fallen into ruin and been overtaken by hideous monsters. Our neglect tempts our ancestors' wrath.
-At Captain Kurtiz's direction, we have begun to try to drive out the monsters, but we have not been very effective so far.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00360_PlunderTheirSupplies/30873-03.htm b/trunk/dist/game/data/scripts/quests/Q00360_PlunderTheirSupplies/30873-03.htm
deleted file mode 100644
index c43f61d80a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00360_PlunderTheirSupplies/30873-03.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Guard Coleman:
-Captain Kurtiz says that in order to wipe them out completely, the Taik Orc seeker and the Taik Orc supply leader must be stopped from giving supplies to the monsters.
-But alas, our guards are having a hard time dealing with their forces. The captain has ordered me to find someone who can kill them for us.
-You seem capable of doing it. Are you willing to help us? We will pay you a generous reward.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00360_PlunderTheirSupplies/30873-04.htm b/trunk/dist/game/data/scripts/quests/Q00360_PlunderTheirSupplies/30873-04.htm
deleted file mode 100644
index c2256286a9..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00360_PlunderTheirSupplies/30873-04.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Guard Coleman:
-I wish you luck. You will be compensated based on the amount of supplies you bring back from the orcs. If you happen to find an important document, please bring it to me as well. In our current predicament, any amount of enemy intelligence would be very helpful.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00360_PlunderTheirSupplies/30873-05.html b/trunk/dist/game/data/scripts/quests/Q00360_PlunderTheirSupplies/30873-05.html
deleted file mode 100644
index a150b9ea0b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00360_PlunderTheirSupplies/30873-05.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Guard Coleman:
-Why are you still here? Your must subjugate Taik Orc seekers and Taik Orc supply leaders. You can't go back on your word! You don't intend to do that, do you?
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00360_PlunderTheirSupplies/30873-06.html b/trunk/dist/game/data/scripts/quests/Q00360_PlunderTheirSupplies/30873-06.html
deleted file mode 100644
index 97225f6ab3..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00360_PlunderTheirSupplies/30873-06.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Guard Coleman:
-Are you finished already? You must be exhausted! Thank you! Here is your reward. This should be more than enough compensation for your work... Do you wish to continue helping me with this mission?
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00360_PlunderTheirSupplies/30873-07.html b/trunk/dist/game/data/scripts/quests/Q00360_PlunderTheirSupplies/30873-07.html
deleted file mode 100644
index 85422e343b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00360_PlunderTheirSupplies/30873-07.html
+++ /dev/null
@@ -1,7 +0,0 @@
-Guard Coleman:
-Are you finished already? You must be exhausted! Thank you! You shall be well compensated.
-What is this? A document regarding the supplies? I knew it! There is a conspiracy afoot! I must take this to Captain Kurtiz right away! Thank you!
-Oh yes, I almost forgot. Here is your reward. Here is some extra for the document...
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00360_PlunderTheirSupplies/30873-08.html b/trunk/dist/game/data/scripts/quests/Q00360_PlunderTheirSupplies/30873-08.html
deleted file mode 100644
index 91ea0d75db..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00360_PlunderTheirSupplies/30873-08.html
+++ /dev/null
@@ -1,7 +0,0 @@
-Guard Coleman:
-Are you finished already? You must be exhausted! Thank you! You shall be well compensated.
-What is this? A document regarding the supplies? I knew it! There is a conspiracy afoot! I must take this to Captain Kurtiz right away! Thank you!
-Oh yes, I almost forgot. Here is your reward. Here is some extra for the document... Will you continue to help me?
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00360_PlunderTheirSupplies/30873-09.html b/trunk/dist/game/data/scripts/quests/Q00360_PlunderTheirSupplies/30873-09.html
deleted file mode 100644
index a4e1e3eeca..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00360_PlunderTheirSupplies/30873-09.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Guard Coleman:
-Thank you! I'm sure you will continue to have great results. Bring me any supplies and documents you take from the Taik orcs and I will give you a generous reward... Hurry!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00360_PlunderTheirSupplies/30873-10.html b/trunk/dist/game/data/scripts/quests/Q00360_PlunderTheirSupplies/30873-10.html
deleted file mode 100644
index 9267e4accf..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00360_PlunderTheirSupplies/30873-10.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Guard Coleman:
-Ah, yes... I understand... We all have our own path to follow... I shouldn't try to stop you. May a divine blessing shine upon your path from this day forward... But with your abilities, you probably don't even need a blessing. Someday I'm sure your name with be known throughout the kingdom of Aden.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00360_PlunderTheirSupplies/Q00360_PlunderTheirSupplies.java b/trunk/dist/game/data/scripts/quests/Q00360_PlunderTheirSupplies/Q00360_PlunderTheirSupplies.java
deleted file mode 100644
index 96f3424016..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00360_PlunderTheirSupplies/Q00360_PlunderTheirSupplies.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00360_PlunderTheirSupplies;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.l2jserver.gameserver.enums.QuestSound;
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-import com.l2jserver.gameserver.util.Util;
-
-/**
- * Plunder Supplies (360)
- * @author netvirus
- */
-public final class Q00360_PlunderTheirSupplies extends Quest
-{
- // Npc
- private static final int COLEMAN = 30873;
- // Misc
- private static final int MIN_LVL = 52;
- // Monsters
- private static final Map MONSTER_DROP_CHANCES = new HashMap<>();
- // Items
- private static final int RECIPE_OF_SUPPLY = 5870;
- private static final int SUPPLY_ITEMS = 5872;
- private static final int SUSPICIOUS_DOCUMENT_PIECE = 5871;
-
- static
- {
- MONSTER_DROP_CHANCES.put(20666, 50); // Taik Orc Seeker
- MONSTER_DROP_CHANCES.put(20669, 75); // Taik Orc Supply Leader
- }
-
- public Q00360_PlunderTheirSupplies()
- {
- super(360, Q00360_PlunderTheirSupplies.class.getSimpleName(), "Plunder Their Supplies");
- addStartNpc(COLEMAN);
- addTalkId(COLEMAN);
- addKillId(MONSTER_DROP_CHANCES.keySet());
- registerQuestItems(SUPPLY_ITEMS, SUSPICIOUS_DOCUMENT_PIECE, RECIPE_OF_SUPPLY);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, false);
- String htmltext = null;
- if (st == null)
- {
- return htmltext;
- }
-
- switch (event)
- {
- case "30873-03.htm":
- case "30873-09.html":
- {
- htmltext = event;
- break;
- }
- case "30873-04.htm":
- {
- st.startQuest();
- htmltext = event;
- break;
- }
- case "30873-10.html":
- {
- st.exitQuest(false, true);
- htmltext = event;
- break;
- }
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance killer, boolean isPet)
- {
- final QuestState st = getQuestState(killer, false);
- if ((st == null) || !Util.checkIfInRange(1500, npc, killer, false))
- {
- return super.onKill(npc, killer, isPet);
- }
-
- if (getRandom(100) < MONSTER_DROP_CHANCES.get(npc.getId()))
- {
- st.giveItems(SUPPLY_ITEMS, 1);
- st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
- }
-
- if (getRandom(100) < 10)
- {
- if (st.getQuestItemsCount(SUSPICIOUS_DOCUMENT_PIECE) < 4)
- {
- st.giveItems(SUSPICIOUS_DOCUMENT_PIECE, 1);
- }
- else
- {
- st.giveItems(RECIPE_OF_SUPPLY, 1);
- st.takeItems(SUSPICIOUS_DOCUMENT_PIECE, -1);
- }
- st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
- }
- return super.onKill(npc, killer, isPet);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, true);
- String htmltext = getNoQuestMsg(player);
- if (st == null)
- {
- return htmltext;
- }
-
- switch (st.getState())
- {
- case State.CREATED:
- {
- htmltext = (player.getLevel() >= MIN_LVL) ? "30873-02.htm" : "30873-01.html";
- break;
- }
- case State.STARTED:
- {
- final long supplyCount = st.getQuestItemsCount(SUPPLY_ITEMS);
- final long recipeCount = st.getQuestItemsCount(RECIPE_OF_SUPPLY);
- if (supplyCount == 0)
- {
- if (recipeCount == 0)
- {
- htmltext = "30873-05.html";
- }
- else
- {
- st.giveAdena((recipeCount * 6000), true);
- st.takeItems(RECIPE_OF_SUPPLY, -1);
- htmltext = "30873-08.html";
- }
- }
- else
- {
- if (recipeCount == 0)
- {
- st.giveAdena(((supplyCount * 100) + 6000), true);
- st.takeItems(SUPPLY_ITEMS, -1);
- htmltext = "30873-06.html";
- }
- else
- {
- st.giveAdena((((supplyCount * 100) + 6000) + (recipeCount * 6000)), true);
- st.takeItems(SUPPLY_ITEMS, -1);
- st.takeItems(RECIPE_OF_SUPPLY, -1);
- htmltext = "30873-07.html";
- }
- }
- break;
- }
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30837-01.html b/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30837-01.html
deleted file mode 100644
index 35754d234e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30837-01.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Trader Woodrow:
-Ah, you mean the flute that Swan ordered? It must have arrived at Giran Harbor by now...
-If you're in a hurry, you can go directly to the harbor and pick it up. I'll give you the item number so you can pick it up from Gallion at the harbor.
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30837-02.html b/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30837-02.html
deleted file mode 100644
index 32a24e6344..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30837-02.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Trader Woodrow:
-Didn't you say that you desperately need the flute? It will take a long time for it to be shipped here. Why don't you go directly to Giran Harbor and pick it up? Give the item number I gave you to Gallion at the harbor.
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30837-03.html b/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30837-03.html
deleted file mode 100644
index 2a6cbc3e4b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30837-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Trader Woodrow:
-So, we meet again! Please give my regards to Mr. Swan.
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30956-01.html b/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30956-01.html
deleted file mode 100644
index 40f8b59f60..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30956-01.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Musician Nanarin:
-What, another package from Bard Swan? Oh, my, this is especially beautiful!
-Hey, you aren't waiting around for a reply, are you? I appreciate all the flutes, but the Bard really isn't my type! Please tell him that my knight in shining armor is someone else!
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30956-02.html b/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30956-02.html
deleted file mode 100644
index 2fd839d9d7..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30956-02.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Musician Nanarin:
-What am I to do about Bard Swan? I don't want to hurt his feelings but I am not attracted to him at all!
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30957-01.htm b/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30957-01.htm
deleted file mode 100644
index 4833185b52..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30957-01.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Bard Swan:
-I am uncomfortable talking about my feelings, but she is so beautiful and pure... She is the perfect woman! No... she is a goddess! If only I could tell her of my feelings...
-Her flute playing is sublime! She is renowned, even among the musicians of her own race, for her incredible talent. A while back I sent her a gift, a flute made of horn, but I haven't gotten any word back from her...
-Please help me! I feel like I'm losing my mind!
-
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30957-02.htm b/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30957-02.htm
deleted file mode 100644
index 58b1508d4a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30957-02.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Bard Swan:
-Oh, thank you so much! Actually, I have already ordered a flute for her from Trader Woodrow of the Town of Aden, a specialist in exotic musical instruments. Please check with him to see if the flute has arrived.
-Mention my name and he will tell you the status of my order. Afterwards I will give you a musical score that is necessary to make an Echo Crystal.
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30957-03.html b/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30957-03.html
deleted file mode 100644
index 12bae47dea..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30957-03.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Bard Swan:
-I am uncomfortable talking about my feelings, but she is so beautiful and pure... She is the perfect woman! No... she is a goddess! You are not worthy to even speak her name!
-(This quest may only be undertaken by a character of level 15 or above.)
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30957-04.html b/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30957-04.html
deleted file mode 100644
index 8902b4f546..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30957-04.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Bard Swan:
-My goddess... Oh, my dear goddess... I pray the flute makes her happy... What are you still doing here? Go and see Trader Woodrow of the Town of Aden and find out whether the flute I ordered has arrived.
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30957-05.html b/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30957-05.html
deleted file mode 100644
index 9bd77f036f..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30957-05.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Bard Swan:
-Oh, thank you! The flute is beautiful! Surely this will please my beloved Nanarin. Would you perhaps be willing to take the flute to her, along with my letter? Please say that you will do this one last thing for me.
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30957-06.html b/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30957-06.html
deleted file mode 100644
index f44ca1a579..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30957-06.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Bard Swan:
-Did you deliver the flute and letter to Nanarin? What did she say? Please tell me!
-
-
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30957-07.html b/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30957-07.html
deleted file mode 100644
index ff309896f9..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30957-07.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Bard Swan:
-Oh, I knew it would work! Now, if I can only convince her of my devotion to her...
-I am greatly indebted to you! Unfortunately, I have spent most of my money on the flute... I've managed to scrape together a bit of money for you. Take it, along with this musical score I composed myself.
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30957-08.html b/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30957-08.html
deleted file mode 100644
index 43d7cccf9b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30957-08.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Bard Swan:
-Oh, I wish I was dead!
-Perhaps it was the wrong gift. I must have not been trying hard enough. I shall never give up! Somehow I will win the heart of my beloved!
-Take this as a token of my gratitude for all your help.
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30958-01.html b/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30958-01.html
deleted file mode 100644
index f5fd07739f..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30958-01.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Galion:
-A flute? Wait a moment, let me check...
-Ah, yes, here it is! A flute made of horn, imported from Avella. It's quite expensive but has an exquisite tone!
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30958-02.html b/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30958-02.html
deleted file mode 100644
index 54bc21dbba..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/30958-02.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Galion:
-How is my old friend Trader Woodrow? I feel I know him well although we have only spoken by letter...
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/Q00362_BardsMandolin.java b/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/Q00362_BardsMandolin.java
deleted file mode 100644
index a798afdaed..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00362_BardsMandolin/Q00362_BardsMandolin.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00362_BardsMandolin;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-
-/**
- * Bard's Mandolin (362)
- * @author Adry_85
- */
-public final class Q00362_BardsMandolin extends Quest
-{
- // NPCs
- private static final int WOODROW = 30837;
- private static final int NANARIN = 30956;
- private static final int SWAN = 30957;
- private static final int GALION = 30958;
- // Items
- private static final int SWANS_FLUTE = 4316;
- private static final int SWANS_LETTER = 4317;
- private static final int THEME_OF_JOURNEY = 4410;
- // Misc
- private static final int MIN_LEVEL = 15;
-
- public Q00362_BardsMandolin()
- {
- super(362, Q00362_BardsMandolin.class.getSimpleName(), "Bard's Mandolin");
- addStartNpc(SWAN);
- addTalkId(SWAN, GALION, WOODROW, NANARIN);
- registerQuestItems(SWANS_FLUTE, SWANS_LETTER);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return null;
- }
-
- String htmltext = null;
- switch (event)
- {
- case "30957-02.htm":
- {
- st.startQuest();
- st.setMemoState(1);
- htmltext = event;
- break;
- }
- case "30957-07.html":
- case "30957-08.html":
- {
- if (st.isMemoState(5))
- {
- st.giveAdena(10000, true);
- st.rewardItems(THEME_OF_JOURNEY, 1);
- st.exitQuest(true, true);
- htmltext = event;
- }
- break;
- }
- }
- return htmltext;
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, true);
- String htmltext = getNoQuestMsg(player);
- switch (st.getState())
- {
- case State.CREATED:
- {
- if (npc.getId() == SWAN)
- {
- htmltext = (player.getLevel() >= MIN_LEVEL) ? "30957-01.htm" : "30957-03.html";
- }
- break;
- }
- case State.STARTED:
- {
- switch (npc.getId())
- {
- case SWAN:
- {
- switch (st.getMemoState())
- {
- case 1:
- case 2:
- {
- htmltext = "30957-04.html";
- break;
- }
- case 3:
- {
- st.setCond(4, true);
- st.setMemoState(4);
- st.giveItems(SWANS_LETTER, 1);
- htmltext = "30957-05.html";
- break;
- }
- case 4:
- {
- htmltext = "30957-05.html";
- break;
- }
- case 5:
- {
- htmltext = "30957-06.html";
- break;
- }
- }
- break;
- }
- case GALION:
- {
- if (st.isMemoState(2))
- {
- st.setMemoState(3);
- st.setCond(3, true);
- st.giveItems(SWANS_FLUTE, 1);
- htmltext = "30958-01.html";
- }
- else if (st.getMemoState() >= 3)
- {
- htmltext = "30958-02.html";
- }
- break;
- }
- case WOODROW:
- {
- if (st.isMemoState(1))
- {
- st.setMemoState(2);
- st.setCond(2, true);
- htmltext = "30837-01.html";
- }
- else if (st.isMemoState(2))
- {
- htmltext = "30837-02.html";
- }
- else if (st.getMemoState() >= 3)
- {
- htmltext = "30837-03.html";
- }
- break;
- }
- case NANARIN:
- {
- if (st.isMemoState(4) && st.hasQuestItems(SWANS_FLUTE, SWANS_LETTER))
- {
- st.setMemoState(5);
- st.setCond(5, true);
- st.takeItems(SWANS_FLUTE, -1);
- st.takeItems(SWANS_LETTER, -1);
- htmltext = "30956-01.html";
- }
- else if (st.getMemoState() >= 5)
- {
- htmltext = "30956-02.html";
- }
- break;
- }
- }
- break;
- }
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30057-01.html b/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30057-01.html
deleted file mode 100644
index fee596f603..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30057-01.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Warehouse Freightman Aldo:
-Well, a while back he mentioned he didn't have anything to wear to an event... Maybe he would like a new outfit!
-By the way, how do you know Barbado?
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30057-02.html b/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30057-02.html
deleted file mode 100644
index 3835340930..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30057-02.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Warehouse Freightman Aldo:
-Well, Barbado has a fondness for music... He is quite an accordionist... He once mentioned that he wanted to learn another instrument... I believe it was the flute...
-By the way, who are you? How do you know Barbado?
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30057-03.html b/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30057-03.html
deleted file mode 100644
index 50c6d8a91f..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30057-03.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Warehouse Freightman Aldo:
-Ah, Barbado... Yes, he does enjoy a nice cold black beer after he finishes playing his music...
-By the way, who are you? What is your relationship to Barbado?
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30057-04.html b/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30057-04.html
deleted file mode 100644
index e828fd574f..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30057-04.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Warehouse Freightman Aldo:
-I am Aldo. What is your name?
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30058-01.html b/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30058-01.html
deleted file mode 100644
index a2331b7c6d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30058-01.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Warehouse Keeper Holvas:
-What would Barbado like?
-Well, recently he was complaining about not having anything to wear to an event... Maybe he would like a new outfit!
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30058-02.html b/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30058-02.html
deleted file mode 100644
index dd263c092f..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30058-02.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Warehouse Keeper Holvas:
-Hmmm, what would Barbado like to have?
-Well, he is a musician and has expressed an interest in learning to play a new instrument... Yes, I believe he mentioned that he wanted to learn to play the flute!
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30058-03.html b/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30058-03.html
deleted file mode 100644
index 9dd0d8bdaa..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30058-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Warehouse Keeper Holvas:
-I think Barbado would be happiest with a cold black beer after one of his musical performances!
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30058-04.html b/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30058-04.html
deleted file mode 100644
index 39a33839f6..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30058-04.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Warehouse Keeper Holvas:
-You know, come to think of it, a beer sounds pretty good to me, too! If you have the time, could you bring me one?
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30458-01.html b/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30458-01.html
deleted file mode 100644
index 1ae93f6819..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30458-01.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Blacksmith Poitan:
-Oh, Barbado. What would he want?
-Oh, I know! He mentioned recently that he didn't have anything to wear to a special event? Burp! Perhaps what he needs is a new outfit!
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30458-02.html b/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30458-02.html
deleted file mode 100644
index 3affeca7de..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30458-02.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Blacksmith Poitan:
-Oh, Barbado. What would he want?
-Oh, I know! He mentioned recently that he wanted to learn a new instrument! Burp! Perhaps what he wants is a flute!
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30458-03.html b/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30458-03.html
deleted file mode 100644
index 9ff2c00c27..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30458-03.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Blacksmith Poitan:
-Oh, Barbado. What would he want?
-Oh, I know! He likes nothing better than a cold glass of black beer after a performance!
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30458-04.html b/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30458-04.html
deleted file mode 100644
index 73a96d97d0..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30458-04.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Blacksmith Poitan:
-Ha ha ha....
-I can't stop laughing! Ha ha ha...
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30594-01.html b/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30594-01.html
deleted file mode 100644
index 5ad25c35e1..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30594-01.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Warehouse Chief Ranspo:
-What would Barbado want?
-Well, he did mention something about needing a new set of clothes!
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30594-02.html b/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30594-02.html
deleted file mode 100644
index b68b1b227a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30594-02.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Warehouse Chief Ranspo:
-What does Barbado want?
-Who knows? Well, he did say something once about wanting to pick up a new instrument... A flute, I think it was...
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30594-03.html b/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30594-03.html
deleted file mode 100644
index 70ee16e9cd..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30594-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Warehouse Chief Ranspo:
-What would Barbado like? Well, I don't know about him, but I could use a cold, black beer!
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30594-04.html b/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30594-04.html
deleted file mode 100644
index c1bc885125..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30594-04.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Warehouse Chief Ranspo:
-I have no ear for music whatsoever!
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30595-01.html b/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30595-01.html
deleted file mode 100644
index 70626e7e45..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30595-01.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Head Blacksmith Opix:
-What would Barbado like?
-Well, I did hear him mention not too long ago that he wished he had something nice to wear to an event. Perhaps he would like a new outfit?
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30595-02.html b/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30595-02.html
deleted file mode 100644
index a113fc9548..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30595-02.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Head Blacksmith Opix:
-What would Barbado like?
-Well, he is a musician. I have often heard him say that he would like to learn a new instrument... What was it? Ah, yes! It was a flute!
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30595-03.html b/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30595-03.html
deleted file mode 100644
index c10ea7748c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30595-03.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Head Blacksmith Opix:
-What would Barbado like to have?
-I happen to know that his favorite thing in the whole world is a cold black beer after one of his musical performances.
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30595-04.html b/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30595-04.html
deleted file mode 100644
index c60248f328..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30595-04.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Head Blacksmith Opix:
-I'm extremely busy. Please stop bothering me.
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30956-01.htm b/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30956-01.htm
deleted file mode 100644
index 7b2fe985aa..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30956-01.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Musician Nanarin:
-I must admit that his broad shoulders take my breath away, and that lovely beard of his has captured my soul...
-What can I do? I've never felt this way before... Could you please help me?
-
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30956-02.htm b/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30956-02.htm
deleted file mode 100644
index 6e702a0a01..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30956-02.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Musician Nanarin:
-Could you perhaps find out what would make him happy? I love Barbado... Please ask his friends what he wants the most. Start with the Dwarves in this village, and don't you dare mention my name!
-Will you please do this for me?
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30956-03.htm b/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30956-03.htm
deleted file mode 100644
index 843dec71c2..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30956-03.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Musician Nanarin:
-You know, come to think of it, I don't think that you are the right person for this job.
-(This quest can only be undertaken by a character of level 15 or higher.)
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30956-04.html b/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30956-04.html
deleted file mode 100644
index e8f83f828f..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30956-04.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Musician Nanarin:
-So? What does Barbado want?
-
-
-
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30956-05.html b/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30956-05.html
deleted file mode 100644
index 7c2cebb712..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30956-05.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Musician Nanarin:
-Splendid! Please take him these clothes. If he asks, tell him they are from his secret admirer.
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30956-06.html b/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30956-06.html
deleted file mode 100644
index 91a9a6fcf0..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30956-06.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Musician Nanarin:
-Oh, marvelous! Please take him this flute. If he asks you who sent it, just say that it is from his secret admirer.
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30956-07.html b/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30956-07.html
deleted file mode 100644
index 0631b4561f..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30956-07.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Musician Nanarin:
-Oh, great! Please take him this black beer. If he asks who sent it, tell him it is from his secret admirer.
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30956-08.html b/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30956-08.html
deleted file mode 100644
index 63ddfc0559..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30956-08.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Musician Nanarin:
-Oh, my sweet Barbado...
-How I pray that my gift will make him happy...
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30956-09.html b/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30956-09.html
deleted file mode 100644
index 694efeed4b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30956-09.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Musician Nanarin:
-Oh, yes, no need to tell me. I've already heard. Take this as a token of my appreciation. It's a score of some music that I enjoy playing on my flute. Take it to a Melody Maestro and she will make an Echo Crystal for you.
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30956-10.html b/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30956-10.html
deleted file mode 100644
index 92e0a3fe99..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30956-10.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Musician Nanarin:
-What a loser! I was a fool to trust you with such an important errand! Why are you standing there with your mouth hanging open? Get out of my sight, right now!!!
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30959-01.html b/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30959-01.html
deleted file mode 100644
index e03a50ac19..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30959-01.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Musician Barbado:
-Just what I've always wanted! I wish I knew who sent me this! Whoever it is must know me well.
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30959-02.html b/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30959-02.html
deleted file mode 100644
index b758b28f40..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30959-02.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Musician Barbado:
-Thanks anyway, but I don't have any use for that.
-If that is all, would you excuse me, please? I must practice my music.
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30959-03.html b/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30959-03.html
deleted file mode 100644
index a7918b63ee..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/30959-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Musician Barbado:
-I am practicing my music. Please don't disturb me.
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/Q00363_SorrowfulSoundOfFlute.java b/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/Q00363_SorrowfulSoundOfFlute.java
deleted file mode 100644
index 311a73fcb2..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00363_SorrowfulSoundOfFlute/Q00363_SorrowfulSoundOfFlute.java
+++ /dev/null
@@ -1,364 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00363_SorrowfulSoundOfFlute;
-
-import com.l2jserver.gameserver.enums.QuestSound;
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-
-/**
- * Sorrowful Sound of Flute (363)
- * @author Adry_85
- */
-public final class Q00363_SorrowfulSoundOfFlute extends Quest
-{
- // NPCs
- private static final int ALDO = 30057;
- private static final int HOLVAS = 30058;
- private static final int POITAN = 30458;
- private static final int RANSPO = 30594;
- private static final int OPIX = 30595;
- private static final int NANARIN = 30956;
- private static final int BARBADO = 30959;
- // Items
- private static final int EVENT_CLOTHES = 4318;
- private static final int NANARINS_FLUTE = 4319;
- private static final int SABRINS_BLACK_BEER = 4320;
- private static final int THEME_OF_SOLITUDE = 4420;
- // Misc
- private static final int MIN_LEVEL = 15;
-
- public Q00363_SorrowfulSoundOfFlute()
- {
- super(363, Q00363_SorrowfulSoundOfFlute.class.getSimpleName(), "Sorrowful Sound of Flute");
- addStartNpc(NANARIN);
- addTalkId(NANARIN, POITAN, RANSPO, ALDO, HOLVAS, OPIX, BARBADO);
- registerQuestItems(EVENT_CLOTHES, NANARINS_FLUTE, SABRINS_BLACK_BEER);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return null;
- }
-
- String htmltext = null;
- switch (event)
- {
- case "START":
- {
- if (player.getLevel() >= MIN_LEVEL)
- {
- st.startQuest();
- st.setMemoState(2);
- htmltext = "30956-02.htm";
- }
- else
- {
- htmltext = "30956-03.htm";
- }
- break;
- }
- case "30956-05.html":
- {
- st.giveItems(EVENT_CLOTHES, 1);
- st.setMemoState(4);
- st.setCond(3, true);
- htmltext = event;
- break;
- }
- case "30956-06.html":
- {
- st.giveItems(NANARINS_FLUTE, 1);
- st.setMemoState(4);
- st.setCond(3, true);
- htmltext = event;
- break;
- }
- case "30956-07.html":
- {
- st.giveItems(SABRINS_BLACK_BEER, 1);
- st.setMemoState(4);
- st.setCond(3, true);
- htmltext = event;
- break;
- }
- }
- return htmltext;
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, true);
- String htmltext = getNoQuestMsg(player);
- switch (st.getState())
- {
- case State.CREATED:
- {
- if (npc.getId() == NANARIN)
- {
- htmltext = "30956-01.htm";
- }
- break;
- }
- case State.STARTED:
- {
- switch (npc.getId())
- {
- case NANARIN:
- {
- switch (st.getMemoState())
- {
- case 2:
- {
- htmltext = "30956-04.html";
- break;
- }
- case 4:
- {
- htmltext = "30956-08.html";
- break;
- }
- case 5:
- {
- st.rewardItems(THEME_OF_SOLITUDE, 1);
- st.exitQuest(true, true);
- htmltext = "30956-09.html";
- break;
- }
- case 6:
- {
- st.exitQuest(true, false);
- st.playSound(QuestSound.ITEMSOUND_QUEST_GIVEUP);
- htmltext = "30956-10.html";
- break;
- }
- }
- break;
- }
- case POITAN:
- {
- if (st.isMemoState(2) && ((st.getInt("ex") % 100) < 10))
- {
- int ex = st.getInt("ex");
- st.set("ex", ex + 11);
- switch (getRandom(3))
- {
- case 0:
- {
- htmltext = "30458-01.html";
- break;
- }
- case 1:
- {
- htmltext = "30458-02.html";
- break;
- }
- case 2:
- {
- htmltext = "30458-03.html";
- break;
- }
- }
- st.setCond(2, true);
- }
- else if ((st.getMemoState() >= 2) && ((st.getInt("ex") % 100) >= 10))
- {
- htmltext = "30458-04.html";
- }
- break;
- }
- case RANSPO:
- {
- if (st.isMemoState(2) && ((st.getInt("ex") % 10000) < 1000))
- {
- int ex = st.getInt("ex");
- st.set("ex", ex + 1001);
- switch (getRandom(3))
- {
- case 0:
- {
- htmltext = "30594-01.html";
- break;
- }
- case 1:
- {
- htmltext = "30594-02.html";
- break;
- }
- case 2:
- {
- htmltext = "30594-03.html";
- break;
- }
- }
- st.setCond(2, true);
- }
- else if ((st.getMemoState() >= 2) && ((st.getInt("ex") % 10000) >= 1000))
- {
- htmltext = "30594-04.html";
- }
- break;
- }
- case ALDO:
- {
- if (st.isMemoState(2) && ((st.getInt("ex") % 100000) < 10000))
- {
- int ex = st.getInt("ex");
- st.set("ex", ex + 10001);
- switch (getRandom(3))
- {
- case 0:
- {
- htmltext = "30057-01.html";
- break;
- }
- case 1:
- {
- htmltext = "30057-02.html";
- break;
- }
- case 2:
- {
- htmltext = "30057-03.html";
- break;
- }
- }
- st.setCond(2, true);
- }
- else if ((st.getMemoState() >= 2) && ((st.getInt("ex") % 100000) >= 10000))
- {
- htmltext = "30057-04.html";
- }
- break;
- }
- case HOLVAS:
- {
- if (st.isMemoState(2) && ((st.getInt("ex") % 1000) < 100))
- {
- int ex = st.getInt("ex");
- st.set("ex", ex + 101);
- switch (getRandom(3))
- {
- case 0:
- {
- htmltext = "30058-01.html";
- break;
- }
- case 1:
- {
- htmltext = "30058-02.html";
- break;
- }
- case 2:
- {
- htmltext = "30058-03.html";
- break;
- }
- }
- st.setCond(2, true);
- }
- else if ((st.getMemoState() >= 2) && ((st.getInt("ex") % 1000) >= 100))
- {
- htmltext = "30058-04.html";
- }
- break;
- }
- case OPIX:
- {
- if (st.isMemoState(2) && (st.getInt("ex") < 100000))
- {
- int ex = st.getInt("ex");
- st.set("ex", ex + 100001);
- switch (getRandom(3))
- {
- case 0:
- {
- htmltext = "30595-01.html";
- break;
- }
- case 1:
- {
- htmltext = "30595-02.html";
- break;
- }
- case 2:
- {
- htmltext = "30595-03.html";
- break;
- }
- }
- st.setCond(2, true);
- }
- else if ((st.getMemoState() >= 2) && (st.getInt("ex") >= 100000))
- {
- htmltext = "30595-04.html";
- }
- break;
- }
- case BARBADO:
- {
- if (st.isMemoState(4))
- {
- int ex = (st.getInt("ex") % 10) * 20;
- if (getRandom(100) < ex)
- {
- if (st.hasQuestItems(EVENT_CLOTHES))
- {
- st.takeItems(EVENT_CLOTHES, -1);
- }
- else if (st.hasQuestItems(NANARINS_FLUTE))
- {
- st.takeItems(NANARINS_FLUTE, -1);
- }
- else if (st.hasQuestItems(SABRINS_BLACK_BEER))
- {
- st.takeItems(SABRINS_BLACK_BEER, -1);
- }
- st.setMemoState(5);
- st.setCond(4, true);
- htmltext = "30959-01.html";
- }
- else
- {
- st.setMemoState(6);
- st.setCond(4, true);
- htmltext = "30959-02.html";
- }
- }
- else if (st.getMemoState() >= 5)
- {
- htmltext = "30959-03.html";
- }
- break;
- }
- }
- break;
- }
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30060-01.html b/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30060-01.html
deleted file mode 100644
index e23f069a68..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30060-01.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Trader Sabrin:
-Did Swan send you? This is not enough! Go back and tell him that from now on it will be more, otherwise he should do business elsewhere.
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30060-02.html b/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30060-02.html
deleted file mode 100644
index dd343cd447..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30060-02.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Trader Sabrin:
-You know, it would be much less trouble if we just stole the recipe for making black beer from Jonas...
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30075-01.html b/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30075-01.html
deleted file mode 100644
index 60bee08c1d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30075-01.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Guard Xaber:
-I received the item. Please tell Swan that I will send someone to him tomorrow.
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30075-02.html b/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30075-02.html
deleted file mode 100644
index c970a4964d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30075-02.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Guard Xaber:
-Needless to say, the best kind of business is one that doesn't need any start-up capital!
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30957-01.html b/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30957-01.html
deleted file mode 100644
index 518878cad3..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30957-01.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Bard Swan:
-Barbado wants to play a duet with me? Hmmm, I don't know, my beloved seems to actually be attracted to that hairy ape!
-I am practically broke from buying gifts for Nanarin.
-Well, if you'll run an errand for me, I'll play a duet with Barbado. What do you say?
-
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30957-02.html b/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30957-02.html
deleted file mode 100644
index c3a6f49715..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30957-02.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Bard Swan:
-Please get some black beer from Chef Jonas and take it to Trader Sabrin. Jonas keeps his beer in a beer chest and stores it in a warehouse... He becomes quite cross when asked for favors, so it would be best if you handled this without talking to him.
-Also, go to the grocery store in the village and find a clothes chest. You will find it near Trader Sonia. Take the contents of that chest to Guard Xaber. Here are the keys to the two chests. Good luck!
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30957-03.html b/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30957-03.html
deleted file mode 100644
index 52b1539973..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30957-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Bard Swan:
-Is this too complicated for you? Would you like for me to explain it again? Take the black beer from Jonas' beer chest located in the warehouse and take it to Trader Sabrin. Then go to the grocery store and take Sonia's Event Clothes from the clothes chest and take them to Guard Xaber.
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30957-04.html b/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30957-04.html
deleted file mode 100644
index 6a4df26ca0..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30957-04.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Bard Swan:
-How could you have botched so easy an errand?! Two items should not have been that hard to deliver!
-Well, at least you delivered one item... I'll play the duet, but I won't give you any money.
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30957-05.html b/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30957-05.html
deleted file mode 100644
index 675828f92f..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30957-05.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Bard Swan:
-Good job! As I promised, I will play a duet . But let him know, I only intend to do this once!
-Here is your reward for running my errand.
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30957-06.html b/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30957-06.html
deleted file mode 100644
index 0175904a13..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30957-06.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Bard Swan:
-How could you have failed so easy a task? I shall never play a duet with Barbado!
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30957-07.html b/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30957-07.html
deleted file mode 100644
index 9a8737cff5..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30957-07.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Bard Swan:
-Quiet! I'm writing a letter to my beloved and I must concentrate!
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30959-01.htm b/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30959-01.htm
deleted file mode 100644
index 5d7e9cdeda..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30959-01.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Musician Barbado:
-Some time ago, I heard Bard Swan playing his mandolin. His skills are quite impressive. I wish he would play a duet with me, but for some reason, whenever he sees me he avoids me...
-I hate to ask you to do this, but would you go see Swan and tell him that I want to play a duet with him? Of course you will be rewarded for your effort.
-
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30959-02.htm b/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30959-02.htm
deleted file mode 100644
index 1acbe31eba..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30959-02.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Musician Barbado:
-Thank you so much! You can find Bard Swan beneath the big tree in the center of the village. Please convince him to honor my request. I am sure you are capable of this.
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30959-03.htm b/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30959-03.htm
deleted file mode 100644
index ed2963a496..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30959-03.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Musician Barbado:
-Thank you for offering, but I am afraid that you lack the necessary skills to undertake this task. It will be too much for you.
-(This quest can be undertaken only by a character of level 15 or above.)
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30959-04.html b/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30959-04.html
deleted file mode 100644
index 65b0f40759..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30959-04.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Musician Barbado:
-You must persuade Bard Swan to play music with me. You will find him under the big tree in the center of the village. I am sure you are capable of this.
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30959-05.html b/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30959-05.html
deleted file mode 100644
index ab407e5f4b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30959-05.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Musician Barbado:
-Thank you so much! At last I get to play a duet with Bard Swan! My dream is coming true! You have made this possible.
-Here! Take this priceless accordion music as a token of my appreciation!
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30960-01.html b/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30960-01.html
deleted file mode 100644
index 2ddce94d0f..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30960-01.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Beer Chest:
-This chest contains beer made by Jonas...
-
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30960-02.html b/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30960-02.html
deleted file mode 100644
index b565ebf466..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30960-02.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Beer Chest:
-The chest contains black beer.
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30960-03.html b/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30960-03.html
deleted file mode 100644
index ecfb7f33f6..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30960-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Beer Chest:
-The key to the chest is broken.
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30960-04.html b/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30960-04.html
deleted file mode 100644
index b266f3d984..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30960-04.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Beer Chest:
-The chest is locked.
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30961-01.html b/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30961-01.html
deleted file mode 100644
index dc4b97e562..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30961-01.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Clothes Chest:
-This chest contains the clothing of Trader Sonia.
-
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30961-02.html b/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30961-02.html
deleted file mode 100644
index 8526029914..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30961-02.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Clothes Chest:
-Contains magnificent clothing.
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30961-03.html b/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30961-03.html
deleted file mode 100644
index 1c3cbfbb45..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30961-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Clothes Chest:
-The key to the chest is broken.
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30961-04.html b/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30961-04.html
deleted file mode 100644
index 7535e112ce..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/30961-04.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Clothes Chest:
-The chest is locked.
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/Q00364_JovialAccordion.java b/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/Q00364_JovialAccordion.java
deleted file mode 100644
index ab1e7549a7..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00364_JovialAccordion/Q00364_JovialAccordion.java
+++ /dev/null
@@ -1,290 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00364_JovialAccordion;
-
-import com.l2jserver.gameserver.enums.QuestSound;
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-
-/**
- * Jovial Accordion (364)
- * @author Adry_85
- */
-public final class Q00364_JovialAccordion extends Quest
-{
- // NPCs
- private static final int SABRIN = 30060;
- private static final int XABER = 30075;
- private static final int SWAN = 30957;
- private static final int BARBADO = 30959;
- private static final int BEER_CHEST = 30960;
- private static final int CLOTH_CHEST = 30961;
- // Items
- private static final int STOLEN_BLACK_BEER = 4321;
- private static final int STOLEN_EVENT_CLOTHES = 4322;
- private static final int CLOTHES_CHEST_KEY = 4323;
- private static final int BEER_CHEST_KEY = 4324;
- private static final int THEME_OF_THE_FEAST = 4421;
- // Misc
- private static final int MIN_LEVEL = 15;
-
- public Q00364_JovialAccordion()
- {
- super(364, Q00364_JovialAccordion.class.getSimpleName(), "Jovial Accordion");
- addStartNpc(BARBADO);
- addTalkId(BARBADO, BEER_CHEST, CLOTH_CHEST, SABRIN, XABER, SWAN);
- registerQuestItems(STOLEN_BLACK_BEER, STOLEN_EVENT_CLOTHES, CLOTHES_CHEST_KEY, BEER_CHEST_KEY);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return null;
- }
-
- String htmltext = null;
- switch (event)
- {
- case "START":
- {
- if (player.getLevel() >= MIN_LEVEL)
- {
- st.startQuest();
- st.setMemoState(1);
- htmltext = "30959-02.htm";
- }
- else
- {
- htmltext = "30959-03.htm";
- }
- break;
- }
- case "OPEN_CHEST":
- {
- if (st.hasQuestItems(BEER_CHEST_KEY))
- {
- if (getRandomBoolean())
- {
- st.giveItems(STOLEN_BLACK_BEER, 1);
- htmltext = "30960-02.html";
- }
- else
- {
- htmltext = "30960-03.html";
- }
- st.takeItems(BEER_CHEST_KEY, -1);
- }
- else
- {
- htmltext = "30960-04.html";
- }
- break;
- }
- case "OPEN_CLOTH_CHEST":
- {
- if (st.hasQuestItems(CLOTHES_CHEST_KEY))
- {
- if (getRandomBoolean())
- {
- st.giveItems(STOLEN_EVENT_CLOTHES, 1);
- htmltext = "30961-02.html";
- }
- else
- {
- htmltext = "30961-03.html";
- }
- st.takeItems(CLOTHES_CHEST_KEY, -1);
- }
- else
- {
- htmltext = "30961-04.html";
- }
- break;
- }
- case "30957-02.html":
- {
- st.giveItems(CLOTHES_CHEST_KEY, 1);
- st.giveItems(BEER_CHEST_KEY, 1);
- st.setMemoState(2);
- st.setCond(2, true);
- htmltext = event;
- break;
- }
- }
- return htmltext;
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, true);
- String htmltext = getNoQuestMsg(player);
- switch (st.getState())
- {
- case State.CREATED:
- {
- if (npc.getId() == BARBADO)
- {
- htmltext = "30959-01.htm";
- }
- break;
- }
- case State.STARTED:
- {
- switch (npc.getId())
- {
- case BARBADO:
- {
- switch (st.getMemoState())
- {
- case 1:
- case 2:
- case 3:
- case 4:
- {
- htmltext = "30959-04.html";
- break;
- }
- case 5:
- {
- st.rewardItems(THEME_OF_THE_FEAST, 1);
- st.exitQuest(true, true);
- htmltext = "30959-05.html";
- break;
- }
- }
- break;
- }
- case BEER_CHEST:
- {
- htmltext = "30960-01.html";
- break;
- }
- case CLOTH_CHEST:
- {
- htmltext = "30961-01.html";
- break;
- }
- case SABRIN:
- {
- if (st.hasQuestItems(STOLEN_BLACK_BEER))
- {
- st.takeItems(STOLEN_BLACK_BEER, -1);
- htmltext = "30060-01.html";
- if (st.isMemoState(2))
- {
- st.setMemoState(3);
- }
- else if (st.isMemoState(3))
- {
- st.setMemoState(4);
- }
- }
- else
- {
- htmltext = "30060-02.html";
- }
- break;
- }
- case XABER:
- {
- if (st.hasQuestItems(STOLEN_EVENT_CLOTHES))
- {
- st.takeItems(STOLEN_EVENT_CLOTHES, -1);
- htmltext = "30075-01.html";
- if (st.isMemoState(2))
- {
- st.setMemoState(3);
- }
- else if (st.isMemoState(3))
- {
- st.setMemoState(4);
- }
- }
- else
- {
- htmltext = "30075-02.html";
- }
- break;
- }
- case SWAN:
- {
- switch (st.getMemoState())
- {
- case 1:
- {
- htmltext = "30957-01.html";
- break;
- }
- case 2:
- case 3:
- {
- if (hasAtLeastOneQuestItem(player, BEER_CHEST_KEY, CLOTHES_CHEST_KEY, STOLEN_BLACK_BEER, STOLEN_EVENT_CLOTHES))
- {
- htmltext = "30957-03.html";
- }
- else if (!st.hasQuestItems(BEER_CHEST_KEY, CLOTHES_CHEST_KEY, STOLEN_BLACK_BEER, STOLEN_EVENT_CLOTHES))
- {
- if (st.isMemoState(2))
- {
- st.playSound(QuestSound.ITEMSOUND_QUEST_GIVEUP);
- st.exitQuest(true, true);
- htmltext = "30957-06.html";
- }
- else
- {
- st.setMemoState(5);
- st.setCond(3, true);
- htmltext = "30957-04.html";
- }
- }
- break;
- }
- case 4:
- {
- if (!st.hasQuestItems(BEER_CHEST_KEY, CLOTHES_CHEST_KEY, STOLEN_BLACK_BEER, STOLEN_EVENT_CLOTHES))
- {
- st.setMemoState(5);
- st.setCond(3, true);
- st.giveAdena(100, true);
- htmltext = "30957-05.html";
- }
- break;
- }
- case 5:
- {
- htmltext = "30957-07.html";
- break;
- }
- }
- break;
- }
- }
- break;
- }
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30092-01.html b/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30092-01.html
deleted file mode 100644
index 921a2cd450..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30092-01.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Warehouse Keeper Collob:
-Are you collecting Pirate's Treasure Chests? Bring me one and I'll open it for you. All I ask is that you pay for making the key. It costs 600 adena.
-However, you should know that this chest carries a curse. You must be willing to risk receiving the curse.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30092-02.html b/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30092-02.html
deleted file mode 100644
index 166bd258d6..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30092-02.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Warehouse Keeper Collob:
-Hmm, you no longer have a chest. Please, go get one and come back.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30092-03.html b/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30092-03.html
deleted file mode 100644
index e5de027a07..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30092-03.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Warehouse Keeper Collob:
-You don't have the adena needed to pay for the key.
-The key that will open the chest costs 600 adena.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30092-04.html b/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30092-04.html
deleted file mode 100644
index 12881175b3..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30092-04.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Warehouse Keeper Collob:
-I'm afraid the curse is having an effect on me. Perhaps if I rest I'll feel better. I'm going to bed. Please come back later.
-Why don't you go to Devil's Isle and collect a few more Treasure Chests?
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30092-05.html b/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30092-05.html
deleted file mode 100644
index a1407eb792..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30092-05.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Warehouse Keeper Collob:
-The chest is open. Are you pleased with its contents?
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30092-06.html b/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30092-06.html
deleted file mode 100644
index 3c77786f8b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30092-06.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Warehouse Keeper Collob:
-The chest is open.
-Oh no!! The curse of the pirates! I can't move...!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30092-07.html b/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30092-07.html
deleted file mode 100644
index 12881175b3..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30092-07.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Warehouse Keeper Collob:
-I'm afraid the curse is having an effect on me. Perhaps if I rest I'll feel better. I'm going to bed. Please come back later.
-Why don't you go to Devil's Isle and collect a few more Treasure Chests?
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30095-01.htm b/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30095-01.htm
deleted file mode 100644
index 6f7b8f4cf5..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30095-01.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Warehouse Keeper Randolf:
-Have you heard of the notorious Pirate Captain Zaken? His dogged pursuit of treasure led him to a rocky island now called "Devil's Isle." His increasingly eccentric behavior caused him to lose the confidence of his crew, and they marooned him there.
-In despair, Zaken turned to the forces of darkness, who gave him the power to kill and imprison the souls of all of those who betrayed him. Even now, the souls of those damned warriors roam that barren place.
-I suppose you knew this already. But here is something you probably don't know... It is said that Zaken's treasure was stolen by his betrayers, and they still have it! So what do you think? Will you help me find the treasure?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30095-02.htm b/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30095-02.htm
deleted file mode 100644
index 523a0dbe06..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30095-02.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Warehouse Keeper Randolf:
-Good choice! We will both benefit from our arrangement...
-Go to Devil's Isle, slay the pirate zombies and their captains, collect their Treasure Chests and bring them to me. You shall be well rewarded.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30095-03.html b/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30095-03.html
deleted file mode 100644
index 2b3f84f3bf..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30095-03.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Warehouse Keeper Randolf:
-Have you heard of the notorious Pirate Captain Zaken? His dogged pursuit of treasure led him to a rocky island now called "Devil's Isle." His increasingly eccentric behavior caused him to lose the confidence of his crew, and they marooned him there.
-In despair, Zaken turned to the forces of darkness, who gave him the power to kill and imprison the souls of all of those who betrayed him. Even now, the souls of those damned warriors roam that barren place.
-There is more you should know, but you are not yet ready.
-(This quest may only be undertaken by a character of level 39 or above.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30095-04.html b/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30095-04.html
deleted file mode 100644
index f5778ab982..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30095-04.html
+++ /dev/null
@@ -1,7 +0,0 @@
-Warehouse Keeper Randolf:
-Good job! You shall have your reward.
-I hope you don't feel that you've been cheated. Not all the chests hold treasure, but the key required to open them is very expensive. Not to mention the magical scroll I must buy to protect against the horrible pirate curse that these chests sometimes impart. Truly, I take a terrible risk each time I open one. This is not a highly profitable business.
-You should be happy to get your reward regardless of whether or not the chests hold treasure. I hope we can continue to do business together. Don't be fooled by Collob. He will probably offer to open the chests for you. His lack of experience could lead to terrible consequences...
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30095-05.html b/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30095-05.html
deleted file mode 100644
index f2fd7eefc0..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30095-05.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Warehouse Keeper Randolf:
-Oh, well... Too bad. You won't be easily replaced. I won't try to talk you out of it, you must have your own reasons.
-Perhaps we can work together again in the future.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30095-06.html b/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30095-06.html
deleted file mode 100644
index cbd7958cb9..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30095-06.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Warehouse Keeper Randolf:
-Go to Devil's Isle, slay the pirate zombies and their captains, and bring back their Treasure Chests.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30095-07.html b/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30095-07.html
deleted file mode 100644
index 3a313145c3..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/30095-07.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Warehouse Keeper Randolf:
-Go to Devil's Isle, slay the pirate zombies and their captains, collect their Treasure Chests and bring them to me. You will be well rewarded.
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/Q00365_DevilsLegacy.java b/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/Q00365_DevilsLegacy.java
deleted file mode 100644
index e42d77e6e3..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00365_DevilsLegacy/Q00365_DevilsLegacy.java
+++ /dev/null
@@ -1,257 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00365_DevilsLegacy;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.holders.SkillHolder;
-import com.l2jserver.gameserver.model.itemcontainer.Inventory;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-
-/**
- * Devil's Legacy (365)
- * @author Adry_85
- */
-public final class Q00365_DevilsLegacy extends Quest
-{
- // NPCs
- private static final int COLLOB = 30092;
- private static final int RANDOLF = 30095;
- // Item
- private static final int PIRATES_TREASURE_CHEST = 5873;
- // Rewards
- private static final int ENCHANT_WEAPON_C = 951;
- private static final int ENCHANT_ARMOR_C = 952;
- private static final int ENCHANT_WEAPON_D = 955;
- private static final int ENCHANT_ARMOR_D = 956;
- private static final int THREAD = 1868;
- private static final int ANIMAL_BONE = 1872;
- private static final int COKES = 1879;
- private static final int STEEL = 1880;
- private static final int COARSE_BONE_POWDER = 1881;
- private static final int LEATHER = 1882;
- private static final int CORD = 1884;
- // Misc
- private static final int MIN_LEVEL = 39;
- // Skill
- private static SkillHolder POISON = new SkillHolder(4035, 2);
- // Mobs
- private static final Map MOBS = new HashMap<>();
- static
- {
- MOBS.put(20836, 0.47); // pirates_zombie
- MOBS.put(20845, 0.40); // pirates_zombie_captain
- MOBS.put(21629, 0.40); // pirates_zombie_captain_1
- MOBS.put(21630, 0.40); // pirates_zombie_captain_2
- }
-
- public Q00365_DevilsLegacy()
- {
- super(365, Q00365_DevilsLegacy.class.getSimpleName(), "Devil's Legacy");
- addStartNpc(RANDOLF);
- addTalkId(RANDOLF, COLLOB);
- addKillId(MOBS.keySet());
- registerQuestItems(PIRATES_TREASURE_CHEST);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState qs = getQuestState(player, false);
- String htmltext = null;
- if (qs == null)
- {
- return htmltext;
- }
-
- switch (event)
- {
- case "30095-02.htm":
- {
- qs.startQuest();
- qs.setMemoState(1);
- htmltext = event;
- break;
- }
- case "30095-05.html":
- {
- qs.exitQuest(true, true);
- htmltext = event;
- break;
- }
- case "30095-06.html":
- {
- htmltext = event;
- break;
- }
- case "REWARD":
- {
- if (!qs.isMemoState(1))
- {
- htmltext = "30092-04.html";
- }
- else if (!hasQuestItems(player, PIRATES_TREASURE_CHEST))
- {
- htmltext = "30092-02.html";
- }
- else if (player.getAdena() < 600)
- {
- htmltext = "30092-03.html";
- }
- else
- {
- final int itemId;
- final int chance;
- if (getRandom(100) < 80)
- {
- chance = getRandom(100);
- if (chance < 1)
- {
- itemId = ENCHANT_WEAPON_D;
- }
- else if (chance < 4)
- {
- itemId = ENCHANT_ARMOR_D;
- }
- else if (chance < 36)
- {
- itemId = THREAD;
- }
- else if (chance < 68)
- {
- itemId = CORD;
- }
- else
- {
- itemId = ANIMAL_BONE;
- }
- htmltext = "30092-05.html";
- }
- else
- {
- chance = getRandom(1000);
- if (chance < 10)
- {
- itemId = ENCHANT_WEAPON_C;
- }
- else if (chance < 40)
- {
- itemId = ENCHANT_ARMOR_C;
- }
- else if (chance < 60)
- {
- itemId = ENCHANT_WEAPON_D;
- }
- else if (chance < 260)
- {
- itemId = ENCHANT_ARMOR_D;
- }
- else if (chance < 445)
- {
- itemId = COKES;
- }
- else if (chance < 630)
- {
- itemId = STEEL;
- }
- else if (chance < 815)
- {
- itemId = LEATHER;
- }
- else
- {
- itemId = COARSE_BONE_POWDER;
- }
- npc.setTarget(player);
- npc.doCast(POISON.getSkill());
- npc.setCurrentMp(npc.getMaxMp());
- qs.setMemoState(2);
- htmltext = "30092-06.html";
- }
- takeItems(player, PIRATES_TREASURE_CHEST, 1);
- takeItems(player, Inventory.ADENA_ID, 600);
- rewardItems(player, itemId, 1);
- }
- break;
- }
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
- {
- final QuestState qs = getRandomPartyMemberState(player, -1, 3, npc);
- if (qs != null)
- {
- giveItemRandomly(qs.getPlayer(), npc, PIRATES_TREASURE_CHEST, 1, 0, MOBS.get(npc.getId()), true);
- }
- return super.onKill(npc, player, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- QuestState qs = getQuestState(player, true);
- String htmltext = getNoQuestMsg(player);
- if (qs == null)
- {
- return htmltext;
- }
-
- switch (npc.getId())
- {
- case RANDOLF:
- {
- if (qs.isCreated())
- {
- htmltext = ((player.getLevel() >= MIN_LEVEL) ? "30095-01.htm" : "30095-03.html");
- }
- else if (qs.isStarted())
- {
- if (hasQuestItems(player, PIRATES_TREASURE_CHEST))
- {
- final long chestCount = getQuestItemsCount(player, PIRATES_TREASURE_CHEST);
- giveAdena(player, (chestCount * 400) + 19800, true);
- takeItems(player, PIRATES_TREASURE_CHEST, -1);
- htmltext = "30095-04.html";
- }
- else
- {
- htmltext = "30095-07.html";
- }
- }
- break;
- }
- case COLLOB:
- {
- if (qs.isStarted())
- {
- htmltext = (qs.isMemoState(1) ? "30092-01.html" : "30092-07.html");
- }
- break;
- }
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-01.htm b/trunk/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-01.htm
deleted file mode 100644
index 082b6faf71..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-01.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Magister Dieter:
-Have you ever been to Devil's Isle? It is the home of the devil Zaken. Of course he is not alone. There are all manner of nasty beasts there with him.
-Deep in the interior of the island you will find living dolls with silvery hair that seems to be bathed in perpetual moonlight. Their hair intrigues me. I must get my hands on some of that magical stuff! The legendary power of just a few strands... Oh, well. Enough of my ramblings.
-Will you do it? Will you bring back some of their hair for me? You will be handsomely rewarded!
-
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-02.htm b/trunk/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-02.htm
deleted file mode 100644
index 7cc050069b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-02.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Magister Dieter:
-Great news. Now, please go to Devil's Isle and slay Sairon, Sairon's Doll and Sairon's Puppet. But don't forget to bring back Sairon's Silver Hair. You will be amply rewarded.
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-03.html b/trunk/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-03.html
deleted file mode 100644
index b40f534eb8..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-03.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Magister Dieter:
-Have you ever been to Devil's Isle? It is the home of the devil Zaken. Of course he is not alone. There are all manner of nasty beasts there with him.
-Deep in the interior of the island you will find living dolls with silvery hair that seems to be bathed in perpetual moonlight. Their hair intrigues me. I must get my hands on some of that magical stuff! But I am afraid you are not yet up to this task. Come back when you think you have become stronger.
-(This quest can only be undertaken by a character of level 48 or higher.)
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-04.html b/trunk/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-04.html
deleted file mode 100644
index 57a6001ea0..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-04.html
+++ /dev/null
@@ -1,7 +0,0 @@
-Magister Dieter:
-You have done well! At last, I can...
-Ah, yes, your pay. Please bring me some more hair! The more the better!
-Please don't tell anyone I'm collecting this stuff...
-
-
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-05.html b/trunk/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-05.html
deleted file mode 100644
index eb0789cfc6..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-05.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Magister Dieter:
-That's too bad. I was hoping to collect more hair. If you change your mind, please come back and see me.
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-06.html b/trunk/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-06.html
deleted file mode 100644
index d02133d51e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-06.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Magister Dieter:
-Go to Devil's Isle, slay Sairon, Sairon's doll and Sairon's puppet and bring back their hair.
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-07.html b/trunk/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-07.html
deleted file mode 100644
index d0f3a2b18a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/30111-07.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Magister Dieter:
-As I said, you must go to Devil's Isle, slay Sairon, Sairon's doll and Sairon's puppet and bring back Sairon's Silver Hair. You will be amply rewarded.
-
-
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/Q00366_SilverHairedShaman.java b/trunk/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/Q00366_SilverHairedShaman.java
deleted file mode 100644
index 8b6d3189bc..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00366_SilverHairedShaman/Q00366_SilverHairedShaman.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00366_SilverHairedShaman;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-
-/**
- * Silver Haired Shaman (366)
- * @author Adry_85, jurchiks
- */
-public final class Q00366_SilverHairedShaman extends Quest
-{
- // NPC
- private static final int DIETER = 30111;
- // Item
- private static final int SAIRONS_SILVER_HAIR = 5874;
- // Misc
- private static final int MIN_LEVEL = 48;
- // Mobs
- private static final Map MOBS = new HashMap<>();
- static
- {
- MOBS.put(20986, 80); // saitnn
- MOBS.put(20987, 73); // saitnn_doll
- MOBS.put(20988, 80); // saitnn_puppet
- }
-
- public Q00366_SilverHairedShaman()
- {
- super(366, Q00366_SilverHairedShaman.class.getSimpleName(), "Silver Haired Shaman");
- addStartNpc(DIETER);
- addTalkId(DIETER);
- addKillId(MOBS.keySet());
- registerQuestItems(SAIRONS_SILVER_HAIR);
- }
-
- @Override
- public boolean checkPartyMember(L2PcInstance member, L2Npc npc)
- {
- final QuestState qs = getQuestState(member, false);
- return ((qs != null) && qs.isStarted());
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return null;
- }
-
- String htmltext = null;
- switch (event)
- {
- case "30111-02.htm":
- {
- st.startQuest();
- htmltext = event;
- break;
- }
- case "30111-05.html":
- {
- st.exitQuest(true, true);
- htmltext = event;
- break;
- }
- case "30111-06.html":
- {
- htmltext = event;
- break;
- }
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
- {
- if (getRandom(100) < MOBS.get(npc.getId()))
- {
- L2PcInstance luckyPlayer = getRandomPartyMember(player, npc);
- if (luckyPlayer != null)
- {
- giveItemRandomly(luckyPlayer, npc, SAIRONS_SILVER_HAIR, 1, 0, 1.0, true);
- }
- }
- return super.onKill(npc, player, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, true);
- String htmltext = getNoQuestMsg(player);
- if (st.isCreated())
- {
- htmltext = (player.getLevel() >= MIN_LEVEL) ? "30111-01.htm" : "30111-03.html";
- }
- else if (st.isStarted())
- {
- if (hasQuestItems(player, SAIRONS_SILVER_HAIR))
- {
- final long itemCount = getQuestItemsCount(player, SAIRONS_SILVER_HAIR);
- giveAdena(player, (itemCount * 500) + 29000, true);
- takeItems(player, SAIRONS_SILVER_HAIR, -1);
- htmltext = "30111-04.html";
- }
- else
- {
- htmltext = "30111-07.html";
- }
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-01.htm b/trunk/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-01.htm
deleted file mode 100644
index 9141d1ee77..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-01.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Researcher Lorain:
-By any chance are you headed to the Cruma Tower? I need some help with something. I believe I've discovered the secret source of energy used by the ancient Titans, but I must conduct several more experiments to confirm my findings.
-
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-02.htm b/trunk/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-02.htm
deleted file mode 100644
index 2bb1ce0881..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-02.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Researcher Lorain:
-The last time I ventured into the deepest part of the dungeon I encountered a monster they call the catherok. His attack caused my body to start tingling all over, followed by complete paralysis! Luckily, my colleagues saved me from certain death! When I gathered my wits, I noticed that an ancient relic had been activated. It gave off an amazing light... At that moment, it came to me! The sting of the catherok contained a power source that actually activated ancient relics!
-Take this relic and entice a catherok to attack. It will become activated. When it reaches its brightest, bring it back to me. Heed my words, you must never confront the catherok alone.
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-03.html b/trunk/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-03.html
deleted file mode 100644
index 8b64c79161..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-03.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Researcher Lorain:
-I can't bring myself to sacrifice your life for the sake of my research. Come back when you're older.
-(This quest may only be undertaken by a character of level 37 or above.)
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-04.html b/trunk/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-04.html
deleted file mode 100644
index 39cb16844f..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-04.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Researcher Lorain:
-This relic could use a little more exposure to the catherok. It is not yet useful for my research. Please do it again.
-
-
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-05.html b/trunk/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-05.html
deleted file mode 100644
index e563f23b31..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-05.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Researcher Lorain:
-Keep up the good work.
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-06.html b/trunk/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-06.html
deleted file mode 100644
index f509ad7fa1..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-06.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Researcher Lorain:
-What a bummer! I thought you were an adventurer!
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-07.html b/trunk/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-07.html
deleted file mode 100644
index bdb21ee10b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-07.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Researcher Lorain:
-Dammit! You've destroyed the relic!
-If you can't handle a simple task like this, how do you expect to ever be a great adventurer? You have one more chance. Don't screw it up!
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-08.html b/trunk/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-08.html
deleted file mode 100644
index dbf6997c92..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-08.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Researcher Lorain:
-You've done it! Did you feel that amazing sensation? Don't look at me like that... You know you love it!
-
-
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-09.html b/trunk/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-09.html
deleted file mode 100644
index 206b71febc..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/30673-09.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Researcher Lorain:
-I knew you couldn't refuse! I'll never forget the first time I felt that sensation... It's addictive, isn't it?
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/Q00367_ElectrifyingRecharge.java b/trunk/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/Q00367_ElectrifyingRecharge.java
deleted file mode 100644
index 23967af036..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/Q00367_ElectrifyingRecharge.java
+++ /dev/null
@@ -1,265 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00367_ElectrifyingRecharge;
-
-import com.l2jserver.gameserver.enums.QuestSound;
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.holders.SkillHolder;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.skills.Skill;
-
-/**
- * Electrifying Recharge! (367)
- * @author Adry_85, jurchiks
- */
-public final class Q00367_ElectrifyingRecharge extends Quest
-{
- // NPC
- private static final int LORAIN = 30673;
- // Monster
- private static final int CATHEROK = 21035;
- // Items
- private static final int TITAN_LAMP1 = 5875;
- private static final int TITAN_LAMP2 = 5876;
- private static final int TITAN_LAMP3 = 5877;
- private static final int TITAN_LAMP4 = 5878;
- private static final int TITAN_LAMP5 = 5879;
- private static final int BROKEN_TITAN_LAMP = 5880;
- // Misc
- private static final int MIN_LEVEL = 37;
- // Skill
- private static final Skill NPC_THUNDER_STORM = new SkillHolder(4072, 4).getSkill();
-
- public Q00367_ElectrifyingRecharge()
- {
- super(367, Q00367_ElectrifyingRecharge.class.getSimpleName(), "Electrifying Recharge!");
- addStartNpc(LORAIN);
- addTalkId(LORAIN);
- addAttackId(CATHEROK);
- registerQuestItems(TITAN_LAMP1, TITAN_LAMP2, TITAN_LAMP3, TITAN_LAMP4, TITAN_LAMP5, BROKEN_TITAN_LAMP);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return null;
- }
-
- String htmltext = null;
- switch (event)
- {
- case "30673-02.htm":
- {
- st.startQuest();
- giveItems(player, TITAN_LAMP1, 1);
- htmltext = event;
- break;
- }
- case "30673-05.html":
- {
- htmltext = event;
- break;
- }
- case "30673-06.html":
- {
- st.exitQuest(true, true);
- htmltext = event;
- break;
- }
- }
- return htmltext;
- }
-
- @Override
- public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon)
- {
- if (npc.isScriptValue(367))
- {
- return super.onAttack(npc, attacker, damage, isSummon);
- }
-
- QuestState qs = getQuestState(attacker, false);
- if ((qs == null) || !qs.isStarted())
- {
- return super.onAttack(npc, attacker, damage, isSummon);
- }
-
- npc.setScriptValue(367);
-
- if ((NPC_THUNDER_STORM != null) //
- && (NPC_THUNDER_STORM.getMpConsume() < npc.getCurrentMp()) // has enough MP
- && (NPC_THUNDER_STORM.getHpConsume() < npc.getCurrentHp()) // has enough HP
- && (npc.getSkillRemainingReuseTime(NPC_THUNDER_STORM.getReuseHashCode()) <= 0)) // no reuse delay
- {
- npc.doCast(NPC_THUNDER_STORM, attacker, null);
- }
-
- final L2PcInstance luckyPlayer = getRandomPartyMember(attacker, npc);
- if (luckyPlayer == null)
- {
- return super.onAttack(npc, attacker, damage, isSummon);
- }
- qs = getQuestState(luckyPlayer, false);
-
- if ((qs != null) && qs.isStarted() && !hasQuestItems(luckyPlayer, TITAN_LAMP5))
- {
- final int random = getRandom(37);
- if (random == 0)
- {
- if (hasQuestItems(luckyPlayer, TITAN_LAMP1))
- {
- giveItems(luckyPlayer, TITAN_LAMP2, 1);
- takeItems(luckyPlayer, TITAN_LAMP1, -1);
- playSound(luckyPlayer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
- }
- else if (hasQuestItems(luckyPlayer, TITAN_LAMP2))
- {
- giveItems(luckyPlayer, TITAN_LAMP3, 1);
- takeItems(luckyPlayer, TITAN_LAMP2, -1);
- playSound(luckyPlayer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
- }
- else if (hasQuestItems(luckyPlayer, TITAN_LAMP3))
- {
- giveItems(luckyPlayer, TITAN_LAMP4, 1);
- takeItems(luckyPlayer, TITAN_LAMP3, -1);
- playSound(luckyPlayer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
- }
- else if (hasQuestItems(luckyPlayer, TITAN_LAMP4))
- {
- giveItems(luckyPlayer, TITAN_LAMP5, 1);
- takeItems(luckyPlayer, TITAN_LAMP4, -1);
- luckyPlayer.getQuestState(getName()).setCond(2, true);
- }
- }
- else if ((random == 1) && !hasQuestItems(luckyPlayer, BROKEN_TITAN_LAMP))
- {
- giveItems(luckyPlayer, BROKEN_TITAN_LAMP, 1);
- takeItems(luckyPlayer, -1, TITAN_LAMP1, TITAN_LAMP2, TITAN_LAMP3, TITAN_LAMP4);
- playSound(luckyPlayer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
- }
- }
- return super.onAttack(npc, attacker, damage, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, true);
- String htmltext = getNoQuestMsg(player);
- if (st.isCreated())
- {
- htmltext = (player.getLevel() >= MIN_LEVEL) ? "30673-01.htm" : "30673-03.html";
- }
- else if (st.isStarted())
- {
- if (!hasAtLeastOneQuestItem(player, TITAN_LAMP5, BROKEN_TITAN_LAMP))
- {
- htmltext = "30673-04.html";
- }
- else if (hasQuestItems(player, BROKEN_TITAN_LAMP))
- {
- giveItems(player, TITAN_LAMP1, 1);
- takeItems(player, BROKEN_TITAN_LAMP, -1);
- htmltext = "30673-07.html";
- }
- else if (hasQuestItems(player, TITAN_LAMP5))
- {
- final int itemId;
- switch (getRandom(14))
- {
- case 0:
- {
- itemId = 4553; // Greater Dye of STR
- break;
- }
- case 1:
- {
- itemId = 4554; // Greater Dye of STR
- break;
- }
- case 2:
- {
- itemId = 4555; // Greater Dye of CON
- break;
- }
- case 3:
- {
- itemId = 4556; // Greater Dye of CON
- break;
- }
- case 4:
- {
- itemId = 4557; // Greater Dye of DEX
- break;
- }
- case 5:
- {
- itemId = 4558; // Greater Dye of DEX
- break;
- }
- case 6:
- {
- itemId = 4559; // Greater Dye of INT
- break;
- }
- case 7:
- {
- itemId = 4560; // Greater Dye of INT
- break;
- }
- case 8:
- {
- itemId = 4561; // Greater Dye of MEN
- break;
- }
- case 9:
- {
- itemId = 4562; // Greater Dye of MEN
- break;
- }
- case 10:
- {
- itemId = 4563; // Greater Dye of WIT
- break;
- }
- case 11:
- {
- itemId = 4564; // Greater Dye of WIT
- break;
- }
- default:
- {
- itemId = 4445; // Dye of STR
- break;
- }
- }
- rewardItems(player, itemId, 1);
- takeItems(player, TITAN_LAMP5, -1);
- giveItems(player, TITAN_LAMP1, 1);
- htmltext = "30673-08.html";
- }
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00368_TrespassingIntoTheHolyGround/30926-01.htm b/trunk/dist/game/data/scripts/quests/Q00368_TrespassingIntoTheHolyGround/30926-01.htm
deleted file mode 100644
index ecde8346e8..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00368_TrespassingIntoTheHolyGround/30926-01.htm
+++ /dev/null
@@ -1,7 +0,0 @@
-Priestess Restina:
-Have you heard of the Garden of Eva? You may occasionally find the goddess herself resting there.
-She doesn't like to be disturbed, so her garden is in the deepest part of the sea, with entry gained only through an elaborate labyrinth.
-Recently, some who wish to harm her have invaded her sanctuary. She's not there at the moment, and we, her priests and guards, are trying our best to drive out the invaders. However, this task is proving more than we can handle.
-We're enlisting the help of outsiders to defeat them. Will you help us?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00368_TrespassingIntoTheHolyGround/30926-02.htm b/trunk/dist/game/data/scripts/quests/Q00368_TrespassingIntoTheHolyGround/30926-02.htm
deleted file mode 100644
index 64edf64ddb..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00368_TrespassingIntoTheHolyGround/30926-02.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Priestess Restina:
-Thank you. You should know that it is forbidden for outsiders to enter the Garden of Eva. We are breaking the rules, but these are desperate times.
-Go to the Garden of Eva and slay the blade stakato, the blade stakato worker, the blade stakato warrior and the blade stakato drone. As proof of your victory, bring back their fangs. You'll be well rewarded for your efforts.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00368_TrespassingIntoTheHolyGround/30926-03.html b/trunk/dist/game/data/scripts/quests/Q00368_TrespassingIntoTheHolyGround/30926-03.html
deleted file mode 100644
index 4cfa43af88..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00368_TrespassingIntoTheHolyGround/30926-03.html
+++ /dev/null
@@ -1,7 +0,0 @@
-Priestess Restina:
-Have you heard of the Garden of Eva? You may occasionally find the goddess herself resting there.
-She doesn't like to be disturbed, so her garden is in the deepest part of the sea, with entry gained only through an elaborate labyrinth.
-Recently, some who wish to harm her have invaded her sanctuary. She's not there at the moment, and we, her priests and guards, are trying our best to drive out the invaders. However, this task is proving more than we can handle.
-We need help desperately, but I'm afraid you're not yet up to the task.
-(This quest may only be undertaken by a character of level 36 or above.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00368_TrespassingIntoTheHolyGround/30926-04.html b/trunk/dist/game/data/scripts/quests/Q00368_TrespassingIntoTheHolyGround/30926-04.html
deleted file mode 100644
index bed775a022..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00368_TrespassingIntoTheHolyGround/30926-04.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Priestess Restina:
-Thank you for helping us. As promised, you shall receive a reward commensurate with your performance.
-Your brave efforts have spelled the doom of all who have invaded the Garden of Eva! Will you stay and help us finish them off?
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00368_TrespassingIntoTheHolyGround/30926-05.html b/trunk/dist/game/data/scripts/quests/Q00368_TrespassingIntoTheHolyGround/30926-05.html
deleted file mode 100644
index 0dc882c410..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00368_TrespassingIntoTheHolyGround/30926-05.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Priestess Restina:
-I'm sorry to hear that. I'm sure you have your own reasons. Thank you for your help. May the blessing of Eva be with you always...
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00368_TrespassingIntoTheHolyGround/30926-06.html b/trunk/dist/game/data/scripts/quests/Q00368_TrespassingIntoTheHolyGround/30926-06.html
deleted file mode 100644
index 68190d5cb8..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00368_TrespassingIntoTheHolyGround/30926-06.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Priestess Restina:
-I knew I could count on you!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00368_TrespassingIntoTheHolyGround/30926-07.html b/trunk/dist/game/data/scripts/quests/Q00368_TrespassingIntoTheHolyGround/30926-07.html
deleted file mode 100644
index 4d74b5a085..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00368_TrespassingIntoTheHolyGround/30926-07.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Priestess Restina:
-As I said, go to the Garden of Eva and slay the blade stakato, the blade stakato worker, the blade stakato warrior and the blade stakato drone. As proof of your victory bring back their fangs. You'll be well rewarded for your efforts.
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00368_TrespassingIntoTheHolyGround/Q00368_TrespassingIntoTheHolyGround.java b/trunk/dist/game/data/scripts/quests/Q00368_TrespassingIntoTheHolyGround/Q00368_TrespassingIntoTheHolyGround.java
deleted file mode 100644
index 486d734650..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00368_TrespassingIntoTheHolyGround/Q00368_TrespassingIntoTheHolyGround.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00368_TrespassingIntoTheHolyGround;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-
-/**
- * Trespassing into the Holy Ground (368)
- * @author Adry_85
- */
-public final class Q00368_TrespassingIntoTheHolyGround extends Quest
-{
- // NPC
- private static final int RESTINA = 30926;
- // Item
- private static final int BLADE_STAKATO_FANG = 5881;
- // Misc
- private static final int MIN_LEVEL = 36;
- // Mobs
- private static final Map MOBS = new HashMap<>();
- static
- {
- MOBS.put(20794, 0.60); // blade_stakato
- MOBS.put(20795, 0.57); // blade_stakato_worker
- MOBS.put(20796, 0.61); // blade_stakato_soldier
- MOBS.put(20797, 0.93); // blade_stakato_drone
- }
-
- public Q00368_TrespassingIntoTheHolyGround()
- {
- super(368, Q00368_TrespassingIntoTheHolyGround.class.getSimpleName(), "Trespassing into the Holy Ground");
- addStartNpc(RESTINA);
- addTalkId(RESTINA);
- addKillId(MOBS.keySet());
- registerQuestItems(BLADE_STAKATO_FANG);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return null;
- }
-
- String htmltext = null;
- switch (event)
- {
- case "30926-02.htm":
- {
- st.startQuest();
- htmltext = event;
- break;
- }
- case "30926-05.html":
- {
- st.exitQuest(true, true);
- htmltext = event;
- break;
- }
- case "30926-06.html":
- {
- htmltext = event;
- break;
- }
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
- {
- final int i;
- switch (npc.getId())
- {
- case 20795:
- case 20797:
- {
- i = 1;
- break;
- }
- default:
- {
- i = 3;
- break;
- }
- }
-
- final QuestState st = getRandomPartyMemberState(player, -1, i, npc);
- if (st != null)
- {
- st.giveItemRandomly(npc, BLADE_STAKATO_FANG, 1, 0, MOBS.get(npc.getId()), true);
- }
- return super.onKill(npc, player, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, true);
- String htmltext = getNoQuestMsg(player);
- if (st == null)
- {
- return htmltext;
- }
-
- if (st.isCreated())
- {
- htmltext = ((player.getLevel() >= MIN_LEVEL) ? "30926-01.htm" : "30926-03.html");
- }
- else if (st.isStarted())
- {
- if (hasQuestItems(player, BLADE_STAKATO_FANG))
- {
- final long count = getQuestItemsCount(player, BLADE_STAKATO_FANG);
- final long bonus = (count >= 10 ? 9450 : 2000);
- giveAdena(player, (count * 250) + bonus, true);
- takeItems(player, BLADE_STAKATO_FANG, -1);
- htmltext = "30926-04.html";
- }
- else
- {
- htmltext = "30926-07.html";
- }
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-01.htm b/trunk/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-01.htm
deleted file mode 100644
index a8a753decf..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-01.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Magister Nell:
-Do you wish to hear my story? Sometime ago, I met a Elder. He told me that the Forgotten Temple is related to the Ruins on Talking Island.
-More than anything else, this glittering Flare Shard and Freezing Shard are the proof! They are fragments of elemental stone found in the Ruins of Talking Island and the Forgotten Temple! Before they were broken, these two elemental stones must have had mutual resonance.
-Would you help me? Please go to the temple and bring me more of these gemstones.
-
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-02.htm b/trunk/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-02.htm
deleted file mode 100644
index 2395e297b8..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-02.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Magister Nell:
-This won't be easy. The spirits that live in the Forgotten Temple are very strong. You will need help. You can get
-Flare Shards from lakin salamanders, salamander rowins and death fires. Freezing Shards can be obtained from the lakin undine, the rowin undine and the roxide. Please bring me 50 of each type.
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-03.html b/trunk/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-03.html
deleted file mode 100644
index 91aee5fc56..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-03.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Magister Nell:
-Do you wish to hear my story? Once I met a Elder. He convinced me that the Forgotten Temple is related to the Ruins on Talking Island.
-This glittering Flare Shard and Freezing Shard are proof! They are fragments from the Ruins of Talking Island and the Forgotten Temple! Before they were broken, these two elemental stones had mutual resonance. I'm sure of it! I'm desperate to get my hands on more of these fragments... If you know anyone strong enough to enter the Forgotten Temple and bring me some of these stones, please ask them to come and see me at once!
-(This quest may only be undertaken by a character of level 25 or above.)
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-04.html b/trunk/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-04.html
deleted file mode 100644
index 0a3987ec64..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-04.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Magister Nell:
-Ah, you have done as I asked. I feel the strong pull of their magic power. Here is your reward. Would you be interested in working with me some more? I still need many more of them... I'll pay you generously for your work...
-
-
-
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-05.html b/trunk/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-05.html
deleted file mode 100644
index 434eacdac5..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-05.html
+++ /dev/null
@@ -1,8 +0,0 @@
-Magister Nell:
-Well, if I only needed them for my research, these would be enough. But a Elder taught me all about these gemstones.
-He said that he needed them, and asked me to collect the fragments for him. At that time the trader Katerina of Talking Island was there. She is also collecting gemstones.
-When she gives the gemstones to the Elder, I also want to give at least the same quantity to him. You see, I am a magister... I can't be outdone by a trader like Katerina. Do you understand?
-Please do this for me. Collect more gemstones so that I can give them to the Elder.
-
-
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-06.html b/trunk/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-06.html
deleted file mode 100644
index 088a13fd5d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-06.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Magister Nell:
-Thank you! Go to the Forgotten Temple with your colleagues. Slay the roxide, the lakin undine, and the rowin undine to obtain Freezing Shards. Slay the death fire, the lakin salamander, and the salamander rowin to obtain Flare Shards. I'd like to give you at least 5 restored Spirit Ores, so please bring me 200 fragments of each kind. You will be well rewarded.
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-07.html b/trunk/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-07.html
deleted file mode 100644
index 9673af2e50..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-07.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Magister Nell:
-Oh, too bad. Very well. I'll get someone else to help me. I appreciate your help up to now. I will take care of the remaining shards. Leave them here. If you change your mind, please come back and see me. Okay?
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-08.html b/trunk/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-08.html
deleted file mode 100644
index f127610a02..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-08.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Magister Nell:
-Ah, the shiny black hair... eyes that sparkle like gemstones... If I could only hear the voice once more... Why are you still here? Please hurry and collect 50 Flare Shards and 50 Freezing Shards for my research. You can find them by slaying salamanders, undines, death fires and roxides in the Forgotten Temple.
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-09.html b/trunk/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-09.html
deleted file mode 100644
index d20f3071ed..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-09.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Magister Nell:
-Thank you for your help. Would you be interested in working some more? I still need many more of these... I'll give you a very generous reward!
-
-
-
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-10.html b/trunk/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-10.html
deleted file mode 100644
index 676dc8efe0..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-10.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Magister Nell:
-Amazing! You've brought them! They must have been very heavy! Please put them down here. Be very, very careful!
-Thank you for your hard work. Here is your reward. These fragments are kind of small. Now, I can meet Les with confidence. He contacted me some time ago...
-Anyway, thank you for your help. If possible, please come and help me again sometime, and bring some friends to help you! Take care!
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-11.html b/trunk/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-11.html
deleted file mode 100644
index 9118def50b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/30376-11.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Magister Nell:
-Ah, what a profile! Like a classic statue... And that voice! Like an arrow piercing my heart...Where is he now? I wonder what he's doing?
-I must give him some Spirit Ore! Please, bring me 200 Flare Shards and 200 Freezing Shards!
-You can get them from salamanders, undines, death fires and roxides, deep within the Forgotten Temple! Please, hurry! Time is short!
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/Q00369_CollectorOfJewels.java b/trunk/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/Q00369_CollectorOfJewels.java
deleted file mode 100644
index df4fdcbf4c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00369_CollectorOfJewels/Q00369_CollectorOfJewels.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00369_CollectorOfJewels;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.holders.QuestItemHolder;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-
-/**
- * Collector of Jewels (369)
- * @author Adry_85
- */
-public final class Q00369_CollectorOfJewels extends Quest
-{
- // NPC
- private static final int NELL = 30376;
- // Items
- private static final int FLARE_SHARD = 5882;
- private static final int FREEZING_SHARD = 5883;
- // Misc
- private static final int MIN_LEVEL = 25;
- // Mobs
- private static final Map MOBS_DROP_CHANCES = new HashMap<>();
- static
- {
- MOBS_DROP_CHANCES.put(20609, new QuestItemHolder(FLARE_SHARD, 75, 1)); // salamander_lakin
- MOBS_DROP_CHANCES.put(20612, new QuestItemHolder(FLARE_SHARD, 91, 1)); // salamander_rowin
- MOBS_DROP_CHANCES.put(20749, new QuestItemHolder(FLARE_SHARD, 100, 2)); // death_fire
- MOBS_DROP_CHANCES.put(20616, new QuestItemHolder(FREEZING_SHARD, 81, 1)); // undine_lakin
- MOBS_DROP_CHANCES.put(20619, new QuestItemHolder(FREEZING_SHARD, 87, 1)); // undine_rowin
- MOBS_DROP_CHANCES.put(20747, new QuestItemHolder(FREEZING_SHARD, 100, 2)); // roxide
- }
-
- public Q00369_CollectorOfJewels()
- {
- super(369, Q00369_CollectorOfJewels.class.getSimpleName(), "Collector of Jewels");
- addStartNpc(NELL);
- addTalkId(NELL);
- addKillId(MOBS_DROP_CHANCES.keySet());
- registerQuestItems(FLARE_SHARD, FREEZING_SHARD);
- }
-
- @Override
- public boolean checkPartyMember(L2PcInstance member, L2Npc npc)
- {
- final QuestState st = getQuestState(member, false);
- return ((st != null) && (st.isMemoState(1) || st.isMemoState(3)));
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return null;
- }
-
- String htmltext = null;
- switch (event)
- {
- case "30376-02.htm":
- {
- st.startQuest();
- st.setMemoState(1);
- htmltext = event;
- break;
- }
- case "30376-05.html":
- {
- htmltext = event;
- break;
- }
- case "30376-06.html":
- {
- if (st.isMemoState(2))
- {
- st.setMemoState(3);
- st.setCond(3, true);
- htmltext = event;
- }
- break;
- }
- case "30376-07.html":
- {
- st.exitQuest(true, true);
- htmltext = event;
- break;
- }
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
- {
- final QuestItemHolder item = MOBS_DROP_CHANCES.get(npc.getId());
- if (getRandom(100) < item.getChance())
- {
- L2PcInstance luckyPlayer = getRandomPartyMember(player, npc);
- if (luckyPlayer != null)
- {
- final QuestState st = getQuestState(luckyPlayer, false);
- final int itemCount = (st.isMemoState(1) ? 50 : 200);
- final int cond = (st.isMemoState(1) ? 2 : 4);
- if (giveItemRandomly(luckyPlayer, npc, item.getId(), item.getCount(), itemCount, 1.0, true) //
- && (getQuestItemsCount(luckyPlayer, FLARE_SHARD, FREEZING_SHARD) >= (itemCount * 2)))
- {
- st.setCond(cond);
- }
- }
- }
- return super.onKill(npc, player, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, true);
- String htmltext = getNoQuestMsg(player);
- if (st.isCreated())
- {
- htmltext = (player.getLevel() >= MIN_LEVEL) ? "30376-01.htm" : "30376-03.html";
- }
- else if (st.isStarted())
- {
- switch (st.getMemoState())
- {
- case 1:
- {
- if (getQuestItemsCount(player, FLARE_SHARD, FREEZING_SHARD) >= 100)
- {
- giveAdena(player, 31810, true);
- takeItems(player, -1, FLARE_SHARD, FREEZING_SHARD);
- st.setMemoState(2);
- htmltext = "30376-04.html";
- }
- else
- {
- htmltext = "30376-08.html";
- }
- break;
- }
- case 2:
- {
- htmltext = "30376-09.html";
- break;
- }
- case 3:
- {
- if (getQuestItemsCount(player, FLARE_SHARD, FREEZING_SHARD) >= 400)
- {
- giveAdena(player, 84415, true);
- takeItems(player, -1, FLARE_SHARD, FREEZING_SHARD);
- st.exitQuest(true, true);
- htmltext = "30376-10.html";
- }
- else
- {
- htmltext = "30376-11.html";
- }
- break;
- }
- }
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-01.htm b/trunk/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-01.htm
deleted file mode 100644
index 8895e06a41..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-01.htm
+++ /dev/null
@@ -1,7 +0,0 @@
-Elder Casian:
-Did you know that at one time this barren wasteland was one of the most fertile places in Aden? For centuries farmers sowed their seeds and harvested abundant crops here. Ah, yes, those were the days...
-But then that devil Beleth and his minions arrived. We had to come up with a resolution quickly. We were compelled to at last open the forbidden spellbook...
-For two days and nights fire rained down on us and dark magic swept the land like a whirlwind... It wasn't at all what we'd anticipated...
-I couldn't bear to stay in this ruined place, so I wandered the world for many years. But now I find myself drawn back, hoping to somehow restore this land to its former beauty. I shan't be able to do this alone...
-
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-02.htm b/trunk/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-02.htm
deleted file mode 100644
index d7fba80fc0..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-02.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Elder Casian:
-The magic we unwittingly unleashed came from "Kranvel's Spellbook", one of the forbidden tomes of the Ivory Tower. Its fearsome power sucked the magic from all living organisms in the area, and then unleashed it all back upon us with a vengeance!
-Poor Spellsinger Diena saw the whole thing and fell into a deep state of shock. As she shed blood and tears, she destroyed the book and scattered it to the wind... She was determined that no one should ever use such evil magic again... We couldn't stop her! We all felt as if we were in a terrible nightmare, and just stared blankly at her...
-But now we know that that spellbook is the key to the restoration of this place. Please find the pieces of the book that were scattered to the wind.
-
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-03.htm b/trunk/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-03.htm
deleted file mode 100644
index 1997598414..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-03.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Elder Casian:
-Ironically, the deformed beasts around us hold the clues to finding the legacy of Kranvel. Giant ants are known to pick up anything they find and take it to their nests. It is said that they have collected a great number of ancient relics and taken them to their nest in the maze-like caves beneath the wasteland.
-You will most likely find the pieces of "Kranvel's Spellbook" in the Ant Nest. You mustn't attempt this alone! Take some reliable colleagues along with you.
-
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-04.htm b/trunk/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-04.htm
deleted file mode 100644
index f0199f5ec5..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-04.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Elder Casian:
-In order to obtain the pieces of the spellbook, you must conquer the ant recruits, ant patrols, ant guards, the noble ant and the noble ant leader.
-Check carefully any scraps of paper you come across. The pieces of "Kranvel's Spellbook" should be easy to identify.
-The spellbook has four chapters: the Chapter of Fire, the Chapter of Water, the Chapter of Wind and the Chapter of Earth. The contents will only be discernible if you recover all four chapters.
-This is a challenging task, but I think you are ready for it. May the divine blessing be with you...
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-05.html b/trunk/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-05.html
deleted file mode 100644
index b8f6723d1c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-05.html
+++ /dev/null
@@ -1,8 +0,0 @@
-Elder Casian:
-Did you know that at one time this barren wasteland was one of the most fertile places in Aden? For centuries, farmers sowed their seeds and harvested their abundant crops here. Ah, yes, those were the days...
-But then that devil Beleth and his minions arrived. We had to act quickly. We were compelled to at last open the forbidden spellbook...
-For two days and nights fire rained down on us and dark magic swept over the land like a whirlwind... It wasn't at all what we'd anticipated...
-When it was over, this is all that was left... A dusty wasteland inhabited by weird-looking freaks...
-Some day, hopefully, we shall find a way to change this place back into the verdant farmland it once was... I hope we can count on you when that time comes.
-(This quest may only be undertaken by a character of level 28 or above.)
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-06.html b/trunk/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-06.html
deleted file mode 100644
index 01b1c8699f..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-06.html
+++ /dev/null
@@ -1,8 +0,0 @@
-Elder Casian:
-The wind is unusually scorching today... Do you feel it? The angry cries of the souls of those who perished here seem carried on the blistering breeze across the Wasteland...
-Forgive me. This place has that effect on me. By the way, how are things at the Ant Nest?
-
-
-
-
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-07.html b/trunk/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-07.html
deleted file mode 100644
index 88b7bc4d7a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-07.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Elder Casian:
-How could you forget? You must slay ant recruits, ant patrols, ant guards, noble ants, and the noble ant leader in order to obtain the pieces of the spellbook.
-Examine any scraps of paper you come across carefully. The pieces of "Kranvel's Spellbook" should be instantly recognizable.
-You must find all four chapters: the Chapter of Fire, the Chapter of Water, the Chapter of Wind and the Chapter of Earth.
-
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-08.html b/trunk/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-08.html
deleted file mode 100644
index 4db0bf5a57..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-08.html
+++ /dev/null
@@ -1,7 +0,0 @@
-Elder Casian:
-Let's see, the Chapter of Fire, the Chapter of Water, the Chapter of Wind, and the Chapter of Earth... you have brought them all! Perhaps your discovery will lead to a way to restore this ruined place. At last I shall be redeemed... This is all thanks to you. Please accept this humble token of my appreciation.
-But this sad chapter is not yet complete... The dark magic that caused this disaster had many sources, united in their power and holding copies of "Kranvel's Spellbook"!
-Alas, it's true! There remain many pieces of that horrid tome scattered about the inside of the Ant Nest. If I am to continue my research, and above all to keep this dreadful power from falling into the wrong hands, the remaining fragments of "Kranvel's Spellbook" must be recovered! Please help!
-
-
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-09.html b/trunk/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-09.html
deleted file mode 100644
index 49c755fa7a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-09.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Elder Casian:
-Thank you for helping us. Hopefully someday our efforts will pay off, and restore this wasteland to its former beauty. Bless you, my child...
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-10.html b/trunk/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-10.html
deleted file mode 100644
index 533df7b4a6..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-10.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Elder Casian:
-I understand. Your assistance has given me the opportunity to redeem myself. I don't know exactly where my research will lead, but hopefully to a better world...
-We all must do what we think is best. Only time will tell whether our choices are good ones...
-Thank you so very much for your help. May you be blessed by the gods...
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-11.html b/trunk/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-11.html
deleted file mode 100644
index 4ce71a9270..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/30612-11.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Elder Casian:
-How could you have forgotten so quickly?
-"Kranvel's Spellbook" consists of four chapters: the Chapter of Fire, the Chapter of Water, the Chapter of Wind and the Chapter of Earth. The contents will not be discernible unless you find all four chapters. Please, you must help us! We're counting on you!
-
diff --git a/trunk/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/Q00370_AnElderSowsSeeds.java b/trunk/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/Q00370_AnElderSowsSeeds.java
deleted file mode 100644
index eb17f18d4e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00370_AnElderSowsSeeds/Q00370_AnElderSowsSeeds.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00370_AnElderSowsSeeds;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.util.Util;
-
-/**
- * An Elder Sows Seeds (370)
- * @author Adry_85
- */
-public final class Q00370_AnElderSowsSeeds extends Quest
-{
- // NPC
- private static final int CASIAN = 30612;
- // Items
- private static final int SPELLBOOK_PAGE = 5916;
- private static final int CHAPTER_OF_FIRE = 5917;
- private static final int CHAPTER_OF_WATER = 5918;
- private static final int CHAPTER_OF_WIND = 5919;
- private static final int CHAPTER_OF_EARTH = 5920;
- // Misc
- private static final int MIN_LEVEL = 28;
- // Mobs
- private static final Map MOBS1 = new HashMap<>();
- private static final Map MOBS2 = new HashMap<>();
- static
- {
- MOBS1.put(20082, 9); // ant_recruit
- MOBS1.put(20086, 9); // ant_guard
- MOBS1.put(20090, 22); // noble_ant_leader
- MOBS2.put(20084, 0.101); // ant_patrol
- MOBS2.put(20089, 0.100); // noble_ant
- }
-
- public Q00370_AnElderSowsSeeds()
- {
- super(370, Q00370_AnElderSowsSeeds.class.getSimpleName(), "An Elder Sows Seeds");
- addStartNpc(CASIAN);
- addTalkId(CASIAN);
- addKillId(MOBS1.keySet());
- addKillId(MOBS2.keySet());
- }
-
- @Override
- public boolean checkPartyMember(L2PcInstance member, L2Npc npc)
- {
- final QuestState st = getQuestState(member, false);
- return ((st != null) && st.isStarted());
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return null;
- }
-
- String htmltext = null;
- switch (event)
- {
- case "30612-02.htm":
- case "30612-03.htm":
- case "30612-06.html":
- case "30612-07.html":
- case "30612-09.html":
- {
- htmltext = event;
- break;
- }
- case "30612-04.htm":
- {
- st.startQuest();
- htmltext = event;
- break;
- }
- case "REWARD":
- {
- if (st.isStarted())
- {
- if (exchangeChapters(player, false))
- {
- htmltext = "30612-08.html";
- }
- else
- {
- htmltext = "30612-11.html";
- }
- }
- break;
- }
- case "30612-10.html":
- {
- if (st.isStarted())
- {
- exchangeChapters(player, true);
- st.exitQuest(true, true);
- htmltext = event;
- }
- break;
- }
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
- {
- int npcId = npc.getId();
- if (MOBS1.containsKey(npcId))
- {
- if (getRandom(100) < MOBS1.get(npcId))
- {
- L2PcInstance luckyPlayer = getRandomPartyMember(player, npc);
- if (luckyPlayer != null)
- {
- giveItemRandomly(luckyPlayer, npc, SPELLBOOK_PAGE, 1, 0, 1.0, true);
- }
- }
- }
- else
- {
- final QuestState st = getRandomPartyMemberState(player, -1, 3, npc);
- if (st != null)
- {
- giveItemRandomly(st.getPlayer(), npc, SPELLBOOK_PAGE, 1, 0, MOBS2.get(npcId), true);
- }
- }
- return super.onKill(npc, player, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, true);
- String htmltext = getNoQuestMsg(player);
- if (st.isCreated())
- {
- htmltext = (player.getLevel() >= MIN_LEVEL) ? "30612-01.htm" : "30612-05.html";
- }
- else if (st.isStarted())
- {
- htmltext = "30612-06.html";
- }
- return htmltext;
- }
-
- private final boolean exchangeChapters(L2PcInstance player, boolean takeAllItems)
- {
- final long waterChapters = getQuestItemsCount(player, CHAPTER_OF_WATER);
- final long earthChapters = getQuestItemsCount(player, CHAPTER_OF_EARTH);
- final long windChapters = getQuestItemsCount(player, CHAPTER_OF_WIND);
- final long fireChapters = getQuestItemsCount(player, CHAPTER_OF_FIRE);
- final long minCount = Util.min(waterChapters, earthChapters, windChapters, fireChapters);
- if (minCount > 0)
- {
- giveAdena(player, minCount * 3600, true);
- }
- final long countToTake = (takeAllItems ? -1 : minCount);
- takeItems(player, (int) countToTake, CHAPTER_OF_WATER, CHAPTER_OF_EARTH, CHAPTER_OF_WIND, CHAPTER_OF_FIRE);
- return (minCount > 0);
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-01.htm b/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-01.htm
deleted file mode 100644
index 094a3ff234..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-01.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Warehouse Chief Ranspo:
-I've been a warehouse keeper in this very location for almost 40 years! I can honestly say that I built this place with my own hands. I sacrificed my youth and devoted all of my passion to it!
-I received notice some time ago from the elder council of the guild union in Schuttgart. An inspector from the Iron Gate Guild will visit here soon. He is coming to observe my warehouse because the productivity in Dion has been so high this year. If everything goes well, I might be very well be promoted to the position of elder!
-When the inspector is here, I must honor him with a great feast... But I don't know where to start! I'm so excited! I must have some help from an adventurer like yourself. Of course, you'll be well rewarded. What do you think? Will you help me?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-02.htm b/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-02.htm
deleted file mode 100644
index e182d70fd8..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-02.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Warehouse Chief Ranspo:
-Wonderful! The inspector is widely known to be a lover of fine food and drink. It is said that he joined a wine taster's guild as a hobby and ended up earning the title of Sommelier, the highest grade!
-Anyway, at the feast, I must offer him first some elegant appetizers and top-quality wine. I know that the wine in this area is very well-regarded. Would you find a bottle and bring it to me? The older the better! Go visit Guard Harlan who works in the village.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-03.html b/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-03.html
deleted file mode 100644
index e4d06458a4..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-03.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Warehouse Chief Ranspo:
-I've been a warehouse keeper in this very location for almost 40 years! I can honestly say that I built this place with my own hands! I sacrificed my youth and devoted all of my passion to it!
-I received notice some time ago from the elder council of the guild union in Schuttgart. An inspector from the Iron Gate Guild will visit here soon. He is coming to observe my warehouse because the productivity in Dion has been so high this year. If everything goes well, I might very well be promoted to the position of elder!
-When the inspector is here, I must honor him with a great feast... But I don't know where to start! I'm so excited! I must have some help from an adventurer like yourself, but... now that I get a closer look at you, I can tell that you're still lacking experience! Why don't you come back and see me later?
-(This quest may only be undertaken by a character of level 20 or above.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-04.html b/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-04.html
deleted file mode 100644
index c3a1da3269..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-04.html
+++ /dev/null
@@ -1,7 +0,0 @@
-Warehouse Chief Ranspo:
-Did you bring me the wine?
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-05.html b/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-05.html
deleted file mode 100644
index 23b4233259..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-05.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Warehouse Chief Ranspo:
-Hmm... 15-year-old wine... I think you could've done better than that... Anyway, since I don't have much time left, I'll take it. Next I'll need...
-A grand feast must be accompanied by entertainment! I heard that there is a skillful dwarf composer in this village. What was his name? Barmonkey... Barbado... something like that... Anyhow, please find this man and ask him to compose some festive music suitable for this occasion. I'll hire a musician myself. Just bring me a musical score.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-06.html b/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-06.html
deleted file mode 100644
index bee13f2d6a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-06.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Warehouse Chief Ranspo:
-Hmm.. 30-year-old wine... Not bad... But I think you could've done better... But I'll take it. Let's see, what else was there...?
-Ah, yes! A grand feast must be accompanied by entertainment! I've heard that there is a skillful dwarf composer in this village. What was his name? Barmonkey... Barbado... something like that... Anyhow, please find him and ask him to compose some festive music suitable for this occasion. I'll hire a musician myself. Just bring me a musical score.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-07.html b/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-07.html
deleted file mode 100644
index 8c9a965f36..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-07.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Warehouse Chief Ranspo:
-Oh, my! A 60-year-old wine! Such a rarity! Thank you so much! I'm glad I trusted you with this task. Now, let me see, what else was there...?
-Ah, yes! A grand feast must be accompanied by entertainment! I've heard that there is a skillful dwarf composer in this village. What was his name? Barmonkey... Barbado... something like that... Anyhow, please find him and ask him to compose some festive music suitable for this occasion. I'll hire a musician myself. Just bring me a musical score.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-08.html b/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-08.html
deleted file mode 100644
index ec89c1f1ac..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-08.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Warehouse Chief Ranspo:
-Are you playing with me? Go get the wine!
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-09.html b/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-09.html
deleted file mode 100644
index e8bb0e5bd0..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-09.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Warehouse Chief Ranspo:
-What a blockhead you are! What's the matter with you? I'll explain it once more, so open your ears and listen! I must have top-quality wine! The older the better! Go and see Guard Harlan in the village.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-10.html b/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-10.html
deleted file mode 100644
index 4c0941501a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-10.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Warehouse Chief Ranspo:
-Have you brought me the musical score? What have you been doing? Hurry to see that dwarf Barbado, or whatever his name is, and bring back the score! Make sure it's cheerful music, suitable for a banquet!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-11.html b/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-11.html
deleted file mode 100644
index 303fdd8c7f..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-11.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Warehouse Chief Ranspo:
-Is this the music Booboo, no, Barbado composed? Ha! I can't read music... but, I've heard that he's a good musician. I'm sure it's wonderful... I've hired an accordionist... Now, what else was there? Ah, yes! That's right...!
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-12.html b/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-12.html
deleted file mode 100644
index 738e61131a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-12.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Warehouse Chief Ranspo:
-Appetizer, wine, cheerful music... all that's lacking is the main course... the heart and soul of the feast! We must prepare the courses! I know that the inspector would like to try some of Dion's regional foods. I have provided the young chef's apprentice with space and money to develop dishes... For some reason, it's taking him forever! Jonas is only interested in winning a prize in the culinary competition. He's not interested in treating the inspector with great dishes at all! He's saying that before he can complete the final dish, he won't tell his secret recipe to anyone! Would you talk to him and try to get his secret recipe?
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-13.html b/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-13.html
deleted file mode 100644
index 7541f861ac..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-13.html
+++ /dev/null
@@ -1,7 +0,0 @@
-Warehouse Chief Ranspo:
-Have you gotten the secret recipe from Jonas? I've invested so much time and money in that kid... If the recipe is mediocre.. I'll kick him out immediately!
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-14.html b/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-14.html
deleted file mode 100644
index 0074b6fc71..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-14.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Warehouse Chief Ranspo:
-His recipe for what? Salad?! You can't really expect me to serve rabbit food to the inspector! Well, actually, it is a specialty of Dion... I suppose I could give it a try...
-Well... my preparations for the feast are almost complete... I have just one last favor to ask you... Can you guess what it is? Yes, the dessert! What meal is complete without a delicious dessert? Go and see Magister Rollant at the temple, I've heard he has a secret recipe for a dessert made with local ingredients...
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-15.html b/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-15.html
deleted file mode 100644
index f4c724a254..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-15.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Warehouse Chief Ranspo:
-What am I supposed to do with a sauce? I suppose I could make steak... I could prepare it Dwarf-style, and use the sauce that Jonas developed. That should be enough to satisfy the inspector.
-My preparations for the feast are almost complete... I have one last favor to ask you... Can you guess what it is? Yes, the dessert! What meal is complete without a delicious dessert? Go and see Magister Rollant at the temple, I've heard that he has a secret recipe for a dessert made with local ingredients...
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-16.html b/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-16.html
deleted file mode 100644
index afb7726833..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-16.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Warehouse Chief Ranspo:
-Monster Eye Steak? Oh my, that is unique! I like it! I'm sure the inspector will be very impressed!
-My preparations for the feast are almost complete... I have one last favor to ask... Can you guess what it is? Yes, the dessert! What meal is complete without a delicious dessert? Go and see Magister Rollant at the temple, I've heard that he has a secret recipe for a dessert made with local ingredients...
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-17.html b/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-17.html
deleted file mode 100644
index 6579f3d48b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-17.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Warehouse Chief Ranspo:
-The inspector will be here in two days! We're running out of time! In fact, we've no time at all! Hurry back with a secret recipe from Jonas!
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-18.html b/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-18.html
deleted file mode 100644
index f187b26ae7..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-18.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Warehouse Chief Ranspo:
-Oh my! Where is Shilen when you need her? She should have taken you long ago! What were you doing when I explained this to you before? Are you deaf? OK, I'll tell you once more. Pay attention! The guy next to me is Jonas! He has a lot of secret recipes. Talk to him, obtain one of his secret recipes and bring it to me!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-19.html b/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-19.html
deleted file mode 100644
index 8fa2ab2823..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-19.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Warehouse Chief Ranspo:
-The inspector will be here the day after tomorrow! Even though you brought me the recipe, I'm not sure we can prepare the dish in time! Quickly! Go to the temple and get the recipe for dessert from Magister Rollant!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-20.html b/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-20.html
deleted file mode 100644
index 130028a146..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/30594-20.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Warehouse Chief Ranspo:
-Oh my! Yes, This is exactly what I wanted! Just looking at the ingredients makes my mouth water! So, now I just have to follow the recipe, right? I'm going to do everything I can to make this feast a success!
-Thank you for your hard work. Thanks to you, now I can prepare a truly magnificent banquet! My promotion is guaranteed. Please accept this reward!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/Q00378_GrandFeast.java b/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/Q00378_GrandFeast.java
deleted file mode 100644
index 0b3e507bd6..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00378_GrandFeast/Q00378_GrandFeast.java
+++ /dev/null
@@ -1,314 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00378_GrandFeast;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-
-/**
- * Grand Feast (378)
- * @author Adry_85
- */
-public final class Q00378_GrandFeast extends Quest
-{
- // NPC
- private static final int RANSPO = 30594;
- // Items
- private static final int JONAS_SALAD_RECIPE = 1455;
- private static final int JONAS_SAUCE_RECIPE = 1456;
- private static final int JONAS_STEAK_RECIPE = 1457;
- private static final int THEME_OF_THE_FEAST = 4421;
- private static final int OLD_WINE_15_YEAR = 5956;
- private static final int OLD_WINE_30_YEAR = 5957;
- private static final int OLD_WINE_60_YEAR = 5958;
- private static final int RITRONS_DESSERT_RECIPE = 5959;
- // Rewards
- private static final int CORAL_EARRING = 846;
- private static final int RED_CRESCENT_EARRING = 847;
- private static final int ENCHANTED_EARRING = 848;
- private static final int ENCHANTED_RING = 879;
- private static final int RING_OF_DEVOTION = 890;
- private static final int BLUE_DIAMOND_NECKLACE = 909;
- private static final int NECKLACE_OF_DEVOTION = 910;
- // Misc
- private static final int MIN_LEVEL = 20;
-
- public Q00378_GrandFeast()
- {
- super(378, Q00378_GrandFeast.class.getSimpleName(), "Grand Feast");
- addStartNpc(RANSPO);
- addTalkId(RANSPO);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState qs = getQuestState(player, false);
- if (qs == null)
- {
- return null;
- }
-
- String htmltext = null;
- switch (event)
- {
- case "30594-02.htm":
- {
- qs.setMemoStateEx(1, 0);
- qs.startQuest();
- htmltext = event;
- break;
- }
- case "30594-05.html":
- {
- final int i0 = qs.getMemoStateEx(1);
- if (hasQuestItems(player, OLD_WINE_15_YEAR))
- {
- takeItems(player, OLD_WINE_15_YEAR, 1);
- qs.setMemoStateEx(1, i0 + 10);
- qs.setCond(2, true);
- htmltext = event;
- }
- else
- {
- htmltext = "30594-08.html";
- }
- break;
- }
- case "30594-06.html":
- {
- final int i0 = qs.getMemoStateEx(1);
- if (hasQuestItems(player, OLD_WINE_30_YEAR))
- {
- takeItems(player, OLD_WINE_30_YEAR, 1);
- qs.setMemoStateEx(1, i0 + 20);
- qs.setCond(2, true);
- htmltext = event;
- }
- else
- {
- htmltext = "30594-08.html";
- }
- break;
- }
- case "30594-07.html":
- {
- final int i0 = qs.getMemoStateEx(1);
- if (hasQuestItems(player, OLD_WINE_60_YEAR))
- {
- takeItems(player, OLD_WINE_60_YEAR, 1);
- qs.setMemoStateEx(1, i0 + 30);
- qs.setCond(2, true);
- htmltext = event;
- }
- else
- {
- htmltext = "30594-08.html";
- }
- break;
- }
- case "30594-09.html":
- case "30594-18.html":
- {
- htmltext = event;
- break;
- }
- case "30594-12.html":
- {
- if (hasQuestItems(player, THEME_OF_THE_FEAST))
- {
- takeItems(player, THEME_OF_THE_FEAST, 1);
- qs.setCond(3, true);
- htmltext = event;
- }
- else
- {
- htmltext = "30594-08.html";
- }
- break;
- }
- case "30594-14.html":
- {
- final int i0 = qs.getMemoStateEx(1);
- if (hasQuestItems(player, JONAS_SALAD_RECIPE))
- {
- takeItems(player, JONAS_SALAD_RECIPE, 1);
- qs.setMemoStateEx(1, i0 + 1);
- qs.setCond(4, true);
- htmltext = event;
- }
- else
- {
- htmltext = "30594-17.html";
- }
- break;
- }
- case "30594-15.html":
- {
- final int i0 = qs.getMemoStateEx(1);
- if (hasQuestItems(player, JONAS_SAUCE_RECIPE))
- {
- takeItems(player, JONAS_SAUCE_RECIPE, 1);
- qs.setMemoStateEx(1, i0 + 2);
- qs.setCond(4, true);
- htmltext = event;
- }
- else
- {
- htmltext = "30594-17.html";
- }
- break;
- }
- case "30594-16.html":
- {
- final int i0 = qs.getMemoStateEx(1);
- if (hasQuestItems(player, JONAS_STEAK_RECIPE))
- {
- takeItems(player, JONAS_STEAK_RECIPE, 1);
- qs.setMemoStateEx(1, i0 + 3);
- qs.setCond(4, true);
- htmltext = event;
- }
- else
- {
- htmltext = "30594-17.html";
- }
- break;
- }
- }
- return htmltext;
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- QuestState qs = getQuestState(player, true);
- String htmltext = getNoQuestMsg(player);
- if (qs.isCreated())
- {
- htmltext = (player.getLevel() >= MIN_LEVEL) ? "30594-01.htm" : "30594-03.html";
- }
- else if (qs.isStarted())
- {
- switch (qs.getCond())
- {
- case 1:
- {
- htmltext = "30594-04.html";
- break;
- }
- case 2:
- {
- htmltext = (hasQuestItems(player, THEME_OF_THE_FEAST)) ? "30594-11.html" : "30594-10.html";
- break;
- }
- case 3:
- {
- htmltext = "30594-13.html";
- break;
- }
- case 4:
- {
- if (hasQuestItems(player, RITRONS_DESSERT_RECIPE))
- {
- takeItems(player, RITRONS_DESSERT_RECIPE, 1);
- int item = 0, adena = 0;
- long quantity = 0;
- switch (qs.getMemoStateEx(1))
- {
- case 11:
- {
- item = RED_CRESCENT_EARRING;
- quantity = 1;
- adena = 5700;
- break;
- }
- case 12:
- {
- item = CORAL_EARRING;
- quantity = 2;
- adena = 1200;
- break;
- }
- case 13:
- {
- item = ENCHANTED_RING;
- quantity = 1;
- adena = 8100;
- break;
- }
- case 21:
- {
- item = CORAL_EARRING;
- quantity = 2;
- break;
- }
- case 22:
- {
- item = ENCHANTED_RING;
- quantity = 1;
- adena = 6900;
- break;
- }
- case 23:
- {
- item = NECKLACE_OF_DEVOTION;
- quantity = 1;
- break;
- }
- case 31:
- {
- item = BLUE_DIAMOND_NECKLACE;
- quantity = 1;
- adena = 25400;
- break;
- }
- case 32:
- {
- item = RING_OF_DEVOTION;
- quantity = 2;
- adena = 8500;
- break;
- }
- case 33:
- {
- item = ENCHANTED_EARRING;
- quantity = 1;
- adena = 2200;
- break;
- }
- }
- giveItems(player, item, quantity);
- giveAdena(player, adena, true);
- qs.exitQuest(true, true);
- htmltext = "30594-20.html";
- }
- else
- {
- htmltext = "30594-19.html";
- }
- break;
- }
- }
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-01.htm b/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-01.htm
deleted file mode 100644
index 16c94720b0..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-01.htm
+++ /dev/null
@@ -1,7 +0,0 @@
-Guard Harlan:
-Hello, stranger! My wife just recently gave birth to a beautiful baby girl!
-The countless amusements of fatherhood fill me with indescribable joy... I just want to play peek-a-boo all day! I don't care if people laugh... I would do anything for my precious baby!
-I see that you disapprove, but you must understand... My wife and I tried for 10 years to have a child! To finally have produced such a perfect baby would drive anyone to distraction!
-You are obviously not a parent!
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-02.htm b/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-02.htm
deleted file mode 100644
index d21a65120f..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-02.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Guard Harlan:
-Apology accepted, my friend... I suppose I overreacted. To mark the birth of my daughter I want to make fantasy wine. The recipe has been in my family for many generations. When she marries I will serve it at her wedding!
-I am lacking some of the ingredients I need to make the wine. These ingredients have always been rare, but nowadays it's practically impossible to get them. To make matters worse, my duties as a guard keep me from going out and finding them myself. Would you help me?
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-03.htm b/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-03.htm
deleted file mode 100644
index 302dab6905..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-03.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Guard Harlan:
-Well, let's see, I'll need some leaves of eucalyptus... They can be obtained from an Enku Orc champion. To properly age the wine I'll require some stones of chill... They're made and used by the Enku Orc shaman. Bring these items to me and I'll make the wine.
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-04.htm b/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-04.htm
deleted file mode 100644
index 3099db58fc..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-04.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Guard Harlan:
-Oh, great! Please bring me 80 leaves of eucalyptus... That should be enough for one barrel of wine.
-I'll need some stones of chill to properly age the wine... 100 should be enough.
-If you bring me these items, I'll give you a genuine bottle of Dion wine! No cost is too high for the sake of my precious daughter!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-05.html b/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-05.html
deleted file mode 100644
index 43c53296ee..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-05.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Guard Harlan:
-I understand, you're busy. If you should change your mind and we meet again, I could really use the help. Have a safe journey.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-06.html b/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-06.html
deleted file mode 100644
index 4a2ef97f73..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-06.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Guard Harlan:
-Hello, stranger! My wife just recently gave birth to a beautiful baby girl!
-The countless amusements of fatherhood fill me with indescribable joy... I just want to play peek-a-boo all day! I don't care if people laugh... I would do anything for my precious baby!
-I need a favor, but you are not yet skilled enough to do it for me. Please come back to see me later.
-(This quest may only be undertaken by a character of level 20 or above.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-07.html b/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-07.html
deleted file mode 100644
index cf8c4536f5..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-07.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Guard Harlan:
-Have you brought the ingredients for the fantasy wine?
-I'll need 80 leaves of eucalyptus from the Enku Orc champions and 100 stones of chill from the Enku Orc shamans.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-08.html b/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-08.html
deleted file mode 100644
index d37e1f8e22..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-08.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Guard Harlan:
-You've brought all the leaves of eucalyptus I need, but I still don't have enough stones of chill. As I said, I need 100 of them.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-09.html b/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-09.html
deleted file mode 100644
index df21e8fd21..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-09.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Guard Harlan:
-You've brought enough stones of chill, but I still need more leaves of eucalyptus. As I said, I need 80 of them.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-10.html b/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-10.html
deleted file mode 100644
index f65b0f9b78..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-10.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Guard Harlan:
-Do you have all the ingredients? Let me see them!
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-11.html b/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-11.html
deleted file mode 100644
index af26e3cb45..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-11.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Guard Harlan:
-These ingredients aren't the best you can get, but they'll do. At least I can make the fantasy wine to celebrate my daughter's wedding. Thank you for helping me with this. Here is some wine made by my father. This is truly a rare gift. Share it with your friends on a happy occasion.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-12.html b/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-12.html
deleted file mode 100644
index 224d83add6..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-12.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Guard Harlan:
-Now I can make the fantasy wine! I'll let it age and serve it when my daughter gets married. Thank you! Here is some excellent wine made by my father. Open it to celebrate a special occasion with your family and friends.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-13.html b/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-13.html
deleted file mode 100644
index f993f38a09..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/30074-13.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Guard Harlan:
-These are very high quality ingredients! Now I can make the very finest fantasy wine.
-What a wonderful gift for my daughter this will make!
-Here, take this excellent bottle of wine. It's very rare! In fact, there are only a few bottles of it in the entire kingdom!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/Q00379_FantasyWine.java b/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/Q00379_FantasyWine.java
deleted file mode 100644
index 1830757a5d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00379_FantasyWine/Q00379_FantasyWine.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00379_FantasyWine;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.holders.ItemHolder;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.util.Util;
-
-/**
- * Fantasy Wine (379)
- * @author Adry_85
- */
-public final class Q00379_FantasyWine extends Quest
-{
- // NPC
- private static final int HARLAN = 30074;
- // Items
- private static final ItemHolder LEAF_OF_EUCALYPTUS = new ItemHolder(5893, 80);
- private static final ItemHolder STONE_OF_CHILL = new ItemHolder(5894, 100);
- private static final int OLD_WINE_15_YEAR = 5956;
- private static final int OLD_WINE_30_YEAR = 5957;
- private static final int OLD_WINE_60_YEAR = 5958;
- // Monsters
- private static final int ENKU_ORC_CHAMPION = 20291;
- private static final int ENKU_ORC_SHAMAN = 20292;
- // Misc
- private static final int MIN_LEVEL = 20;
-
- public Q00379_FantasyWine()
- {
- super(379, Q00379_FantasyWine.class.getSimpleName(), "Fantasy Wine");
- addStartNpc(HARLAN);
- addTalkId(HARLAN);
- addKillId(ENKU_ORC_CHAMPION, ENKU_ORC_SHAMAN);
- registerQuestItems(LEAF_OF_EUCALYPTUS.getId(), STONE_OF_CHILL.getId());
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState qs = getQuestState(player, false);
- if (qs == null)
- {
- return null;
- }
-
- String htmltext = null;
- switch (event)
- {
- case "30074-02.htm":
- case "30074-03.htm":
- case "30074-05.html":
- {
- htmltext = event;
- break;
- }
- case "30074-04.htm":
- {
- qs.startQuest();
- htmltext = event;
- break;
- }
- case "30074-11.html":
- {
- if (hasAllItems(player, true, LEAF_OF_EUCALYPTUS, STONE_OF_CHILL))
- {
- final int random = getRandom(10);
- final int item;
-
- if (random < 3)
- {
- item = OLD_WINE_15_YEAR;
- htmltext = event;
- }
- else if (random < 9)
- {
- item = OLD_WINE_30_YEAR;
- htmltext = "30074-12.html";
- }
- else
- {
- item = OLD_WINE_60_YEAR;
- htmltext = "30074-13.html";
- }
-
- giveItems(player, item, 1);
- takeAllItems(player, LEAF_OF_EUCALYPTUS, STONE_OF_CHILL);
- qs.exitQuest(true, true);
- }
- break;
- }
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
- {
- final QuestState qs = getQuestState(killer, false);
-
- if ((qs == null) || !Util.checkIfInRange(1500, npc, killer, true))
- {
- return null;
- }
-
- final ItemHolder dropItem = ((npc.getId() == ENKU_ORC_CHAMPION) ? LEAF_OF_EUCALYPTUS : STONE_OF_CHILL);
-
- if (giveItemRandomly(killer, npc, dropItem.getId(), 1, dropItem.getCount(), 1.0, true) && hasAllItems(killer, true, LEAF_OF_EUCALYPTUS, STONE_OF_CHILL))
- {
- qs.setCond(2);
- }
- return super.onKill(npc, killer, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- QuestState qs = getQuestState(player, true);
- String htmltext = getNoQuestMsg(player);
- if (qs.isCreated())
- {
- htmltext = (player.getLevel() >= MIN_LEVEL) ? "30074-01.htm" : "30074-06.html";
- }
- else if (qs.isStarted())
- {
- final boolean hasLeafOfEucalyptus = hasItem(player, LEAF_OF_EUCALYPTUS);
- final boolean hasStoneOfChill = hasItem(player, STONE_OF_CHILL);
-
- if (!hasLeafOfEucalyptus && !hasStoneOfChill)
- {
- htmltext = "30074-07.html";
- }
- else if (hasLeafOfEucalyptus && !hasStoneOfChill)
- {
- htmltext = "30074-08.html";
- }
- else if (!hasLeafOfEucalyptus && hasStoneOfChill)
- {
- htmltext = "30074-09.html";
- }
- else
- {
- htmltext = "30074-10.html";
- }
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-01.htm b/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-01.htm
deleted file mode 100644
index c1d5ed70b7..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-01.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Magister Rollant:
-Are you interested in the culinary arts? There are many excellent food ingredients here at Dion Castle. The local people have a passion for cooking and hold a culinary competition every month.
-Many people think of this place as a chef's paradise, but I'm not completely satisfied. Although the correct cooking process is vital to the creation of fine foods, there is something missing...
-If you know anyone capable of gathering truly exotic ingredients, send them to me!
-(This quest may only be undertaken by a character of level 24 or above.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-02.htm b/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-02.htm
deleted file mode 100644
index 262de42137..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-02.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Magister Rollant:
-Are you interested in the culinary arts? There are many excellent food ingredients here at Dion Castle. The local people have a passion for cooking and hold a culinary competition every month.
-Many people think of this place as a chef's paradise, but I'm not completely satisfied. Although the correct cooking process is vital to the creation of fine foods, there is something missing.... The other chefs don't seem to notice this, or else they simply don't want to put in the time and effort to obtain new ingredients.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-03.htm b/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-03.htm
deleted file mode 100644
index f38ad7eab5..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-03.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Magister Rollant:
-The most important skill a chef possesses is the ability to evaluate fine ingredients. A thorough knowledge of ingredients and the ability to find them are essential. Only then does preparation come into play.
-Remember, an apple requires no preparation whatsoever. Cooking shouldn't always mean smearing something with butter and flour and calling it a pie. But I must admit, there are some hazards in using raw ingredients...
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-04.htm b/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-04.htm
deleted file mode 100644
index 392cfcc06e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-04.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Magister Rollant:
-Raw foods can have a very strong flavor. Some foods, if not prepared properly, can even cause illness. By far, the greatest use of ingredients is dessert. Would you care to sample some?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-05.htm b/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-05.htm
deleted file mode 100644
index b1f5222c18..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-05.htm
+++ /dev/null
@@ -1,9 +0,0 @@
-Magister Rollant:
-Excellent! We must gather the ingredients! Actually, that will be the hardest part. They aren't easy to find...
-The fruit of the ritron trees quite often fails to sprout, and ripens underground.
-Dire wolves have an excellent sense of smell and often dig up the ritron fruits. I will need 4 ritron fruits.
-I will also need a Moon Face Flower which is carried by Kadif werewolves and some fluids of giant mist leeches.
-Ah, I will also need two leaves of Antidote as well, since Leech Fluids are very poisonous. So let's see, I need 4 ritron fruits, 20 moon flowers, 10 bottles of giant mist Leech Fluids and two leaves of Antidote... You can purchase Antidote at any store.
-Bring me these ingredients and you'll taste the best dessert in the world!
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-06.html b/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-06.html
deleted file mode 100644
index 4f15c9d20e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-06.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Magister Rollant:
-Dire wolves can be found in the northern Dion Hills, or in the south across the river west of Dion Castle and also on the Plains of Dion.
-Since Kadif werewolves can only be found on the Plains of Dion, you'll have to cross the river anyway.
-Giant mist leeches can be found in the Cruma Marshlands.
-Antidotes can be bought at any store.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-07.html b/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-07.html
deleted file mode 100644
index 2f2596529b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-07.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Magister Rollant:
-You haven't brought all the ingredients. Please bring me ritron fruit from dire wolves, moon flowers from Kadif werewolves, giant mist Leech Fluids and Antidote. Bring them to me and I'll make you the best dessert ever made... Even Magister Mirien, known as the magician of flavor, has never tasted it!
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-08.html b/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-08.html
deleted file mode 100644
index 9a2998f8ff..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-08.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Magister Rollant:
-Good! You've brought all the ingredients. I'll get started with my cooking.
-Ritron fruit cannot be consumed raw. To soften it, you must use this leech fluid. First we must beat the leech fluid together and neutralize it with Antidote. Then, grind the moon flower...
-This will take a while... Would you like to come back later?
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-09.html b/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-09.html
deleted file mode 100644
index b6aa32b9f7..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-09.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Magister Rollant:
-Now I must distill the leech fluid and mix it with gelatin.
-Hmm, I forgot, I need to make gelatin, too. Please light the fire.
-Now I will crush one ritron fruit and add it to the ground moon flower...
-Please come back later.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-10.html b/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-10.html
deleted file mode 100644
index d399a98907..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-10.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Magister Rollant:
-Timing is essential!
-I will add the sterilized Leech Fluids to the ritron fruit just before it melts, so it will develop the maximum smoothness while retaining the pulp that uniquely tickles the throat...
-I must concentrate. Please don't interrupt me! Come back later!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-11.html b/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-11.html
deleted file mode 100644
index bcd4335d4f..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-11.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Magister Rollant:
-Quiet! This is a very crucial moment!
-Come back later. Why are you in such a hurry?
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-12.html b/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-12.html
deleted file mode 100644
index 9dbc650779..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-12.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Magister Rollant:
-It's done! Now it must marinate in the sauce. When it's hardened you can eat it. I call it "Rollant's Special Ritron Jelly".
-Can you taste the hint of moon flower? I added the ritron fruit to the ritron sauce to really intensify the flavor.
-It melts in your mouth but still has a lovely texture, doesn't it? Eat up!
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-13.html b/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-13.html
deleted file mode 100644
index dfbd6d49f0..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-13.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Magister Rollant:
-I'm glad you enjoyed it. In case you ever want to have it again, take this recipe. I hope other chefs learn that such ingredients exist and start creating dishes made from them. Please share it with as many people as possible.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-14.html b/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-14.html
deleted file mode 100644
index bb7d80b392..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-14.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Magister Rollant:
-Did you enjoy it? In case you ever want to make it, take this recipe. I hope other chefs learn that such ingredients exist and start creating dishes using them. Please share it with as many people as possible.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-15.html b/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-15.html
deleted file mode 100644
index 931d769556..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/30069-15.html
+++ /dev/null
@@ -1,7 +0,0 @@
-Magister Rollant:
-It's done! Now, it must marinate in the ritron sauce. When it's hardened you can eat it. I call it "Rollant's Special Ritron Jelly".
-Can you taste the hint of moon flower? I added the ritron fruit to the ritron sauce which really intensifies the flavor.
-It melts in your mouth but still has a lovely texture, doesn't it?
-Regretfully, this ritron fruit had been gnawed by wolves. I'm sure the taste won't be affected, but much of the joy of a dessert is its appearance...
-Oh, well, you have to make do with what you have. Thank you for your work.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/Q00380_BringOutTheFlavorOfIngredients.java b/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/Q00380_BringOutTheFlavorOfIngredients.java
deleted file mode 100644
index fdfb768e15..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00380_BringOutTheFlavorOfIngredients/Q00380_BringOutTheFlavorOfIngredients.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00380_BringOutTheFlavorOfIngredients;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.holders.ItemChanceHolder;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-
-/**
- * Bring Out the Flavor of Ingredients! (380)
- * @author Pandragon
- */
-public final class Q00380_BringOutTheFlavorOfIngredients extends Quest
-{
- // NPC
- private static final int ROLLAND = 30069;
- // Items
- private static final int ANTIDOTE = 1831;
- private static final int RITRON_FRUIT = 5895;
- private static final int MOON_FLOWER = 5896;
- private static final int LEECH_FLUIDS = 5897;
- // Monsters
- private static final Map MONSTER_CHANCES = new HashMap<>();
- {
- MONSTER_CHANCES.put(20205, new ItemChanceHolder(RITRON_FRUIT, 0.1, 4)); // Dire Wolf
- MONSTER_CHANCES.put(20206, new ItemChanceHolder(MOON_FLOWER, 0.5, 20)); // Kadif Werewolf
- MONSTER_CHANCES.put(20225, new ItemChanceHolder(LEECH_FLUIDS, 0.5, 10)); // Giant Mist Leech
- }
- // Rewards
- private static final int RITRON_RECIPE = 5959;
- private static final int RITRON_DESSERT = 5960;
- // Misc
- private static final int MIN_LVL = 24;
-
- public Q00380_BringOutTheFlavorOfIngredients()
- {
- super(380, Q00380_BringOutTheFlavorOfIngredients.class.getSimpleName(), "Bring Out the Flavor of Ingredients!");
- addStartNpc(ROLLAND);
- addTalkId(ROLLAND);
- addKillId(MONSTER_CHANCES.keySet());
- registerQuestItems(RITRON_FRUIT, MOON_FLOWER, LEECH_FLUIDS);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState qs = getQuestState(player, false);
- String htmltext = null;
- if (qs != null)
- {
- switch (event)
- {
- case "30069-03.htm":
- case "30069-04.htm":
- case "30069-06.html":
- {
- htmltext = event;
- break;
- }
- case "30069-05.htm":
- {
- if (qs.isCreated())
- {
- qs.startQuest();
- htmltext = event;
- }
- break;
- }
- case "30069-13.html":
- {
- if (qs.isCond(9))
- {
- rewardItems(player, RITRON_RECIPE, 1);
- qs.exitQuest(true, true);
- htmltext = event;
- }
- break;
- }
- }
- }
- return htmltext;
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance talker)
- {
- final QuestState qs = getQuestState(talker, true);
- String htmltext = getNoQuestMsg(talker);
- switch (qs.getState())
- {
- case State.CREATED:
- {
- htmltext = (talker.getLevel() >= MIN_LVL) ? "30069-02.htm" : "30069-01.htm";
- break;
- }
- case State.STARTED:
- {
- switch (qs.getCond())
- {
- case 1:
- case 2:
- case 3:
- case 4:
- {
- if ((getQuestItemsCount(talker, ANTIDOTE) >= 2) && (getQuestItemsCount(talker, RITRON_FRUIT) >= 4) && (getQuestItemsCount(talker, MOON_FLOWER) >= 20) && (getQuestItemsCount(talker, LEECH_FLUIDS) >= 10))
- {
- takeItems(talker, ANTIDOTE, 2);
- takeItems(talker, -1, RITRON_FRUIT, MOON_FLOWER, LEECH_FLUIDS);
- qs.setCond(5, true);
- htmltext = "30069-08.html";
- }
- else
- {
- htmltext = "30069-07.html";
- }
- break;
- }
- case 5:
- {
- qs.setCond(6, true);
- htmltext = "30069-09.html";
- break;
- }
- case 6:
- {
- qs.setCond(7, true);
- htmltext = "30069-10.html";
- break;
- }
- case 7:
- {
- qs.setCond(8, true);
- htmltext = "30069-11.html";
- break;
- }
- case 8:
- {
- rewardItems(talker, RITRON_DESSERT, 1);
- if (getRandom(100) < 56)
- {
- htmltext = "30069-15.html";
- qs.exitQuest(true, true);
- }
- else
- {
- qs.setCond(9, true);
- htmltext = "30069-12.html";
- }
- break;
- }
- case 9:
- {
- htmltext = "30069-12.html";
- break;
- }
- }
- break;
- }
- case State.COMPLETED:
- {
- htmltext = getAlreadyCompletedMsg(talker);
- break;
- }
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
- {
- final QuestState qs = getRandomPartyMemberState(killer, -1, 3, npc);
- if ((qs != null) && (qs.getCond() < 4))
- {
- final ItemChanceHolder item = MONSTER_CHANCES.get(npc.getId());
- if (giveItemRandomly(qs.getPlayer(), npc, item.getId(), 1, item.getCount(), item.getChance(), true))
- {
- qs.setCond(qs.getCond() + 1, true);
- }
- }
- return super.onKill(npc, killer, isSummon);
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-01.html b/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-01.html
deleted file mode 100644
index 9d9c2acde0..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-01.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Trader Espen:
-As a way of escaping my boring daily life, I have a hobby of collecting pirate memorabilia. I'm especially interested in anything to do with Zaken, the legendary scourge of the high seas.
-Currently, I'm conducting research about Muska, Zaken's subordinate who stole his treasure and ran away. It is said that he was once Zaken's boatswain, and when Zaken's ship was anchored at Innadril Harbor, he made off with a few Treasure Chests and stashed them somewhere on Alligator Island. Isn't that interesting?
-Soon, I plan to organize an expedition and go look for the treasure. Of course, I will need to hire seasoned adventurers...
-(This quest may only be undertaken by a character who possesses the Pirate's Treasure Map and whose level is 42 or above.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-02.html b/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-02.html
deleted file mode 100644
index 079cc450e0..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-02.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Trader Espen:
-As a way of escaping my boring daily life, I have a hobby of collecting pirate memorabilia. I'm especially interested in anything to do with Zaken, the legendary scourge of the high seas.
-It is said that he was once Zaken's boatswain, and when Zaken's ship was anchored at Innadril Harbor, he made off with a few Treasure Chests and stashed them somewhere on Alligator Island.
-I don't know the exact location of the Treasure Chests... Muska was certainly no fool... he must have drawn a Map...
-(This quest may only be undertaken by a character who possesses the Pirate's Treasure Map and whose level is 42 or above.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-03.htm b/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-03.htm
deleted file mode 100644
index 36c83d4a37..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-03.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Trader Espen:
-As a way of escaping my boring daily life, I have a hobby of collecting pirate memorabilia. I'm especially interested in anything to do with Zaken, the legendary scourge of the high seas.
-It is said that he was once Zaken's boatswain, and when Zaken's ship was anchored at Innadril Harbor, he made off with a few Treasure Chests and stashed them somewhere on Alligator Island.
-But, the exact location of the Treasure Chests hasn't been discovered yet...
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-04.htm b/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-04.htm
deleted file mode 100644
index 61d1b63dfd..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-04.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Trader Espen:
-Oh Oh?! Could it be...? Is that really Muska's Map? Where did you find it? Let me buy the Map from you! It won't do you any good anyway. Why should you keep it? I'll pay you 1000 Adena for it!
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-05.htm b/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-05.htm
deleted file mode 100644
index bafef2ee54..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-05.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Trader Espen:
-Do you mean it? Are you sure you won't regret your decision? Here... Here is 1000 Adena. Ha! Finally, I have Muska's treasure Map! This is truly the chance of a lifetime. At last, Lady Luck smiled on me. I can give up my job as a trader and just enjoy being filthy rich!
-Let me see... where would the treasure be...? First I must decipher the pirates' jargon...
-Hmm? What are you still doing here? Go away! This Map is mine! You're an adventurer, so go and have one!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-06.htm b/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-06.htm
deleted file mode 100644
index 994b07dcb7..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-06.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Trader Espen:
-Humph! I guess you're not as stupid as you look... Well, although it's only a part of it, it will lead you to the treasure of the great Pirate Captain Zaken... I know that you don't want to give up the Map so easily.
-Hey, listen! Wouldn't you like to know what kind of treasure is hidden out there? Just the sight of that Map makes my heart pound like a drum!
-How about this? I'll decipher and interpret the Map for you, then you go and find the treasure. In exchange for my services, all I want is the treasure Map. I'd like to keep it as a souvenir. What do you think?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-07.htm b/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-07.htm
deleted file mode 100644
index 96fcbe5b6d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-07.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Trader Espen:
-Heh Heh Heh... Ah, yes, good decision. You won't regret your decision...
-Before I begin, let me tell you a story about the Pirate Captain Zaken and his traitorous boatswain, Muska. Listen carefully, as this information will be quite helpful to you in the future.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-08.html b/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-08.html
deleted file mode 100644
index 504fdbad21..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-08.html
+++ /dev/null
@@ -1,7 +0,0 @@
-Trader Espen:
-At one time Muska was a faithful underling of Zaken. But, when Zaken's ship was anchored here in Heine, he fell in love with Fatima, a woman from Abella.
-Fatima seduced Muska and convinced him to betray his captain and steal the treasure.
-Blinded by love, Muska violated the cardinal rule of pirates by betraying his captain and fled with the captain's treasure! To escape his pursuers, he hid himself on Alligator Island and secreted the treasure away there.
-To remember the location of the treasure, he drew a Map. It is the Map you are now holding in your hand.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-09.html b/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-09.html
deleted file mode 100644
index e59c43883a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-09.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Trader Espen:
-Unfortunately, Muska made a bad choice when he fell in love with Fatima. Her heart concealed dark tendencies... While her lover was risking his life stealing treasure, she had already found herself a lover in Heine, and was plotting to betray Muska...
-When Muska returned to her after hiding the treasure somewhere, Fatima gave him poison and he died.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-10.html b/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-10.html
deleted file mode 100644
index 1007b0e9ea..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-10.html
+++ /dev/null
@@ -1,7 +0,0 @@
-Trader Espen:
-Muska was a hardened pirate as well, who greatly distrusted people... and Fatima was no exception. The treasure Map found on Muska's corpse was written in code, and no one could decipher it.
-When Zaken's ship ran aground on Devil's Isle and its captain and all of his crew were all killed, it seemed the Map would never be decoded.
-Fatima, enraged by this turn of events, demanded her new lover go to Devil's Isle immediately and find the treasure for her at any cost. Fatima's unfortunate lover was a mere tailor by trade and soon went missing, along with Muska's treasure Map...
-It was widely believed that the Map was lost for good, and now you show up with it!
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-11.html b/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-11.html
deleted file mode 100644
index 43be5db354..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-11.html
+++ /dev/null
@@ -1,9 +0,0 @@
-Trader Espen:
-You should thank your lucky stars for running into me. Why? Because I'm the only person in the world who can decipher this Map.
-I recently purchased Zaken's journal from some adventurers who had been exploring on Devil's Isle. It contained a detailed description of the method of decoding the pirates' jargon. Although Zaken was a seemingly fearless pirate who dominated all the great oceans, he was an unexpectedly cautious individual. He wrote a very detailed explanation of the code in his journal, as though he was afraid of forgetting how to decipher it...
-Now, I've told you everything I know. Come on, show me the Map. Let's find out where the treasure is hidden!
-These are the coordinates on the Map. Let me see... 12 feathers of parrot... 50 glasses of rum... the coordinates are...
-Oh, it's right there! It is the northern part of Alligator Beach! Ha ha! It's not far from here. I will mark it on your Map.
-Phew... all my life I have followed the legend of Zaken... And now my fate is just to interpret the Map for someone else... What a disappointment! Well, all I can do is ask you to be a brave treasure hunter...
-Now, get going! Find the finale of the legend... Ah! One last piece of advice... To open a Treasure Chest you must first obtain a Thief Key!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-12.html b/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-12.html
deleted file mode 100644
index 8d6bc5b846..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-12.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Trader Espen:
-Hey you... Do you or don't you have the treasure Map? You must have heard the rumor that I'm a great pirate aficionado. So, are you trying to rip me off? Get lost!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-13.html b/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-13.html
deleted file mode 100644
index 19157c031f..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-13.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Trader Espen:
-This Map that you discovered on Alligator Island... Doesn't it make your heart pound just looking at it?
-Ah, you want me to decipher it? Very well... But before I decipher the Map... first I must tell you the story of boatswain Muska, who betrayed Zaken, the great pirate. If you're going to search for Zaken's treasure, you should listen to the story first...
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-14.html b/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-14.html
deleted file mode 100644
index 7cf4287dd5..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/30890-14.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Trader Espen:
-Welcome back, brave hunter! What?! You haven't found the treasure yet? Didn't I mark the coordinates on the Map for you? Take a closer look at your Map! If you go to the coordinates I marked, you will definitely find the treasure...!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/31148-01.html b/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/31148-01.html
deleted file mode 100644
index c0bf2493f1..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/31148-01.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Pirate's Treasure Chest:
-I found a locked Treasure Chest!
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/31148-02.html b/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/31148-02.html
deleted file mode 100644
index a0806b8225..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/31148-02.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Pirate's Treasure Chest:
-The key worked, what shall I find inside?
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/31148-03.html b/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/31148-03.html
deleted file mode 100644
index b953d2a739..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/31148-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Pirate's Treasure Chest:
-To open it you must obtain a Thief Key.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/Q00383_TreasureHunt.java b/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/Q00383_TreasureHunt.java
deleted file mode 100644
index 7b368b9943..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00383_TreasureHunt/Q00383_TreasureHunt.java
+++ /dev/null
@@ -1,341 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00383_TreasureHunt;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.holders.ItemHolder;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-
-/**
- * Treasure Hunt (383)
- * @author Adry_85
- */
-public final class Q00383_TreasureHunt extends Quest
-{
- // NPCs
- private static final int ESPEN = 30890;
- private static final int PIRATES_CHEST = 31148;
- // Items
- private static final int THIEF_KEY = 1661;
- private static final int PIRATES_TREASURE_MAP = 5915;
- // Misc
- private static final int MIN_LEVEL = 42;
- // Rewards
- private static final ItemHolder SCROLL_ENCHANT_ARMOR_C = new ItemHolder(952, 1);
- private static final ItemHolder SCROLL_ENCHANT_ARMOR_D = new ItemHolder(956, 1);
- private static final ItemHolder EMERALD = new ItemHolder(1337, 1);
- private static final ItemHolder BLUE_ONYX = new ItemHolder(1338, 2);
- private static final ItemHolder ONYX = new ItemHolder(1339, 2);
- private static final ItemHolder MITHRIL_GLOVES = new ItemHolder(2450, 1);
- private static final ItemHolder SAGES_WORN_GLOVES = new ItemHolder(2451, 1);
- private static final ItemHolder MOONSTONE = new ItemHolder(3447, 2);
- private static final ItemHolder ALEXANDRITE = new ItemHolder(3450, 1);
- private static final ItemHolder FIRE_EMERALD = new ItemHolder(3453, 1);
- private static final ItemHolder IMPERIAL_DIAMOND = new ItemHolder(3456, 1);
- private static final ItemHolder MUSICAL_SCORE_THEME_OF_LOVE = new ItemHolder(4408, 1);
- private static final ItemHolder MUSICAL_SCORE_THEME_OF_BATTLE = new ItemHolder(4409, 1);
- private static final ItemHolder MUSICAL_SCORE_THEME_OF_CELEBRATION = new ItemHolder(4418, 1);
- private static final ItemHolder MUSICAL_SCORE_THEME_OF_COMEDY = new ItemHolder(4419, 1);
- private static final ItemHolder DYE_S1C3_C = new ItemHolder(4481, 1); // Greater Dye of STR
- private static final ItemHolder DYE_S1D3_C = new ItemHolder(4482, 1); // Greater Dye of STR
- private static final ItemHolder DYE_C1S3_C = new ItemHolder(4483, 1); // Greater Dye of CON
- private static final ItemHolder DYE_C1C3_C = new ItemHolder(4484, 1); // Greater Dye of CON
- private static final ItemHolder DYE_D1S3_C = new ItemHolder(4485, 1); // Greater Dye of DEX
- private static final ItemHolder DYE_D1C3_C = new ItemHolder(4486, 1); // Greater Dye of DEX
- private static final ItemHolder DYE_I1M3_C = new ItemHolder(4487, 1); // Greater Dye of INT
- private static final ItemHolder DYE_I1W3_C = new ItemHolder(4488, 1); // Greater Dye of INT
- private static final ItemHolder DYE_M1I3_C = new ItemHolder(4489, 1); // Greater Dye of MEN
- private static final ItemHolder DYE_M1W3_C = new ItemHolder(4490, 1); // Greater Dye of MEN
- private static final ItemHolder DYE_W1I3_C = new ItemHolder(4491, 1); // Greater Dye of WIT
- private static final ItemHolder DYE_W1M3_C = new ItemHolder(4492, 1); // Greater Dye of WIT
-
- public Q00383_TreasureHunt()
- {
- super(383, Q00383_TreasureHunt.class.getSimpleName(), "Treasure Hunt");
- addStartNpc(ESPEN);
- addTalkId(ESPEN, PIRATES_CHEST);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState qs = getQuestState(player, false);
- if (qs == null)
- {
- return null;
- }
-
- String htmltext = null;
- switch (event)
- {
- case "30890-04.htm":
- {
- htmltext = event;
- break;
- }
- case "30890-05.htm":
- {
- if (hasQuestItems(player, PIRATES_TREASURE_MAP))
- {
- giveAdena(player, 1000, false);
- takeItems(player, PIRATES_TREASURE_MAP, -1);
- htmltext = event;
- }
- break;
- }
- case "30890-06.htm":
- {
- htmltext = (hasQuestItems(player, PIRATES_TREASURE_MAP)) ? event : "30890-12.html";
- break;
- }
- case "30890-07.htm":
- {
- if (hasQuestItems(player, PIRATES_TREASURE_MAP))
- {
- qs.startQuest();
- takeItems(player, PIRATES_TREASURE_MAP, -1);
- htmltext = event;
- }
- break;
- }
- case "30890-08.html":
- case "30890-09.html":
- case "30890-10.html":
- {
- if (qs.isCond(1))
- {
- htmltext = event;
- }
- break;
- }
- case "30890-11.html":
- {
- if (qs.isCond(1))
- {
- qs.setCond(2, true);
- htmltext = event;
- }
- break;
- }
- case "31148-02.html":
- {
- if (qs.isCond(2))
- {
- if (hasQuestItems(player, THIEF_KEY))
- {
- takeItems(player, THIEF_KEY, -1);
- qs.exitQuest(true, true);
- htmltext = event;
-
- int bonus = 0;
- int random = getRandom(100);
-
- if (random < 5)
- {
- rewardItems(player, MITHRIL_GLOVES);
- }
- else if (random < 6)
- {
- rewardItems(player, SAGES_WORN_GLOVES);
- }
- else if (random < 18)
- {
- rewardItems(player, SCROLL_ENCHANT_ARMOR_D);
- }
- else if (random < 28)
- {
- rewardItems(player, SCROLL_ENCHANT_ARMOR_C);
- }
- else
- {
- bonus += 500;
- }
-
- random = getRandom(1000);
-
- if (random < 25)
- {
- rewardItems(player, DYE_S1C3_C);
- }
- else if (random < 50)
- {
- rewardItems(player, DYE_S1D3_C);
- }
- else if (random < 75)
- {
- rewardItems(player, DYE_C1S3_C);
- }
- else if (random < 100)
- {
- rewardItems(player, DYE_C1C3_C);
- }
- else if (random < 125)
- {
- rewardItems(player, DYE_D1S3_C);
- }
- else if (random < 150)
- {
- rewardItems(player, DYE_D1C3_C);
- }
- else if (random < 175)
- {
- rewardItems(player, DYE_I1M3_C);
- }
- else if (random < 200)
- {
- rewardItems(player, DYE_I1W3_C);
- }
- else if (random < 225)
- {
- rewardItems(player, DYE_M1I3_C);
- }
- else if (random < 250)
- {
- rewardItems(player, DYE_M1W3_C);
- }
- else if (random < 275)
- {
- rewardItems(player, DYE_W1I3_C);
- }
- else if (random < 300)
- {
- rewardItems(player, DYE_W1M3_C);
- }
- else
- {
- bonus += 300;
- }
-
- random = getRandom(100);
-
- if (random < 4)
- {
- rewardItems(player, EMERALD);
- }
- else if (random < 8)
- {
- rewardItems(player, BLUE_ONYX);
- }
- else if (random < 12)
- {
- rewardItems(player, ONYX);
- }
- else if (random < 16)
- {
- rewardItems(player, MOONSTONE);
- }
- else if (random < 20)
- {
- rewardItems(player, ALEXANDRITE);
- }
- else if (random < 25)
- {
- rewardItems(player, FIRE_EMERALD);
- }
- else if (random < 27)
- {
- rewardItems(player, IMPERIAL_DIAMOND);
- }
- else
- {
- bonus += 500;
- }
-
- random = getRandom(100);
-
- if (random < 20)
- {
- rewardItems(player, MUSICAL_SCORE_THEME_OF_LOVE);
- }
- else if (random < 40)
- {
- rewardItems(player, MUSICAL_SCORE_THEME_OF_BATTLE);
- }
- else if (random < 60)
- {
- rewardItems(player, MUSICAL_SCORE_THEME_OF_CELEBRATION);
- }
- else if (random < 80)
- {
- rewardItems(player, MUSICAL_SCORE_THEME_OF_COMEDY);
- }
- else
- {
- bonus += 500;
- }
-
- giveAdena(player, bonus, true);
- }
- else
- {
- htmltext = "31148-03.html";
- }
- }
- break;
- }
- }
- return htmltext;
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- final QuestState qs = getQuestState(player, true);
- String htmltext = getNoQuestMsg(player);
- if (qs.isCreated())
- {
- if (player.getLevel() < MIN_LEVEL)
- {
- htmltext = "30890-01.html";
- }
- else if (!hasQuestItems(player, PIRATES_TREASURE_MAP))
- {
- htmltext = "30890-02.html";
- }
- else
- {
- htmltext = "30890-03.htm";
- }
- }
- else if (qs.isStarted())
- {
- if (npc.getId() == ESPEN)
- {
- if (qs.isCond(1))
- {
- htmltext = "30890-13.html";
- }
- else if (qs.isCond(2))
- {
- htmltext = "30890-14.html";
- }
- }
- else
- {
- if (qs.isCond(2))
- {
- htmltext = "31148-01.html";
- }
- }
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00420_LittleWing/Q00420_LittleWing.java b/trunk/dist/game/data/scripts/quests/Q00420_LittleWing/Q00420_LittleWing.java
index 9df5812ed9..e78b6a319c 100644
--- a/trunk/dist/game/data/scripts/quests/Q00420_LittleWing/Q00420_LittleWing.java
+++ b/trunk/dist/game/data/scripts/quests/Q00420_LittleWing/Q00420_LittleWing.java
@@ -23,6 +23,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.enums.QuestSound;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
@@ -30,7 +31,6 @@ import com.l2jserver.gameserver.model.quest.Quest;
import com.l2jserver.gameserver.model.quest.QuestState;
import com.l2jserver.gameserver.model.quest.State;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.NpcSay;
/**
@@ -424,7 +424,7 @@ public final class Q00420_LittleWing extends Quest
{
takeItems(attacker, DELUXE_FAIRY_STONE, -1);
qs.playSound(QuestSound.ITEMSOUND_QUEST_MIDDLE);
- npc.broadcastPacket(new NpcSay(npc, Say2.NPC_ALL, NpcStringId.THE_STONE_THE_ELVEN_STONE_BROKE));
+ npc.broadcastPacket(new NpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.THE_STONE_THE_ELVEN_STONE_BROKE));
}
return super.onAttack(npc, attacker, damage, isSummon);
}
diff --git a/trunk/dist/game/data/scripts/quests/Q00421_LittleWingsBigAdventure/Q00421_LittleWingsBigAdventure.java b/trunk/dist/game/data/scripts/quests/Q00421_LittleWingsBigAdventure/Q00421_LittleWingsBigAdventure.java
index fc2e8e74dd..35c865a150 100644
--- a/trunk/dist/game/data/scripts/quests/Q00421_LittleWingsBigAdventure/Q00421_LittleWingsBigAdventure.java
+++ b/trunk/dist/game/data/scripts/quests/Q00421_LittleWingsBigAdventure/Q00421_LittleWingsBigAdventure.java
@@ -22,6 +22,7 @@ import java.util.HashMap;
import java.util.Map;
import com.l2jserver.gameserver.ai.CtrlIntention;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.enums.QuestSound;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.L2Summon;
@@ -32,7 +33,6 @@ import com.l2jserver.gameserver.model.quest.Quest;
import com.l2jserver.gameserver.model.quest.QuestState;
import com.l2jserver.gameserver.model.quest.State;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.NpcSay;
import com.l2jserver.gameserver.util.Util;
@@ -401,7 +401,7 @@ public final class Q00421_LittleWingsBigAdventure extends Quest
{
if (hasQuestItems(attacker, FAIRY_LEAF))
{
- npc.broadcastPacket(new NpcSay(npc, Say2.NPC_ALL, NpcStringId.GIVE_ME_A_FAIRY_LEAF));
+ npc.broadcastPacket(new NpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.GIVE_ME_A_FAIRY_LEAF));
takeItems(attacker, FAIRY_LEAF, 1);
qs.setMemoState(qs.getMemoState() + data.memoStateValue);
qs.unset("hits");
@@ -420,13 +420,13 @@ public final class Q00421_LittleWingsBigAdventure extends Quest
switch (getRandom(3))
{
case 0:
- npc.broadcastPacket(new NpcSay(npc, Say2.NPC_ALL, NpcStringId.WHY_DO_YOU_BOTHER_ME_AGAIN));
+ npc.broadcastPacket(new NpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.WHY_DO_YOU_BOTHER_ME_AGAIN));
break;
case 1:
- npc.broadcastPacket(new NpcSay(npc, Say2.NPC_ALL, data.message));
+ npc.broadcastPacket(new NpcSay(npc, ChatType.NPC_GENERAL, data.message));
break;
case 2:
- npc.broadcastPacket(new NpcSay(npc, Say2.NPC_ALL, NpcStringId.LEAVE_NOW_BEFORE_YOU_INCUR_THE_WRATH_OF_THE_GUARDIAN_GHOST));
+ npc.broadcastPacket(new NpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.LEAVE_NOW_BEFORE_YOU_INCUR_THE_WRATH_OF_THE_GUARDIAN_GHOST));
break;
}
}
diff --git a/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-00.html b/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-00.html
deleted file mode 100644
index cc8addcfdb..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-00.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Gatekeeper Batracos:
-You look too inexperienced to make a journey to Tanta Seer Ugoros. Convince Secondary Commander Johnny, then you can go. Johnny has been everywhere and done everything, and I still like him! His approval is good enough for me.
-(There is no quest that is being carried out.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-01.html b/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-01.html
deleted file mode 100644
index 406f06a4db..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-01.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Gatekeeper Batracos:
-There's something about this place, an unescapable feeling of peace. I used to know that feeling very well here. Unfortunately, the truth behind my people's past keeps me from enjoying that feeling anymore. You see, the Plains have been showered with the blood of my people. In the wake of Antharas' death, we struggled for this land, bloodlust fueling brother against brother, father against son. It was the Seer who united the new tribe of Tanta to defeat the Leto. He is known amongst my people as a great leader, but he also kills any who oppose him.
-I can't just sit back and watch anymore. But I won't send someone to be slaughtered either. I must know you can handle Ugoros in battle!
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-02.html b/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-02.html
deleted file mode 100644
index 1b325e1fdd..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-02.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Gatekeeper Batracos:
-Secondary Commander Johnny sent you? Odd, he said nothing to me.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-03.html b/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-03.html
deleted file mode 100644
index df168d6068..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Gatekeeper Batracos:
-You look too inexperienced to make a journey to see Tanta Seer Ugoros. If you can convince Chief Investigator Johnny that you should go, then I will let you pass. Johnny has been everywhere and done everything. He may not be of my people but he has my respect, and anyone who has his will in turn have mine as well.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-04.html b/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-04.html
deleted file mode 100644
index f8d3eca896..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-04.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Gatekeeper Batracos:
-What kept you?? Secondary Commander Johnny already notified me! Here, this is Approval from Johnny.
-When you want to go to Tanta Seer Ugoros, just talk to me. Easy, eh?
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-05.html b/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-05.html
deleted file mode 100644
index a92ec74fca..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-05.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Gatekeeper Batracos:
-Well, you still look soft to me, but Johnny gave you his Approval. That's good enough for me.. ready for Tanta Seer Ugoros? Or are you just going to stand there all day..
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-ugoros.html b/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-ugoros.html
deleted file mode 100644
index 9471c97600..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740-ugoros.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Gatekeeper Batracos:
-Magnificent! You have defeated the Seer. I must admin, you are tougher than you look. But we must celebrate elsewhere - the poisons of Ugoros still linger here.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740.html b/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740.html
deleted file mode 100644
index 5513880a2b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32740.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Gatekeeper Batracos:
-Welcome. These are the tribal lands of the Seer Uguros of Tanta. I, the Gatekeeper Batracos, decide who is able to see the seer and who does not. Judging by the looks of you, I have some advice - turn back and keep your life. That shiny armor won't protect you here.
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-00.htm b/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-00.htm
deleted file mode 100644
index 3dc85ba686..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-00.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Chief Investigator Johnny:
-Don't stick your nose where it doesn't belong. Have a little respect.
-(This quest is for character levels 82 or over that have completed Poisoned Plains of the Lizardmen.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-01.htm b/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-01.htm
deleted file mode 100644
index 31d6b8a1ca..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-01.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Chief Investigator Johnny:
-I'm a busy guy. Get to the point. I ain't getting any younger.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-02.html b/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-02.html
deleted file mode 100644
index dd07ca0d4e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-02.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Chief Investigator Johnny:
-You really want to see Ugoros? Just forget about it. Not just anyone can go there, and certainly not just any time they like. I know a guy, goes by Gatekeeper Batracos, a stinky meticulous fellow. He can get you to see the Seer. He'd never let in a gutterpup like you, but if he knew you had my respect, it might be a different story.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-03.htm b/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-03.htm
deleted file mode 100644
index 2568f7dc78..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-03.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Chief Investigator Johnny:
-Objectivity is important when it comes to this kind of thing. I don't respect just anyone - I have clear standards. Here's the deal:
-Tanta Lizardmen live in the Plains. Start killing them off and the Tanta Lizardmen Guards will start to show up. If you can manage to take out some of those guards, you've got my respect, without even a word. How about that? You in?
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-04.htm b/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-04.htm
deleted file mode 100644
index 5bf76cfc79..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-04.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Chief Investigator Johnny:
-Okay. You're straightforward. I can dig.
-Like I said, you gotta defeat some Tanta Lizardmen Guards, then go see Gatekeeper Batracos and tell him that I sent you. He will bring you to see Tanta Seer Ugoros. You don't even gotta come back here if you don't want. Alright? Later.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-05.html b/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-05.html
deleted file mode 100644
index 4bc061d528..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-05.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Chief Investigator Johnny:
-Ain't defeated a Tanta Lizardmen Guard yet? All talk and no show, huh? I've met your type before.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-06.html b/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-06.html
deleted file mode 100644
index b331997464..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-06.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Chief Investigator Johnny:
-I gotta say, you whipped those Tanta Lizardmen Guards like tired mules. You said you were strong, but you managed to show the muscle behind the words. Not sure why you came back though - like I said, I already told Batracos about you. He's waiting.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-07.htm b/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-07.htm
deleted file mode 100644
index 6b5706010f..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-07.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Chief Investigator Johnny:
-Hey hey, tough guy! You made it! Seems like you haven't met Tanta Seer Ugoros yet. Good luck when you do, haha!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-quit.html b/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-quit.html
deleted file mode 100644
index 906e3eed0c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/32744-quit.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Chief Investigator Johnny:
-Yeah, whatever dude. Everyone's got their limits, and clearly you don't have what it takes. Later.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/Q00423_TakeYourBestShot.java b/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/Q00423_TakeYourBestShot.java
deleted file mode 100644
index f92a879ffa..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/Q00423_TakeYourBestShot.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00423_TakeYourBestShot;
-
-import quests.Q00249_PoisonedPlainsOfTheLizardmen.Q00249_PoisonedPlainsOfTheLizardmen;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-
-/**
- * Take Your Best Shot (423)
- * @author Gnacik
- * @version 2010-06-26 Based on official server Franz
- */
-public class Q00423_TakeYourBestShot extends Quest
-{
- // NPCs
- private static final int BATRACOS = 32740;
- private static final int JOHNNY = 32744;
-
- // Monster
- private static final int TANTA_GUARD = 18862;
-
- // Item
- private static final int SEER_UGOROS_PASS = 15496;
-
- // Misc
- private static final int MIN_LEVEL = 82;
-
- public Q00423_TakeYourBestShot()
- {
- super(423, Q00423_TakeYourBestShot.class.getSimpleName(), "Take Your Best Shot!");
- addStartNpc(JOHNNY, BATRACOS);
- addTalkId(JOHNNY, BATRACOS);
- addFirstTalkId(BATRACOS);
- addKillId(TANTA_GUARD);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return null;
- }
-
- String htmltext = event;
- switch (event)
- {
- case "32740.html":
- case "32740-01.html":
- case "32744-02.html":
- case "32744-03.htm":
- break;
- case "32744-04.htm":
- st.startQuest();
- break;
- case "32744-quit.html":
- st.exitQuest(true);
- break;
- default:
- htmltext = null;
- break;
- }
- return htmltext;
- }
-
- @Override
- public String onFirstTalk(L2Npc npc, L2PcInstance player)
- {
- if (npc.isInsideRadius(96782, 85918, 0, 100, false, true))
- {
- return "32740-ugoros.html";
- }
- return "32740.html";
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
- {
- final QuestState st = getQuestState(killer, false);
- if ((st != null) && st.isCond(1))
- {
- st.setCond(2, true);
- }
- return super.onKill(npc, killer, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, true);
- String htmltext = getNoQuestMsg(player);
- if (st == null)
- {
- return htmltext;
- }
-
- switch (npc.getId())
- {
- case JOHNNY:
- switch (st.getState())
- {
- case State.CREATED:
- final QuestState _prev = player.getQuestState(Q00249_PoisonedPlainsOfTheLizardmen.class.getSimpleName());
- if ((_prev != null) && _prev.isCompleted() && (player.getLevel() >= MIN_LEVEL))
- {
- htmltext = (st.hasQuestItems(SEER_UGOROS_PASS)) ? "32744-07.htm" : "32744-01.htm";
- }
- else
- {
- htmltext = "32744-00.htm";
- }
- break;
- case State.STARTED:
- if (st.isCond(1))
- {
- htmltext = "32744-05.html";
- }
- else if (st.isCond(2))
- {
- htmltext = "32744-06.html";
- }
- break;
- }
- break;
- case BATRACOS:
- switch (st.getState())
- {
- case State.CREATED:
- htmltext = (st.hasQuestItems(SEER_UGOROS_PASS)) ? "32740-05.html" : "32740-00.html";
- break;
- case State.STARTED:
- if (st.isCond(1))
- {
- htmltext = "32740-02.html";
- }
- else if (st.isCond(2))
- {
- st.giveItems(SEER_UGOROS_PASS, 1);
- st.exitQuest(true, true);
- htmltext = "32740-04.html";
- }
- break;
- }
- }
- return htmltext;
- }
-}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00450_GraveRobberRescue/Q00450_GraveRobberRescue.java b/trunk/dist/game/data/scripts/quests/Q00450_GraveRobberRescue/Q00450_GraveRobberRescue.java
index 5885201714..e677cc0c15 100644
--- a/trunk/dist/game/data/scripts/quests/Q00450_GraveRobberRescue/Q00450_GraveRobberRescue.java
+++ b/trunk/dist/game/data/scripts/quests/Q00450_GraveRobberRescue/Q00450_GraveRobberRescue.java
@@ -19,6 +19,7 @@
package quests.Q00450_GraveRobberRescue;
import com.l2jserver.gameserver.ai.CtrlIntention;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.enums.QuestSound;
import com.l2jserver.gameserver.enums.QuestType;
import com.l2jserver.gameserver.model.Location;
@@ -29,7 +30,6 @@ import com.l2jserver.gameserver.model.quest.Quest;
import com.l2jserver.gameserver.model.quest.QuestState;
import com.l2jserver.gameserver.model.quest.State;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.NpcSay;
/**
@@ -153,11 +153,11 @@ public class Q00450_GraveRobberRescue extends Quest
{
if (getRandom(100) < 50)
{
- npc.broadcastPacket(new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npc.getId(), NpcStringId.GRUNT_OH));
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.GRUNT_OH));
}
else
{
- npc.broadcastPacket(new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npc.getId(), NpcStringId.GRUNT_WHAT_S_WRONG_WITH_ME));
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.GRUNT_WHAT_S_WRONG_WITH_ME));
}
npc.deleteMe();
htmltext = null;
diff --git a/trunk/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java b/trunk/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java
index d3978174da..1dffd3c5c0 100644
--- a/trunk/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java
+++ b/trunk/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java
@@ -24,6 +24,7 @@ import java.util.Map;
import java.util.Set;
import com.l2jserver.gameserver.datatables.ItemTable;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.enums.QuestSound;
import com.l2jserver.gameserver.enums.QuestType;
import com.l2jserver.gameserver.model.AggroInfo;
@@ -37,7 +38,6 @@ import com.l2jserver.gameserver.model.quest.Quest;
import com.l2jserver.gameserver.model.quest.QuestState;
import com.l2jserver.gameserver.model.quest.State;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.NpcSay;
import com.l2jserver.gameserver.util.Util;
@@ -354,7 +354,7 @@ public final class Q00456_DontKnowDontCare extends Quest
giveItems(player, reward, count);
L2Item item = ItemTable.getInstance().getTemplate(reward);
- NpcSay packet = new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npc.getId(), NpcStringId.S1_RECEIVED_A_S2_ITEM_AS_A_REWARD_FROM_THE_SEPARATED_SOUL);
+ NpcSay packet = new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.S1_RECEIVED_A_S2_ITEM_AS_A_REWARD_FROM_THE_SEPARATED_SOUL);
packet.addStringParameter(player.getName());
packet.addStringParameter(item.getName());
npc.broadcastPacket(packet);
diff --git a/trunk/dist/game/data/scripts/quests/Q00457_LostAndFound/Q00457_LostAndFound.java b/trunk/dist/game/data/scripts/quests/Q00457_LostAndFound/Q00457_LostAndFound.java
index 5738366b4c..7296e753d9 100644
--- a/trunk/dist/game/data/scripts/quests/Q00457_LostAndFound/Q00457_LostAndFound.java
+++ b/trunk/dist/game/data/scripts/quests/Q00457_LostAndFound/Q00457_LostAndFound.java
@@ -22,6 +22,7 @@ import java.util.Set;
import com.l2jserver.gameserver.ai.CtrlIntention;
import com.l2jserver.gameserver.datatables.SpawnTable;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.enums.QuestType;
import com.l2jserver.gameserver.model.L2Spawn;
import com.l2jserver.gameserver.model.actor.L2Npc;
@@ -30,7 +31,6 @@ import com.l2jserver.gameserver.model.quest.Quest;
import com.l2jserver.gameserver.model.quest.QuestState;
import com.l2jserver.gameserver.model.quest.State;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
import com.l2jserver.gameserver.network.serverpackets.NpcSay;
@@ -147,7 +147,7 @@ public final class Q00457_LostAndFound extends Quest
startQuestTimer("STOP", 1000, npc, player);
startQuestTimer("BYE", 3000, npc, player);
cancelQuestTimer("CHECK", npc, player);
- npc.broadcastPacket(new CreatureSay(npc.getObjectId(), Say2.NPC_ALL, npc.getName(), NpcStringId.AH_FRESH_AIR));
+ npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), NpcStringId.AH_FRESH_AIR));
broadcastNpcSay(npc, player, NpcStringId.AH_FRESH_AIR, false);
st.giveItems(PACKAGED_BOOK, 1);
st.exitQuest(QuestType.DAILY, true);
@@ -246,6 +246,6 @@ public final class Q00457_LostAndFound extends Quest
public void broadcastNpcSay(L2Npc npc, L2PcInstance player, NpcStringId stringId, boolean whisper)
{
- ((whisper) ? player : npc).sendPacket(new NpcSay(npc.getObjectId(), ((whisper) ? Say2.TELL : Say2.ALL), npc.getId(), stringId));
+ ((whisper) ? player : npc).sendPacket(new NpcSay(npc.getObjectId(), ((whisper) ? ChatType.TELL : ChatType.NPC_GENERAL), npc.getId(), stringId));
}
}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00461_RumbleInTheBase/30200-01.htm b/trunk/dist/game/data/scripts/quests/Q00461_RumbleInTheBase/30200-01.htm
deleted file mode 100644
index 515fa75650..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00461_RumbleInTheBase/30200-01.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Guard Stan:
-You've seen Sel Mahums train? It's impressive, isn't it. Pinaps fears they are becoming too powerful. He doesn't know what to do. But I do...
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00461_RumbleInTheBase/30200-02.htm b/trunk/dist/game/data/scripts/quests/Q00461_RumbleInTheBase/30200-02.htm
deleted file mode 100644
index a538387fac..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00461_RumbleInTheBase/30200-02.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Guard Stan:
-Have you talked to Pinaps? He's worried about all the training going on at the Sel Mahum's camp. If he'd only ask me, I'd tell him how to solve it. But the ideas and opinions of guards are often overlooked, such is life.
-(Only character level 82 or above who have completed It Smells Delicious can take this quest.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00461_RumbleInTheBase/30200-03.htm b/trunk/dist/game/data/scripts/quests/Q00461_RumbleInTheBase/30200-03.htm
deleted file mode 100644
index 44de1eec70..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00461_RumbleInTheBase/30200-03.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Guard Stan:
-Thanks for your hard work. Today Pinaps doesn't have to worry anymore. Worrying just shaves time off your life, makes you wrinkly, and causes gas. A true friend will put up with all that to help take some of the stress away. True friends also bring salmon soup.
-(You can take on this quest once per day, starting at 6:30 am.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00461_RumbleInTheBase/30200-04.htm b/trunk/dist/game/data/scripts/quests/Q00461_RumbleInTheBase/30200-04.htm
deleted file mode 100644
index a438df1956..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00461_RumbleInTheBase/30200-04.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Guard Stan:
-Strength in battle comes from your stomach. Big swords, lots of training, all worthless compared to a belly fully of good food. Hey, can you tell Pinaps not to worry about me? That would be swell.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00461_RumbleInTheBase/30200-05.htm b/trunk/dist/game/data/scripts/quests/Q00461_RumbleInTheBase/30200-05.htm
deleted file mode 100644
index f4f3254eac..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00461_RumbleInTheBase/30200-05.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Guard Stan:
-I've pretty much established at this point that the Sel Mahum draw their fierce power in battle from their delicious Salmon Soup. I cannot allow this. Take salmon from the Sel Mahum Chefs, so that Sel Mahums will know the suffering of life without tasty salmon soup!
-Then remove the shoelaces from dazed Sel Mahums because that is just fun. Teach them for tempting me with their tasty soup!
-How about it? Scared? Keep your eye on the soup.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00461_RumbleInTheBase/30200-06.html b/trunk/dist/game/data/scripts/quests/Q00461_RumbleInTheBase/30200-06.html
deleted file mode 100644
index 4b48debc69..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00461_RumbleInTheBase/30200-06.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Guard Stan:
-What is it? Pinaps is over there. See the face he's making? That means he is thinking real hard, or he forgot what he was doing.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00461_RumbleInTheBase/30200-07.html b/trunk/dist/game/data/scripts/quests/Q00461_RumbleInTheBase/30200-07.html
deleted file mode 100644
index f0907037c7..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00461_RumbleInTheBase/30200-07.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Guard Stan:
-Thank you! I'll certainly tell Pinaps about you. That's what friends are for, right?
-That was fun. We could stop Sel Mahums from training everyday! Okay, I'm getting hungry... time for soup.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00461_RumbleInTheBase/Q00461_RumbleInTheBase.java b/trunk/dist/game/data/scripts/quests/Q00461_RumbleInTheBase/Q00461_RumbleInTheBase.java
deleted file mode 100644
index 344790700b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00461_RumbleInTheBase/Q00461_RumbleInTheBase.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00461_RumbleInTheBase;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import quests.Q00252_ItSmellsDelicious.Q00252_ItSmellsDelicious;
-
-import com.l2jserver.gameserver.enums.QuestSound;
-import com.l2jserver.gameserver.enums.QuestType;
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-
-/**
- * Rumble in the Base (461)
- * @author malyelfik
- */
-public class Q00461_RumbleInTheBase extends Quest
-{
- // NPC
- private static final int STAN = 30200;
- // Items
- private static final int SHINY_SALMON = 15503;
- private static final int SHOES_STRING_OF_SEL_MAHUM = 16382;
- // Mobs
- private static final Map MONSTERS = new HashMap<>();
-
- static
- {
- MONSTERS.put(22780, 581);
- MONSTERS.put(22781, 772);
- MONSTERS.put(22782, 581);
- MONSTERS.put(22783, 563);
- MONSTERS.put(22784, 581);
- MONSTERS.put(22785, 271);
- MONSTERS.put(18908, 782);
- }
-
- public Q00461_RumbleInTheBase()
- {
- super(461, Q00461_RumbleInTheBase.class.getSimpleName(), "Rumble in the Base");
- addStartNpc(STAN);
- addTalkId(STAN);
- addKillId(MONSTERS.keySet());
- registerQuestItems(SHINY_SALMON, SHOES_STRING_OF_SEL_MAHUM);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- String htmltext = null;
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return htmltext;
- }
-
- if (event.equalsIgnoreCase("30200-05.htm"))
- {
- st.startQuest();
- htmltext = event;
- }
- else if (event.equalsIgnoreCase("30200-04.htm"))
- {
- htmltext = event;
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
- {
- QuestState st = null;
- if (getRandom(1000) >= MONSTERS.get(npc.getId()))
- {
- return super.onKill(npc, player, isSummon);
- }
-
- if (npc.getId() == 18908)
- {
- st = getQuestState(player, false);
- if ((st != null) && st.isCond(1) && (st.getQuestItemsCount(SHINY_SALMON) < 5))
- {
- st.giveItems(SHINY_SALMON, 1);
- st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
- if ((st.getQuestItemsCount(SHINY_SALMON) >= 5) && (st.getQuestItemsCount(SHOES_STRING_OF_SEL_MAHUM) >= 10))
- {
- st.setCond(2, true);
- }
- }
- }
- else
- {
- final L2PcInstance member = getRandomPartyMember(player, 1);
- if (member == null)
- {
- return super.onKill(npc, player, isSummon);
- }
-
- st = getQuestState(member, false);
- if (st.getQuestItemsCount(SHOES_STRING_OF_SEL_MAHUM) < 10)
- {
- st.giveItems(SHOES_STRING_OF_SEL_MAHUM, 1);
- st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
- if ((st.getQuestItemsCount(SHINY_SALMON) >= 5) && (st.getQuestItemsCount(SHOES_STRING_OF_SEL_MAHUM) >= 10))
- {
- st.setCond(2, true);
- }
- }
- }
- return super.onKill(npc, player, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- String htmltext = getNoQuestMsg(player);
- final QuestState st = getQuestState(player, true);
- if (st == null)
- {
- return htmltext;
- }
-
- final QuestState prev = player.getQuestState(Q00252_ItSmellsDelicious.class.getSimpleName());
- switch (st.getState())
- {
- case State.CREATED:
- htmltext = ((player.getLevel() >= 82) && (prev != null) && prev.isCompleted()) ? "30200-01.htm" : "30200-02.htm";
- break;
- case State.STARTED:
- if (st.isCond(1))
- {
- htmltext = "30200-06.html";
- }
- else
- {
- st.addExpAndSp(224784, 342528);
- st.exitQuest(QuestType.DAILY, true);
- htmltext = "30200-07.html";
- }
- break;
- case State.COMPLETED:
- if (!st.isNowAvailable())
- {
- htmltext = "30200-03.htm";
- }
- else
- {
- st.setState(State.CREATED);
- htmltext = ((player.getLevel() >= 82) && (prev != null) && (prev.getState() == State.COMPLETED)) ? "30200-01.htm" : "30200-02.htm";
- }
- break;
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00463_IMustBeaGenius/Q00463_IMustBeaGenius.java b/trunk/dist/game/data/scripts/quests/Q00463_IMustBeaGenius/Q00463_IMustBeaGenius.java
index a89d20c726..d5b8ea540c 100644
--- a/trunk/dist/game/data/scripts/quests/Q00463_IMustBeaGenius/Q00463_IMustBeaGenius.java
+++ b/trunk/dist/game/data/scripts/quests/Q00463_IMustBeaGenius/Q00463_IMustBeaGenius.java
@@ -21,6 +21,7 @@ package quests.Q00463_IMustBeaGenius;
import java.util.HashMap;
import java.util.Map;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.enums.QuestSound;
import com.l2jserver.gameserver.enums.QuestType;
import com.l2jserver.gameserver.model.actor.L2Npc;
@@ -29,7 +30,6 @@ import com.l2jserver.gameserver.model.quest.Quest;
import com.l2jserver.gameserver.model.quest.QuestState;
import com.l2jserver.gameserver.model.quest.State;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.NpcSay;
/**
@@ -187,7 +187,7 @@ public class Q00463_IMustBeaGenius extends Quest
if (msg)
{
- final NpcSay ns = new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npc.getId(), NpcStringId.ATT_ATTACK_S1_RO_ROGUE_S2);
+ final NpcSay ns = new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.ATT_ATTACK_S1_RO_ROGUE_S2);
ns.addStringParameter(player.getName());
ns.addStringParameter(String.valueOf(number));
npc.broadcastPacket(ns);
diff --git a/trunk/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/Q00501_ProofOfClanAlliance.java b/trunk/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/Q00501_ProofOfClanAlliance.java
index 6e6f86dd08..b12ac649a1 100644
--- a/trunk/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/Q00501_ProofOfClanAlliance.java
+++ b/trunk/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/Q00501_ProofOfClanAlliance.java
@@ -22,6 +22,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.L2Clan;
import com.l2jserver.gameserver.model.Location;
import com.l2jserver.gameserver.model.actor.L2Character;
@@ -34,7 +35,6 @@ import com.l2jserver.gameserver.model.quest.QuestState;
import com.l2jserver.gameserver.model.quest.State;
import com.l2jserver.gameserver.model.skills.AbnormalType;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.NpcSay;
import com.l2jserver.gameserver.util.Util;
@@ -289,29 +289,29 @@ public final class Q00501_ProofOfClanAlliance extends Quest
if ((lqs.getInt("flag") == 3) && arthea.isScriptValue(15))
{
lqs.set("flag", lqs.getInt("flag") + 1);
- npc.broadcastPacket(new NpcSay(npc, Say2.NPC_ALL, NpcStringId.BINGO));
+ npc.broadcastPacket(new NpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.BINGO));
}
else if ((lqs.getInt("flag") == 2) && arthea.isScriptValue(14))
{
lqs.set("flag", lqs.getInt("flag") + 1);
- npc.broadcastPacket(new NpcSay(npc, Say2.NPC_ALL, NpcStringId.BINGO));
+ npc.broadcastPacket(new NpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.BINGO));
}
else if ((lqs.getInt("flag") == 1) && arthea.isScriptValue(13))
{
lqs.set("flag", lqs.getInt("flag") + 1);
- npc.broadcastPacket(new NpcSay(npc, Say2.NPC_ALL, NpcStringId.BINGO));
+ npc.broadcastPacket(new NpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.BINGO));
}
else if ((lqs.getInt("flag") == 0) && arthea.isScriptValue(12))
{
lqs.set("flag", lqs.getInt("flag") + 1);
- npc.broadcastPacket(new NpcSay(npc, Say2.NPC_ALL, NpcStringId.BINGO));
+ npc.broadcastPacket(new NpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.BINGO));
}
else if (lqs.getInt("flag") < 4)
{
if (getRandom(4) == 0)
{
lqs.set("flag", lqs.getInt("flag") + 1);
- npc.broadcastPacket(new NpcSay(npc, Say2.NPC_ALL, NpcStringId.BINGO));
+ npc.broadcastPacket(new NpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.BINGO));
}
}
arthea.setScriptValue(arthea.getScriptValue() + 1);
diff --git a/trunk/dist/game/data/scripts/quests/Q00601_WatchingEyes/31683-00.htm b/trunk/dist/game/data/scripts/quests/Q00601_WatchingEyes/31683-00.htm
deleted file mode 100644
index e588984788..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00601_WatchingEyes/31683-00.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Eye of Argos:
-My dear soldier, I'm grateful for your enthusiasm, but I'm afraid that you're not ready to face the wrath of Einhasad!
-(This quest may only be undertaken by characters of level 71 or above.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00601_WatchingEyes/31683-01.htm b/trunk/dist/game/data/scripts/quests/Q00601_WatchingEyes/31683-01.htm
deleted file mode 100644
index b5da7f2d2e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00601_WatchingEyes/31683-01.htm
+++ /dev/null
@@ -1,9 +0,0 @@
-Eye of Argos:
-Even after my friends, the giants, perished, and the gods tore my body asunder and imprisoned me here, I stayed quiet.
-Now, to add insult to injury, they've posted their disciples as guards to watch over me, to humiliate what's left of me! I can't stand it any more!
-I'm not as evil as you the children of the world think.
-On the contrary, I love peace!
-I beseech you! If I attack the guards I'll be severely tortured!
-Would you and your soldiers help me?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00601_WatchingEyes/31683-02.htm b/trunk/dist/game/data/scripts/quests/Q00601_WatchingEyes/31683-02.htm
deleted file mode 100644
index 67956bf04a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00601_WatchingEyes/31683-02.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Eye of Argos:
-Punish the wicked disciples and then return to me! They're called the Disciples of Protection, the Disciples of Punishment and the Disciples of Authority.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00601_WatchingEyes/31683-03.html b/trunk/dist/game/data/scripts/quests/Q00601_WatchingEyes/31683-03.html
deleted file mode 100644
index 4c7a4ecbb5..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00601_WatchingEyes/31683-03.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Eye of Argos:
-You haven't collected 100 marks of disciple yet?
-You must kill them to soothe my anger!
-Save me from my own fury, brave warrior!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00601_WatchingEyes/31683-04.html b/trunk/dist/game/data/scripts/quests/Q00601_WatchingEyes/31683-04.html
deleted file mode 100644
index fbb35c0984..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00601_WatchingEyes/31683-04.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Eye of Argos:
-Thanks to you, my brave soldier, the darkness in my heart is lifting! Give me the proofs you've collected.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00601_WatchingEyes/31683-05.html b/trunk/dist/game/data/scripts/quests/Q00601_WatchingEyes/31683-05.html
deleted file mode 100644
index a294686e39..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00601_WatchingEyes/31683-05.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Eye of Argos:
-Your scruffy appearance belies the passionate sense of justice in your heart, brave warrior!
-Good deeds often go unnoticed and unrewarded, but over the millennia, your simple good deed will be returned a thousand-fold!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00601_WatchingEyes/31683-06.html b/trunk/dist/game/data/scripts/quests/Q00601_WatchingEyes/31683-06.html
deleted file mode 100644
index 0566f2fc81..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00601_WatchingEyes/31683-06.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Eye of Argos:
-Weren't you going to bring me the marks of disciple?
-Now you're telling me you won't do it? How dare you insult the mighty Argos!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00601_WatchingEyes/Q00601_WatchingEyes.java b/trunk/dist/game/data/scripts/quests/Q00601_WatchingEyes/Q00601_WatchingEyes.java
deleted file mode 100644
index d60df399ab..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00601_WatchingEyes/Q00601_WatchingEyes.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00601_WatchingEyes;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.l2jserver.gameserver.enums.QuestSound;
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-
-/**
- * Watching Eyes (601)
- * Original Jython script by disKret.
- * @author malyelfik
- */
-public class Q00601_WatchingEyes extends Quest
-{
- // NPC
- private static final int EYE_OF_ARGOS = 31683;
- // Item
- private static final int PROOF_OF_AVENGER = 7188;
- // Monsters
- private static final Map MOBS = new HashMap<>();
-
- static
- {
- MOBS.put(21308, 790);
- MOBS.put(21309, 820);
- MOBS.put(21306, 850);
- MOBS.put(21310, 680);
- MOBS.put(21311, 630);
- }
-
- // Reward
- private static final int[][] REWARD =
- {
- {
- 6699,
- 90000
- },
- {
- 6698,
- 80000
- },
- {
- 6700,
- 40000
- },
- {
- 0,
- 230000
- }
- };
-
- public Q00601_WatchingEyes()
- {
- super(601, Q00601_WatchingEyes.class.getSimpleName(), "Watching Eyes");
- addStartNpc(EYE_OF_ARGOS);
- addTalkId(EYE_OF_ARGOS);
- addKillId(MOBS.keySet());
- registerQuestItems(PROOF_OF_AVENGER);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, false);
-
- if (st == null)
- {
- return null;
- }
-
- String htmltext = event;
- switch (event)
- {
- case "31683-02.htm":
- st.startQuest();
- break;
- case "31683-05.html":
- if (st.getQuestItemsCount(PROOF_OF_AVENGER) < 100)
- {
- return "31683-06.html";
- }
-
- int i = getRandom(4);
- if (i < 3)
- {
- st.giveItems(REWARD[i][0], 5);
- st.addExpAndSp(120000, 10000);
- }
- st.giveAdena(REWARD[i][1], true);
- st.exitQuest(true, true);
- break;
- default:
- htmltext = null;
- break;
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
- {
- final QuestState st = getQuestState(player, false);
-
- if ((st != null) && st.isCond(1) && (getRandom(1000) < MOBS.get(npc.getId())))
- {
- st.giveItems(PROOF_OF_AVENGER, 1);
- if (st.getQuestItemsCount(PROOF_OF_AVENGER) == 100)
- {
- st.setCond(2, true);
- }
- else
- {
- st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
- }
- }
- return super.onKill(npc, player, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- String htmltext = getNoQuestMsg(player);
- final QuestState st = getQuestState(player, true);
-
- if (st == null)
- {
- return htmltext;
- }
-
- switch (st.getState())
- {
- case State.CREATED:
- htmltext = (player.getLevel() >= 71) ? "31683-01.htm" : "31683-00.htm";
- break;
- case State.STARTED:
- htmltext = (st.isCond(1)) ? "31683-03.html" : "31683-04.html";
- break;
- }
- return htmltext;
- }
-}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00602_ShadowOfLight/31683-00.htm b/trunk/dist/game/data/scripts/quests/Q00602_ShadowOfLight/31683-00.htm
deleted file mode 100644
index c8bcc11492..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00602_ShadowOfLight/31683-00.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Eye of Argos:
-Your courage is commendable, brave warrior, but you're not yet ready to confront Daimon and his evil forces. Improve your skills and come back!
-(This quest may only be undertaken by characters of level 68 or above.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00602_ShadowOfLight/31683-01.htm b/trunk/dist/game/data/scripts/quests/Q00602_ShadowOfLight/31683-01.htm
deleted file mode 100644
index 08f8bdfa6b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00602_ShadowOfLight/31683-01.htm
+++ /dev/null
@@ -1,10 +0,0 @@
-Eye of Argos:
-Long ago, when I still had a complete body, my 1000 eyes told me everything that occurred in the world. It was I who told Einhasad of the relationship between Shilen and Gran Kain. When Eva abdicated as the goddess of water and went into hiding, it was I who exposed her.
-But with the creation of the four races, the world became much too complex for me to watch everything that happened. I began opening only 500 of my eyes per day. This led to a sharp division within my personality.
-Half of my mind concentrated on darker events in the world - war, murder, betrayal and corruption. This part of my mind became dark and depressed, and longed to purge the rampant evil from the world.
-The other half of my mind focused on the brighter side of the world - love, art, courage and fealty.This part of my personality fell in love with all the noble things in the world.
-During the brutal war between gods and giants, I refused to disclose the hiding places of giants. Einhasad responded by ripping my body into pieces and pulling out my eyes! He then threw my remains into this valley. Slowly, my two largest eyes became aware of light and darkness. I am the eye that is conscious of light.
-Daimon the White-Eyed inherited the dark world view of Argos. He's determined to purify this world, and has brainwashed the monsters of this valley to help him realize his goal.
-Brave warrior! Help stop Daimon!
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00602_ShadowOfLight/31683-02.htm b/trunk/dist/game/data/scripts/quests/Q00602_ShadowOfLight/31683-02.htm
deleted file mode 100644
index 1857e277d9..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00602_ShadowOfLight/31683-02.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Eye of Argos:
-Your courage may yet save the world!
-Daimon the White-Eyed uses his underlings to transform monsters into slaves. Once they've been transformed, they're beyond redemption. Kill them so they can rest in peace.
-You can get the eyes of darkness if you kill Buffalo Slaves and Grendel Slaves. When you get 100 eyes of darkness, visit me again.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00602_ShadowOfLight/31683-03.html b/trunk/dist/game/data/scripts/quests/Q00602_ShadowOfLight/31683-03.html
deleted file mode 100644
index 50bb22010e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00602_ShadowOfLight/31683-03.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Eye of Argos:
-Why haven't you collected 100 eyes of darkness yet?
-Act quickly or Daimon will become much more dangerous and powerful!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00602_ShadowOfLight/31683-04.html b/trunk/dist/game/data/scripts/quests/Q00602_ShadowOfLight/31683-04.html
deleted file mode 100644
index f4f5b7e395..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00602_ShadowOfLight/31683-04.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Eye of Argos:
-Don't get too full of yourself, young warrior!
-Darkness grows stronger even as we speak!
-If you're truly concerned about the wellbeing of this world, defeat the forces of darkness!
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00602_ShadowOfLight/31683-05.html b/trunk/dist/game/data/scripts/quests/Q00602_ShadowOfLight/31683-05.html
deleted file mode 100644
index 1085b3235e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00602_ShadowOfLight/31683-05.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Eye of Argos:
-Your shouts of vengeance could be heard all the way over here! Excellent job, brave warrior!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00602_ShadowOfLight/31683-06.html b/trunk/dist/game/data/scripts/quests/Q00602_ShadowOfLight/31683-06.html
deleted file mode 100644
index 0cf008082e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00602_ShadowOfLight/31683-06.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Eye of Argos:
-No one can hide from the allseeing eye! Bring me 100 eyes of darkness!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00602_ShadowOfLight/Q00602_ShadowOfLight.java b/trunk/dist/game/data/scripts/quests/Q00602_ShadowOfLight/Q00602_ShadowOfLight.java
deleted file mode 100644
index 3d5b93be79..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00602_ShadowOfLight/Q00602_ShadowOfLight.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00602_ShadowOfLight;
-
-import com.l2jserver.gameserver.enums.QuestSound;
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-
-/**
- * Shadow of Light (602)
- * Original Jython script by disKret.
- * @author malyelfik
- */
-public class Q00602_ShadowOfLight extends Quest
-{
- // NPC
- private static final int EYE_OF_ARGOS = 31683;
- // Item
- private static final int EYE_OF_DARKNESS = 7189;
- // Monsters
- private static final int[] MOBS =
- {
- 21299,
- 21304
- };
-
- // Reward
- private static final int[][] REWARD =
- {
- {
- 6699,
- 40000,
- 120000,
- 20000
- },
- {
- 6698,
- 60000,
- 110000,
- 15000
- },
- {
- 6700,
- 40000,
- 150000,
- 10000
- },
- {
- 0,
- 100000,
- 140000,
- 11250
- }
- };
-
- public Q00602_ShadowOfLight()
- {
- super(602, Q00602_ShadowOfLight.class.getSimpleName(), "Shadow of Light");
- addStartNpc(EYE_OF_ARGOS);
- addTalkId(EYE_OF_ARGOS);
- addKillId(MOBS);
- registerQuestItems(EYE_OF_DARKNESS);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, false);
-
- if (st == null)
- {
- return null;
- }
-
- String htmltext = event;
- switch (event)
- {
- case "31683-02.htm":
- st.startQuest();
- break;
- case "31683-05.html":
- if (st.getQuestItemsCount(EYE_OF_DARKNESS) < 100)
- {
- return "31683-06.html";
- }
-
- int i = getRandom(4);
- if (i < 3)
- {
- st.giveItems(REWARD[i][0], 3);
- }
- st.giveAdena(REWARD[i][1], true);
- st.addExpAndSp(REWARD[i][2], REWARD[i][3]);
- st.exitQuest(true, true);
- break;
- default:
- htmltext = null;
- break;
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
- {
- final QuestState st = getQuestState(player, false);
-
- if (st == null)
- {
- return super.onKill(npc, player, isSummon);
- }
-
- int chance = (npc.getId() == MOBS[0]) ? 560 : 800;
-
- if (st.isCond(1) && (getRandom(1000) < chance))
- {
- st.giveItems(EYE_OF_DARKNESS, 1);
- if (st.getQuestItemsCount(EYE_OF_DARKNESS) == 100)
- {
- st.setCond(2, true);
- }
- else
- {
- st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
- }
- }
- return super.onKill(npc, player, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- String htmltext = getNoQuestMsg(player);
- final QuestState st = getQuestState(player, true);
-
- if (st == null)
- {
- return htmltext;
- }
-
- switch (st.getState())
- {
- case State.CREATED:
- htmltext = (player.getLevel() >= 68) ? "31683-01.htm" : "31683-00.htm";
- break;
- case State.STARTED:
- htmltext = (st.isCond(1)) ? "31683-03.html" : "31683-04.html";
- break;
- }
- return htmltext;
- }
-}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31548-01.html b/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31548-01.html
deleted file mode 100644
index 4778b4ed08..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31548-01.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Ancient Stone Tablet:
-Upon closer examination, you notice an inscription describing the exploits of the heroes who defeated Daimon the White-Eyed.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31548-02.html b/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31548-02.html
deleted file mode 100644
index c021aad27c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31548-02.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Ancient Stone Tablet:
-Daimon the White-Eyed's most formidable weapon is his magical ability to instantly render his victim totally immobile!
-[Illegible text]
-As you turn to leave, you hear something fall from the tablet. Upon closer examination, it proves to be a fragment of a mysterious bead.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31548-03.html b/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31548-03.html
deleted file mode 100644
index 17e8149195..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31548-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Ancient Stone Tablet:
-You've already read the inscription. Find another tablet.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31549-01.html b/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31549-01.html
deleted file mode 100644
index 9014a31067..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31549-01.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Ancient Stone Tablet:
-Upon closer examination, you notice an inscription describing the exploits of the heroes who defeated Daimon the White-Eyed.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31549-02.html b/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31549-02.html
deleted file mode 100644
index ff5bd136b0..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31549-02.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Ancient Stone Tablet:
-"The knight's necklace shone brightly. His strength had sustained him thus far against the powerful magic of Daimon the White-Eyed, and sensing victory, he slowly raised his head. Suddenly, from behind him came..."
-[Illegible text]
-As you turn to leave, you hear something fall to the floor... Upon close examination, you see that it is a fragment of a mysterious bead.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31549-03.html b/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31549-03.html
deleted file mode 100644
index 17e8149195..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31549-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Ancient Stone Tablet:
-You've already read the inscription. Find another tablet.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31550-01.html b/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31550-01.html
deleted file mode 100644
index 027f99b1b6..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31550-01.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Ancient Stone Tablet:
-Upon closer examination, you notice an inscription describing the exploits of the heroes who defeated Daimon the White-Eyed.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31550-02.html b/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31550-02.html
deleted file mode 100644
index 0aeb0d717f..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31550-02.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Mysterious Ancient Tablet:
-"Based on previous adventurers' experience, a fragment certainly exists that may be useful when confronting Daimon the White-Eyed. But even so, Daimon is...
-In that case, you may gather your strength and launch a focused attack, but that does not seem to be optimal. It is vital that his three henchmen be..."
-The rest of the tablet is too damaged to read.
-As you turn around, you suddenly hear the sound of something falling from the tablet. It's a mysterious bead fragment...
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31550-03.html b/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31550-03.html
deleted file mode 100644
index 17e8149195..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31550-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Ancient Stone Tablet:
-You've already read the inscription. Find another tablet.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31551-01.html b/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31551-01.html
deleted file mode 100644
index b5d5d51814..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31551-01.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Ancient Stone Tablet:
-Upon closer examination, you notice an inscription describing the exploits of the heroes who defeated Daimon the White-Eyed.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31551-02.html b/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31551-02.html
deleted file mode 100644
index 0fb92b2471..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31551-02.html
+++ /dev/null
@@ -1,8 +0,0 @@
-Ancient Stone Tablet:
-"Yeah, those three henchmen pose a problem...", said the warrior with the spear.
-The mage replied, "I agree. Especially the one that keeps restoring Daimon! I'll deal with that rascal myself!"
-The Dwarf girl softly said,
-"Someone's going to have to deal with Daimon. Who can do that? None of us are any match for his powers, even if we use the bead of summoning perfectly!"
-[Illegible text]
-As you turn to leave, you hear something fall from the tablet. Upon close examination, you find that it's a fragment of a mysterious bead.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31551-03.html b/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31551-03.html
deleted file mode 100644
index 17e8149195..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31551-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Ancient Stone Tablet:
-You've already read the inscription. Find another tablet.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31552-01.html b/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31552-01.html
deleted file mode 100644
index f54ae122eb..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31552-01.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Ancient Stone Tablet:
-Upon closer examination, you notice an inscription describing the exploits of the heroes who defeated Daimon the White-Eyed.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31552-02.html b/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31552-02.html
deleted file mode 100644
index 59ef4d297d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31552-02.html
+++ /dev/null
@@ -1,7 +0,0 @@
-Ancient Stone Tablet:
-The text describes the decisive battles against Daimon the White-Eyed.
-Past heroes used the bead of summoning to call out Daimon before he and his minions were ready.
-
-Now it all makes sense! You know how to defeat Daimon!
-As you stand thinking before the tablet, something falls to the ground.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31552-03.html b/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31552-03.html
deleted file mode 100644
index a235b5b288..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31552-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Ancient Stone Tablet:
-You've already read the inscription. Now that you've learned how to defeat Daimon the White-Eyed, go back to Eye of Argos.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31683-01.htm b/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31683-01.htm
deleted file mode 100644
index 2900c0a4d5..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31683-01.htm
+++ /dev/null
@@ -1,7 +0,0 @@
-Eye of Argos:
-Welcome, traveler!
-My eyes see justice, courage and wisdom within you!
-Our meeting is not mere coincidence, my brave young warrior!
-A trial awaits you. Will you accept the challenge?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31683-02.html b/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31683-02.html
deleted file mode 100644
index ec1be6d1ef..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31683-02.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Eye of Argos:
-I'm waiting for an adventurer with adequate skills and courage.
-(This quest may only be undertaken by characters of level 73 or above.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31683-03.htm b/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31683-03.htm
deleted file mode 100644
index e3af99ba77..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31683-03.htm
+++ /dev/null
@@ -1,7 +0,0 @@
-Eye of Argos:
-Do you know about Daimon the White-Eyed? When Einhasad ripped Argos apart and scattered the pieces throughout the land, I became the bright side of Argos and Daimon became the dark side.
-Daimon has been expanding his powerbase, spreading his evil influence even further. He dreams of expanding his reach globally, but each time, his efforts have been thwarted by heroes like you!
-Now, his force is spreading and his henchmen are wandering about in this land. Will you take up the fight against this demonic scourge?
-First, you must study the methods that past heroes used to stop him.
-You'll find stone tablets describing their accomplishments in several parts of this region. Read them and report back to me what you learn.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31683-04.html b/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31683-04.html
deleted file mode 100644
index 0d40e02c70..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31683-04.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Eye of Argos:
-Have you read all the inscriptions on the tablets? Daimon clouds my memory so that I can't remember the things about him. Thus, the only ways to defeat him are recorded on the tablets. They are left here and there throughout this area.
-But, Daimon's forces must have been destroying them. You don't have much time, my hero!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31683-05.html b/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31683-05.html
deleted file mode 100644
index 39642b1e64..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31683-05.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Eye of Argos:
-Oh, you came back!
-Did you find out how the heroes of the past defeated Daimon the White-Eyed?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31683-06.html b/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31683-06.html
deleted file mode 100644
index 6fa77c95d6..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31683-06.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Eye of Argos:
-The bead of summoning? Ah, yes, I haven't forgotten about that one yet! Good job, my hero!
-Now, you must make a bead of summoning! It has the power to summon him from the darkness. You must obtain 200 thoughts of darkness from valley Bandersnatch slaves, Buffalo Slaves and Grendel Slaves and bring them to me.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31683-07.html b/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31683-07.html
deleted file mode 100644
index 3f28bf51a8..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31683-07.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Eye of Argos:
-Where are the thoughts of darkness to make the bead to defeat Daimon of White Eye?
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31683-08.html b/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31683-08.html
deleted file mode 100644
index 99ec839d77..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31683-08.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Eye of Argos:
-Have you collected all the thoughts of darkness you need?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31683-09.html b/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31683-09.html
deleted file mode 100644
index 8485d9bb34..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31683-09.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Eye of Argos:
-I can feel his power growing every day!
-Have you collected enough thoughts of darkness to stop him?
-Could it be that he will prevail?
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31683-10.html b/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31683-10.html
deleted file mode 100644
index 9f9f09bf28..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31683-10.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Eye of Argos:
-You've created the vessel that will contain the power to draw him out.
-I shall put the voice to call him out in this thought of darkness. You, my hero, will you give me some time alone? I'll be ready shortly after. Come back to me then..
-I hope we're not too late!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31683-11.html b/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31683-11.html
deleted file mode 100644
index bf30991e25..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/31683-11.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Eye of Argos:
-Where are the eyes of darkness you've collected?
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/Q00603_DaimonTheWhiteEyedPart1.java b/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/Q00603_DaimonTheWhiteEyedPart1.java
deleted file mode 100644
index 2420530369..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00603_DaimonTheWhiteEyedPart1/Q00603_DaimonTheWhiteEyedPart1.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00603_DaimonTheWhiteEyedPart1;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-
-/**
- * Daimon the White-Eyed - Part 1 (603)
- * @author Pandragon
- */
-public final class Q00603_DaimonTheWhiteEyedPart1 extends Quest
-{
- // NPC
- private static final int EYE_OF_ARGOS = 31683;
- private static final int TABLET_1 = 31548;
- private static final int TABLET_2 = 31549;
- private static final int TABLET_3 = 31550;
- private static final int TABLET_4 = 31551;
- private static final int TABLET_5 = 31552;
- // Items
- private static final int SPIRIT_OF_DARKNESS = 7190;
- private static final int BROKEN_CRYSTAL = 7191;
- // Monsters
- private final Map MONSTER_CHANCES = new HashMap<>();
- {
- MONSTER_CHANCES.put(21297, 0.5); // Canyon Bandersnatch Slave
- MONSTER_CHANCES.put(21299, 0.519); // Buffalo Slave
- MONSTER_CHANCES.put(21304, 0.673); // Grendel Slave
- }
- // Reward
- private static final int UNFINISHED_CRYSTAL = 7192;
- // Misc
- private static final int MIN_LVL = 73;
-
- public Q00603_DaimonTheWhiteEyedPart1()
- {
- super(603, Q00603_DaimonTheWhiteEyedPart1.class.getSimpleName(), "Daimon the White-Eyed - Part 1");
- addStartNpc(EYE_OF_ARGOS);
- addTalkId(EYE_OF_ARGOS, TABLET_1, TABLET_2, TABLET_3, TABLET_4, TABLET_5);
- addKillId(MONSTER_CHANCES.keySet());
- registerQuestItems(SPIRIT_OF_DARKNESS, BROKEN_CRYSTAL);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState qs = getQuestState(player, false);
- String htmltext = null;
- if (qs == null)
- {
- return htmltext;
- }
-
- switch (event)
- {
- case "31683-03.htm":
- {
- if (qs.isCreated())
- {
- qs.set("tablet_" + TABLET_1, 0);
- qs.set("tablet_" + TABLET_2, 0);
- qs.set("tablet_" + TABLET_3, 0);
- qs.set("tablet_" + TABLET_4, 0);
- qs.set("tablet_" + TABLET_5, 0);
- qs.startQuest();
- htmltext = event;
- }
- break;
- }
- case "31548-02.html":
- case "31549-02.html":
- case "31550-02.html":
- case "31551-02.html":
- case "31552-02.html":
- {
- if (qs.getCond() < 6)
- {
- giveItems(player, BROKEN_CRYSTAL, 1);
- qs.set("TABLET_" + npc.getId(), 1);
- qs.setCond(qs.getCond() + 1, true);
- htmltext = event;
- }
- break;
- }
- case "31683-06.html":
- {
- if (qs.isCond(6) && (getQuestItemsCount(player, BROKEN_CRYSTAL) >= 5))
- {
- takeItems(player, BROKEN_CRYSTAL, -1);
- qs.setCond(7, true);
- htmltext = event;
- }
- break;
- }
- case "31683-10.html":
- {
- if (qs.isCond(8))
- {
- if (getQuestItemsCount(player, SPIRIT_OF_DARKNESS) >= 200)
- {
- takeItems(player, SPIRIT_OF_DARKNESS, -1);
- giveItems(player, UNFINISHED_CRYSTAL, 1);
- qs.exitQuest(true, true);
- htmltext = event;
- }
- else
- {
- htmltext = "31683-11.html";
- }
- }
- break;
- }
- }
- return htmltext;
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance talker)
- {
- final QuestState qs = getQuestState(talker, true);
- String htmltext = getNoQuestMsg(talker);
- switch (qs.getState())
- {
- case State.CREATED:
- {
- if (npc.getId() == EYE_OF_ARGOS)
- {
- htmltext = ((talker.getLevel() < MIN_LVL) ? "31683-02.html" : "31683-01.htm");
- }
- break;
- }
- case State.STARTED:
- {
- if (npc.getId() == EYE_OF_ARGOS)
- {
- switch (qs.getCond())
- {
- case 1:
- case 2:
- case 3:
- case 4:
- case 5:
- {
- htmltext = "31683-04.html";
- break;
- }
- case 6:
- {
- htmltext = "31683-05.html";
- break;
- }
- case 7:
- {
- htmltext = "31683-07.html";
- break;
- }
- case 8:
- {
- htmltext = "31683-08.html";
- break;
- }
- }
- }
- else if (qs.getInt("TABLET_" + npc.getId()) == 0)
- {
- htmltext = npc.getId() + "-01.html";
- }
- else
- {
- htmltext = npc.getId() + "-03.html";
- }
- break;
- }
- case State.COMPLETED:
- {
- htmltext = getAlreadyCompletedMsg(talker);
- break;
- }
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
- {
- final QuestState qs = getRandomPartyMemberState(killer, 7, 3, npc);
- if (qs != null)
- {
- if (giveItemRandomly(qs.getPlayer(), npc, SPIRIT_OF_DARKNESS, 1, 200, MONSTER_CHANCES.get(npc.getId()), true))
- {
- qs.setCond(8, true);
- }
- }
- return super.onKill(npc, killer, isSummon);
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-01.htm b/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-01.htm
deleted file mode 100644
index 8a22ccc13b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-01.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Ketra's Messenger Wahkan:
-Greetings, stranger! Are you a mercenary? Excellent! Will you fight for the Ketra Orcs?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-02.htm b/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-02.htm
deleted file mode 100644
index bdb2b7e879..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-02.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Ketra's Messenger Wahkan:
-Do you actually think a weakling like you can stand up to the mighty Ketra Orcs? Ha! I can't believe you've lasted this long! Scram, pencilneck!
-(Only a character of level 74 or above may undertake this quest.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-03.htm b/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-03.htm
deleted file mode 100644
index caf974954c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-03.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Ketra's Messenger Wahkan:
-You're nothing but a filthy maggot! A dog of the Varka Silenos! Did you enjoy licking their vile boots?! Get out of my sight! You sicken me!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-04.htm b/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-04.htm
deleted file mode 100644
index e15d1a617c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-04.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Ketra's Messenger Wahkan:
-Well, I suppose I'll give you a chance... If you can gain my trust, the Ketras will trust you as well. Your test is simple. Annihilate those filthy Varka Silenos! Kill as many as you can! As proof, bring back 100 badges of Varka Soldiers.
-Get the badges by slaying Varka Silenos Recruits, Footmen, Scouts, Hunters and Shamans. This will build trust with our tribe.
-Now get going!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-05.htm b/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-05.htm
deleted file mode 100644
index f38da4a4fc..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-05.htm
+++ /dev/null
@@ -1,7 +0,0 @@
-Ketra's Messenger Wahkan:
-There are several phases of friendship:
-Fight bravely for the Ketra, and the Ketra will take care of you.
-You must kill not only the henchmen but also the commander to win the war against the Varka Silenos Village. Kill every goatee you can find! Keep killing them! The war isn't over until all the filthy Varka are wiped off the earth!
-I will give more confidence and trust to those who bring the insignia of the Wahkan Varka Rank - 200 soldiers with the insignia of the Varka Rank - 100 Non-Commissioned Officers. The insignia of the Varka Rank - Non-Commissioned Officer can be obtained when you kill the Priest of Varka Silenos, a Warrior, a Spiritual Medium, a Non-Commissioned Officer, a Chief Officiating Priest, a Commander of an Army Corps and an Elite Military Escort. Go forward, friends of Ketra!
-Remember not to lay a finger on our Ketra Orc tribe! This would destroy our alliance!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-06.htm b/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-06.htm
deleted file mode 100644
index 57068e44c6..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-06.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Ketra's Messenger Wahkan:
-You're the best friend the Ketra ever had! The more you fight for the Ketra, the more we will trust you.
-Our war against the Varka Orcs continues. We must drive those revolting goat beards from the face of the earth! Kill Varka Silenos great mystics, captains, grand seers, prophets, prophet's disciples, prophet's royal guards, chief magi and chief escorts. Kill them all and take their badges as proof.
-Bring back 300 badges of grunts, 200 badges of officers and 100 badges of captains. Good luck, my friend!
-However, if you laid a hand on our Ketra Orcs in the middle, our confidence in you will fade away and our alliance with you will be destroyed!!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-07.htm b/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-07.htm
deleted file mode 100644
index 51433f3bfd..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-07.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Ketra's Messenger Wahkan:
-Ha ha ha! I'll bet those filthy goat beards peed all over themselves! Such is the pleasure of an overwhelming victory! Our job isn't finished yet, however. This war won't be over until every single Varka lies dead!
-Your excellent reputation is spreading like wildfire among the Ketras! However, it is said that there are several steps in friendship. You're now in the middle. If you want to raise our esteem for you even further, attack the Varka Silenos again and bring us 300 badges of grunts, 300 badges of officers, 200 badges of captains and a Totem of Valor. You are fully qualified. Show your real power. The stronger someone is, the more he will be loved by Ketras! You can get the totem by successfully finishing the Prove Your Courage! quest assigned by Hierarch Kadun Zu Ketra.
-However, if you laid a hand on our Ketra Orcs in the middle, our confidence in you will fade away and our alliance with you will be destroyed!!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-08.htm b/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-08.htm
deleted file mode 100644
index 788bf304e6..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-08.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Ketra's Messenger Wahkan:
-This mission will earn you the Ketra's highest level of trust. This task will not be very difficult for the strong one like you. You must kill the Varka Silenos and bring us 400 badges of grunts, 400 badges of officers and 200 badges of captains as well as the Totem of Wisdom. The Totem of Wisdom can be obtained by killing Mos, the commander of the Varkas, longtime scourge of the Ketras. However, you must speak with Hierarch Kadun Zu Ketra for more details on the quest, known as Slay the Enemy Commander before killing Mos! Go ahead! I have no doubt that you will prevail!
-However, if you laid a hand on our Ketra Orcs in the middle, our confidence in you will fade away and our alliance with you will be destroyed!!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-09.htm b/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-09.htm
deleted file mode 100644
index b44b9a77c7..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-09.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Ketra's Messenger Wahkan:
-Ha! Hello, friend! What can the Ketras do for you today? You are truly our dearest friend!
-But don't forget, Ketras live in the moment, and our memories are short... Once a friend leaves us, it is as if they were never here. What's past is past.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-10.html b/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-10.html
deleted file mode 100644
index 47a5ff77e2..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-10.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Ketra's Messenger Wahkan:
-Yo, stranger! Will you join our struggle against the filthy Varka Silenos? I, for one, can't wait to taste their blood! Quickly, go to the battlefield and kill Varka Silenos! As proof, bring back 100 badges of grunts! Then you shall surely become a friend of the Ketra Orcs.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-11.html b/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-11.html
deleted file mode 100644
index 4bb9613baf..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-11.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Ketra's Messenger Wahkan:
-Have you brought the badges of the goat beards? How many did you kill?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-12.html b/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-12.html
deleted file mode 100644
index badbfb47f1..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-12.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Ketra's Messenger Wahkan:
-You've formed a friendship with the Ketra forged in blood and fire! Take this Mark of Ketra's Alliance - Level 1. We only award them to those we consider our true friends. Congratulations!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-12a.html b/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-12a.html
deleted file mode 100644
index 1695b9a11d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-12a.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Ketra's Messenger Wahkan:
-We'll reward our true friends. Help us in battle!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-12b.html b/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-12b.html
deleted file mode 100644
index 30612b1c85..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-12b.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Ketra's Messenger Wahkan:
-Fellow Ketra soldier, we value your friendship!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-13.html b/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-13.html
deleted file mode 100644
index 2bfe8b92ea..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-13.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Ketra's Messenger Wahkan:
-Have you massacred the Varka Silenos yet? Remember, you promised to bring back 200 badges of grunts and 100 badges of officers as proof!
-We treat our friends very well, you're not thinking about changing your mind, are you?
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-14.html b/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-14.html
deleted file mode 100644
index a8b9e37577..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-14.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Ketra's Messenger Wahkan:
-Friend, how did you repay us for the trust we've shown you? Where's the proof?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-15.html b/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-15.html
deleted file mode 100644
index b1da709139..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-15.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Ketra's Messenger Wahkan:
-Good job, friend! We thank you for your strong friendship. Please accept this Mark of Ketra's Alliance - Level 2. Warehouse Keeper Jaff will let you use the warehouse now! Congratulations!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-16.html b/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-16.html
deleted file mode 100644
index e26abe3b43..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-16.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Ketra's Messenger Wahkan:
-Where are the 300 badges of grunts, 200 badges of officers and 100 badges of captains you promised to bring back from the Varka Silenos? Surely this isn't too hard for you?! Do you want to back out of our agreement?
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-17.html b/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-17.html
deleted file mode 100644
index fe55c584f0..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-17.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Ketra's Messenger Wahkan:
-Friend, show those goat beards the power of Pa'agrio's fire! This fight isn't over until every single Varka Silenos is dead! How many have you killed?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-18.html b/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-18.html
deleted file mode 100644
index 8a442d55fd..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-18.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Ketra's Messenger Wahkan:
-Excellent, brave comrade! I won't be satisfied until I've ground the bones of every one of those filthy goat beards into dust! Please accept this Mark of Ketra's Alliance - Level 3. You're now permitted to obtain specialty items from Trader Jumara and to receive the blessing of Asefa, guide of dead souls! Good job!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-19.html b/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-19.html
deleted file mode 100644
index 25ab97de02..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-19.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Ketra's Messenger Wahkan:
-What are you doing, dear comrade? Please, attack the Varka Silenos and bring us 300 badges of grunts, 300 badges of officers, 200 badges of captains and the Totem of Valor! This totem can be obtained by fulfilling the Prove your Courage quest, a mission assigned by Hierarch Kadun Zu Ketra. You don't want to quit, do you?
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-20.html b/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-20.html
deleted file mode 100644
index b88274f410..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-20.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Ketra's Messenger Wahkan:
-Ha! That's wonderful! Those arrogant Varka Silenos have tasted Orcish Steel! Ha! Keep up the good work!
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-21.html b/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-21.html
deleted file mode 100644
index 8817dd60c3..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-21.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Ketra's Messenger Wahkan:
-You're a most noble Warrior, friend of the Ketra! A true hero to our people! Please accept this Mark of Ketra's Alliance - Level 4! Now Gatekeeper Kurfa will teleport you to nearby villages!
-There is but one level of trust left for you to attain!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-22.html b/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-22.html
deleted file mode 100644
index 660d32d064..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-22.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Ketra's Messenger Wahkan:
-The Varka Silenos are doomed, just fight a little longer! You must try harder! Attack them and bring back 400 badges of grunts, 400 badges of officers and 200 badges of captains, as well as a Totem of Wisdom. The Totem of Wisdom can be obtained by fulfilling the Slay the Enemy Commander quest, a mission assigned by Hierarch Kadun Zu Ketra. We have faith in you!
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-23.html b/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-23.html
deleted file mode 100644
index 0267e75abb..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-23.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Ketra's Messenger Wahkan:
-Excellent work! Please accept this Mark of Ketra's Alliance - Level 5! This is the highest honor of trust that we Ketra bestow! You are now allowed to purchase specialty items and teleport directly to the nearest battlefield with the assistance of Gatekeeper Kurfa. Congratulations!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-24.html b/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-24.html
deleted file mode 100644
index e96864f11a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-24.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Ketra's Messenger Wahkan:
-You're the best friend the Ketra ever had! There is no higher honor we can bestow upon you! What are you thinking, my friend?
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-25.html b/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-25.html
deleted file mode 100644
index 764b17e501..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-25.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Ketra's Messenger Wahkan:
-How can you leave us like this?! Don't be a fool! You would sever our relationship, after all we've been through?! Are you a fool? Think carefully, my friend! Such decisions are irreversible!
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-26.html b/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-26.html
deleted file mode 100644
index 25a90a1131..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/31371-26.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Ketra's Messenger Wahkan:
-You are no longer our friend! Get out of my sight!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/Q00605_AllianceWithKetraOrcs.java b/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/Q00605_AllianceWithKetraOrcs.java
deleted file mode 100644
index 037ae8cb8c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00605_AllianceWithKetraOrcs/Q00605_AllianceWithKetraOrcs.java
+++ /dev/null
@@ -1,333 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00605_AllianceWithKetraOrcs;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.l2jserver.gameserver.enums.QuestSound;
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-
-/**
- * Alliance with Ketra Orcs (605)
- * @author malyelfik
- */
-public class Q00605_AllianceWithKetraOrcs extends Quest
-{
- private static class DropInfo
- {
- private final int _chance;
- private final int _minCond;
- private final int _itemId;
-
- public DropInfo(int chance, int minCond)
- {
- _chance = chance;
- _minCond = minCond;
- switch (_minCond)
- {
- case 1:
- _itemId = VARKA_BADGE_SOLDIER;
- break;
- case 2:
- _itemId = VARKA_BADGE_OFFICER;
- break;
- default:
- _itemId = VARKA_BADGE_CAPTAIN;
- break;
- }
- }
-
- public int getMinCond()
- {
- return _minCond;
- }
-
- public int getChance()
- {
- return _chance;
- }
-
- public int getItemId()
- {
- return _itemId;
- }
- }
-
- // NPC
- private static final int WAHKAN = 31371;
- // Monsters
- private static final Map MOBS = new HashMap<>();
- static
- {
- MOBS.put(21350, new DropInfo(500, 1)); // Varka Silenos Recruit
- MOBS.put(21351, new DropInfo(500, 1)); // Varka Silenos Footman
- MOBS.put(21353, new DropInfo(509, 1)); // Varka Silenos Scout
- MOBS.put(21354, new DropInfo(521, 1)); // Varka Silenos Hunter
- MOBS.put(21355, new DropInfo(519, 1)); // Varka Silenos Shaman
- MOBS.put(21357, new DropInfo(500, 2)); // Varka Silenos Priest
- MOBS.put(21358, new DropInfo(500, 2)); // Varka Silenos Warrior
- MOBS.put(21360, new DropInfo(509, 2)); // Varka Silenos Medium
- MOBS.put(21361, new DropInfo(518, 2)); // Varka Silenos Magus
- MOBS.put(21362, new DropInfo(518, 2)); // Varka Silenos Officer
- MOBS.put(21364, new DropInfo(527, 2)); // Varka Silenos Seer
- MOBS.put(21365, new DropInfo(500, 3)); // Varka Silenos Great Magus
- MOBS.put(21366, new DropInfo(500, 3)); // Varka Silenos General
- MOBS.put(21368, new DropInfo(508, 3)); // Varka Silenos Great Seer
- MOBS.put(21369, new DropInfo(628, 2)); // Varka's Commander
- MOBS.put(21370, new DropInfo(604, 2)); // Varka's Elite Guard
- MOBS.put(21371, new DropInfo(627, 3)); // Varka's Head Magus
- MOBS.put(21372, new DropInfo(604, 3)); // Varka's Head Guard
- MOBS.put(21373, new DropInfo(649, 3)); // Varka's Prophet
- MOBS.put(21374, new DropInfo(626, 3)); // Prophet's Guard
- MOBS.put(21375, new DropInfo(626, 3)); // Disciple of Prophet
- }
- // Items
- private static final int VARKA_BADGE_SOLDIER = 7216;
- private static final int VARKA_BADGE_OFFICER = 7217;
- private static final int VARKA_BADGE_CAPTAIN = 7218;
- private static final int VALOR_TOTEM = 7219;
- private static final int WISDOM_TOTEM = 7220;
- private static final int[] KETRA_MARKS =
- {
- 7211, // Mark of Ketra's Alliance - Level 1
- 7212, // Mark of Ketra's Alliance - Level 2
- 7213, // Mark of Ketra's Alliance - Level 3
- 7214, // Mark of Ketra's Alliance - Level 4
- 7215, // Mark of Ketra's Alliance - Level 5
- };
- private static final int[] VARKA_MARKS =
- {
- 7221, // Mark of Varka's Alliance - Level 1
- 7222, // Mark of Varka's Alliance - Level 2
- 7223, // Mark of Varka's Alliance - Level 3
- 7224, // Mark of Varka's Alliance - Level 4
- 7225, // Mark of Varka's Alliance - Level 5
- };
- // Misc
- private static final int MIN_LEVEL = 74;
- private static final int[] SOLDIER_BADGE_COUNT =
- {
- 100, // cond 1
- 200, // cond 2
- 300, // cond 3
- 300, // cond 4
- 400, // cond 5
- };
- private static final int[] OFFICER_BADGE_COUNT =
- {
- 0, // cond 1
- 100, // cond 2
- 200, // cond 3
- 300, // cond 4
- 400, // cond 5
- };
- private static final int[] CAPTAIN_BADGE_COUNT =
- {
- 0, // cond 1
- 0, // cond 2
- 100, // cond 3
- 200, // cond 4
- 200, // cond 5
- };
-
- public Q00605_AllianceWithKetraOrcs()
- {
- super(605, Q00605_AllianceWithKetraOrcs.class.getSimpleName(), "Alliance with Ketra Orcs");
- addStartNpc(WAHKAN);
- addTalkId(WAHKAN);
- addKillId(MOBS.keySet());
- registerQuestItems(VARKA_BADGE_SOLDIER, VARKA_BADGE_OFFICER, VARKA_BADGE_CAPTAIN);
- }
-
- private boolean canGetItem(QuestState st, int itemId)
- {
- int count = 0;
- switch (itemId)
- {
- case VARKA_BADGE_SOLDIER:
- count = SOLDIER_BADGE_COUNT[st.getCond() - 1];
- break;
- case VARKA_BADGE_OFFICER:
- count = OFFICER_BADGE_COUNT[st.getCond() - 1];
- break;
- case VARKA_BADGE_CAPTAIN:
- count = CAPTAIN_BADGE_COUNT[st.getCond() - 1];
- break;
- }
- if (st.getQuestItemsCount(itemId) < count)
- {
- return true;
- }
- return false;
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return null;
- }
-
- String htmltext = event;
- switch (event)
- {
- case "31371-12a.html":
- case "31371-12b.html":
- case "31371-25.html":
- break;
- case "31371-04.htm":
- if (hasAtLeastOneQuestItem(player, VARKA_MARKS))
- {
- return "31371-03.htm";
- }
- st.setState(State.STARTED);
- st.playSound(QuestSound.ITEMSOUND_QUEST_ACCEPT);
- for (int i = 0; i < KETRA_MARKS.length; i++)
- {
- if (st.hasQuestItems(KETRA_MARKS[i]))
- {
- st.setCond(i + 2);
- return "31371-0" + (i + 5) + ".htm";
- }
- }
- st.setCond(1);
- break;
- case "31371-12.html":
- if (st.getQuestItemsCount(VARKA_BADGE_SOLDIER) < SOLDIER_BADGE_COUNT[0])
- {
- return getNoQuestMsg(player);
- }
- st.takeItems(VARKA_BADGE_SOLDIER, -1);
- st.giveItems(KETRA_MARKS[0], 1);
- st.setCond(2, true);
- break;
- case "31371-15.html":
- if ((st.getQuestItemsCount(VARKA_BADGE_SOLDIER) < SOLDIER_BADGE_COUNT[1]) || (st.getQuestItemsCount(VARKA_BADGE_OFFICER) < OFFICER_BADGE_COUNT[1]))
- {
- return getNoQuestMsg(player);
- }
- takeItems(player, -1, VARKA_BADGE_SOLDIER, VARKA_BADGE_OFFICER, KETRA_MARKS[0]);
- st.giveItems(KETRA_MARKS[1], 1);
- st.setCond(3, true);
- break;
- case "31371-18.html":
- if ((st.getQuestItemsCount(VARKA_BADGE_SOLDIER) < SOLDIER_BADGE_COUNT[2]) || (st.getQuestItemsCount(VARKA_BADGE_OFFICER) < OFFICER_BADGE_COUNT[2]) || (st.getQuestItemsCount(VARKA_BADGE_CAPTAIN) < CAPTAIN_BADGE_COUNT[2]))
- {
- return getNoQuestMsg(player);
- }
- takeItems(player, -1, VARKA_BADGE_SOLDIER, VARKA_BADGE_OFFICER, VARKA_BADGE_CAPTAIN, KETRA_MARKS[1]);
- st.giveItems(KETRA_MARKS[2], 1);
- st.setCond(4, true);
- break;
- case "31371-21.html":
- if (!st.hasQuestItems(VALOR_TOTEM) || (st.getQuestItemsCount(VARKA_BADGE_SOLDIER) < SOLDIER_BADGE_COUNT[3]) || (st.getQuestItemsCount(VARKA_BADGE_OFFICER) < OFFICER_BADGE_COUNT[3]) || (st.getQuestItemsCount(VARKA_BADGE_CAPTAIN) < CAPTAIN_BADGE_COUNT[3]))
- {
- return getNoQuestMsg(player);
- }
- takeItems(player, -1, VARKA_BADGE_SOLDIER, VARKA_BADGE_OFFICER, VARKA_BADGE_CAPTAIN, VALOR_TOTEM, KETRA_MARKS[2]);
- st.giveItems(KETRA_MARKS[3], 1);
- st.setCond(5, true);
- break;
- case "31371-26.html":
- takeItems(player, -1, KETRA_MARKS);
- takeItems(player, -1, VALOR_TOTEM, WISDOM_TOTEM);
- st.exitQuest(true, true);
- break;
- default:
- htmltext = null;
- break;
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
- {
- final L2PcInstance member = getRandomPartyMemberState(killer, State.STARTED);
- if (member != null)
- {
- final QuestState st = getQuestState(member, false);
- final DropInfo info = MOBS.get(npc.getId());
- if ((st.getCond() >= info.getMinCond()) && (st.getCond() < 6) && canGetItem(st, info.getItemId()) && (getRandom(1000) < info.getChance()))
- {
- st.giveItems(info.getItemId(), 1);
- }
- }
- return super.onKill(npc, killer, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- String htmltext = getNoQuestMsg(player);
- final QuestState st = getQuestState(player, true);
- if (st == null)
- {
- return htmltext;
- }
-
- switch (st.getState())
- {
- case State.CREATED:
- htmltext = (player.getLevel() >= MIN_LEVEL) ? "31371-01.htm" : "31371-02.htm";
- break;
- case State.STARTED:
- switch (st.getCond())
- {
- case 1:
- htmltext = (st.getQuestItemsCount(VARKA_BADGE_SOLDIER) >= SOLDIER_BADGE_COUNT[0]) ? "31371-11.html" : "31371-10.html";
- break;
- case 2:
- htmltext = (st.hasQuestItems(KETRA_MARKS[0]) && (st.getQuestItemsCount(VARKA_BADGE_SOLDIER) >= SOLDIER_BADGE_COUNT[1]) && (st.getQuestItemsCount(VARKA_BADGE_OFFICER) >= OFFICER_BADGE_COUNT[1])) ? "31371-14.html" : "31371-13.html";
- break;
- case 3:
- htmltext = (st.hasQuestItems(KETRA_MARKS[1]) && (st.getQuestItemsCount(VARKA_BADGE_SOLDIER) >= SOLDIER_BADGE_COUNT[2]) && (st.getQuestItemsCount(VARKA_BADGE_OFFICER) >= OFFICER_BADGE_COUNT[2]) && (st.getQuestItemsCount(VARKA_BADGE_CAPTAIN) >= CAPTAIN_BADGE_COUNT[2])) ? "31371-17.html" : "31371-16.html";
- break;
- case 4:
- htmltext = (hasQuestItems(player, KETRA_MARKS[2], VALOR_TOTEM) && (st.getQuestItemsCount(VARKA_BADGE_SOLDIER) >= SOLDIER_BADGE_COUNT[3]) && (st.getQuestItemsCount(VARKA_BADGE_OFFICER) >= OFFICER_BADGE_COUNT[3]) && (st.getQuestItemsCount(VARKA_BADGE_CAPTAIN) >= CAPTAIN_BADGE_COUNT[3])) ? "31371-20.html" : "31371-19.html";
- break;
- case 5:
- if (!st.hasQuestItems(KETRA_MARKS[3]) || !st.hasQuestItems(WISDOM_TOTEM) || (st.getQuestItemsCount(VARKA_BADGE_SOLDIER) < SOLDIER_BADGE_COUNT[4]) || (st.getQuestItemsCount(VARKA_BADGE_OFFICER) < OFFICER_BADGE_COUNT[4]) || (st.getQuestItemsCount(VARKA_BADGE_CAPTAIN) < CAPTAIN_BADGE_COUNT[4]))
- {
- return "31371-22.html";
- }
- st.setCond(6, true);
- takeItems(player, -1, VARKA_BADGE_SOLDIER, VARKA_BADGE_OFFICER, VARKA_BADGE_CAPTAIN, WISDOM_TOTEM, KETRA_MARKS[3]);
- st.giveItems(KETRA_MARKS[4], 1);
- htmltext = "31371-23.html";
- break;
- case 6:
- if (st.hasQuestItems(KETRA_MARKS[4]))
- {
- htmltext = "31371-24.html";
- }
- break;
- }
- break;
- }
- return htmltext;
- }
-}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00606_BattleAgainstVarkaSilenos/31370-01.htm b/trunk/dist/game/data/scripts/quests/Q00606_BattleAgainstVarkaSilenos/31370-01.htm
deleted file mode 100644
index af59ec6385..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00606_BattleAgainstVarkaSilenos/31370-01.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Kadun Zu Ketra:
-We must destroy the Varka Silenos, our ancient rivals! Who will join our cause?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00606_BattleAgainstVarkaSilenos/31370-02.htm b/trunk/dist/game/data/scripts/quests/Q00606_BattleAgainstVarkaSilenos/31370-02.htm
deleted file mode 100644
index 7bedf38634..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00606_BattleAgainstVarkaSilenos/31370-02.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Kadun Zu Ketra:
-Your courage is admirable, but your abilities are lacking! Come back when you've developed your skills a bit more.
-(This quest may only be undertaken by a character of level 74 or above.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00606_BattleAgainstVarkaSilenos/31370-03.htm b/trunk/dist/game/data/scripts/quests/Q00606_BattleAgainstVarkaSilenos/31370-03.htm
deleted file mode 100644
index caa35aa76c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00606_BattleAgainstVarkaSilenos/31370-03.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Kadun Zu Ketra:
-Attack the garrison of the Varka Silenos and kill as many of them as possible! Cut off their Shillien Manes and bring them back as proof of your valor! Bring back 100 of them and I'll give you a reward! Tejakar Ketra!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00606_BattleAgainstVarkaSilenos/31370-04.html b/trunk/dist/game/data/scripts/quests/Q00606_BattleAgainstVarkaSilenos/31370-04.html
deleted file mode 100644
index 7ef128ad98..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00606_BattleAgainstVarkaSilenos/31370-04.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Kadun Zu Ketra:
-My colleague, have you slaughtered our enemies, the warriors of Varka Silenos? Did you hear their pitiful cries of defeat?
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00606_BattleAgainstVarkaSilenos/31370-05.html b/trunk/dist/game/data/scripts/quests/Q00606_BattleAgainstVarkaSilenos/31370-05.html
deleted file mode 100644
index 75d63ab3f1..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00606_BattleAgainstVarkaSilenos/31370-05.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Kadun Zu Ketra:
-Wipe out the enemy! Don't let any Varka Silenos survive! Kill them all!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00606_BattleAgainstVarkaSilenos/31370-06.html b/trunk/dist/game/data/scripts/quests/Q00606_BattleAgainstVarkaSilenos/31370-06.html
deleted file mode 100644
index 4a709f67d5..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00606_BattleAgainstVarkaSilenos/31370-06.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Kadun Zu Ketra:
-The fight must go on! Victory is ours!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00606_BattleAgainstVarkaSilenos/31370-07.html b/trunk/dist/game/data/scripts/quests/Q00606_BattleAgainstVarkaSilenos/31370-07.html
deleted file mode 100644
index c53d3fa455..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00606_BattleAgainstVarkaSilenos/31370-07.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Kadun Zu Ketra:
-Excellent! Today's victory will always be remembered! Oh, brave warrior! You'll be well-rewarded for your valor! At one time, this Buffalo horn was only given to the bravest soldiers of our tribe. It's quite valuable! You could trade it for something you really need!
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00606_BattleAgainstVarkaSilenos/31370-08.html b/trunk/dist/game/data/scripts/quests/Q00606_BattleAgainstVarkaSilenos/31370-08.html
deleted file mode 100644
index c6da635562..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00606_BattleAgainstVarkaSilenos/31370-08.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Kadun Zu Ketra:
-Didn't I ask for at least 100 Shillien Manes? Return to the battlefield now!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00606_BattleAgainstVarkaSilenos/31370-09.html b/trunk/dist/game/data/scripts/quests/Q00606_BattleAgainstVarkaSilenos/31370-09.html
deleted file mode 100644
index 1b9b28078d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00606_BattleAgainstVarkaSilenos/31370-09.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Kadun Zu Ketra:
-Even the most invincible warrior should take a break once in a while! You've done well! Come back when you're rested!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00606_BattleAgainstVarkaSilenos/Q00606_BattleAgainstVarkaSilenos.java b/trunk/dist/game/data/scripts/quests/Q00606_BattleAgainstVarkaSilenos/Q00606_BattleAgainstVarkaSilenos.java
deleted file mode 100644
index 792c04a49f..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00606_BattleAgainstVarkaSilenos/Q00606_BattleAgainstVarkaSilenos.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00606_BattleAgainstVarkaSilenos;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.l2jserver.gameserver.enums.QuestSound;
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-
-/**
- * Battle against Varka Silenos (606)
- * @author malyelfik
- */
-public class Q00606_BattleAgainstVarkaSilenos extends Quest
-{
- // NPC
- private static final int KADUN = 31370;
- // Monsters
- private static final Map MOBS = new HashMap<>();
- static
- {
- MOBS.put(21350, 500); // Varka Silenos Recruit
- MOBS.put(21353, 510); // Varka Silenos Scout
- MOBS.put(21354, 522); // Varka Silenos Hunter
- MOBS.put(21355, 519); // Varka Silenos Shaman
- MOBS.put(21357, 529); // Varka Silenos Priest
- MOBS.put(21358, 529); // Varka Silenos Warrior
- MOBS.put(21360, 539); // Varka Silenos Medium
- MOBS.put(21362, 539); // Varka Silenos Officer
- MOBS.put(21364, 558); // Varka Silenos Seer
- MOBS.put(21365, 568); // Varka Silenos Great Magus
- MOBS.put(21366, 568); // Varka Silenos General
- MOBS.put(21368, 568); // Varka Silenos Great Seer
- MOBS.put(21369, 664); // Varka's Commander
- MOBS.put(21371, 713); // Varka's Head Magus
- MOBS.put(21373, 738); // Varka's Prophet
- }
- // Items
- private static final int HORN = 7186;
- private static final int MANE = 7233;
- // Misc
- private static final int MIN_LEVEL = 74;
- private static final int MANE_COUNT = 100;
-
- public Q00606_BattleAgainstVarkaSilenos()
- {
- super(606, Q00606_BattleAgainstVarkaSilenos.class.getSimpleName(), "Battle against Varka Silenos");
- addStartNpc(KADUN);
- addTalkId(KADUN);
- addKillId(MOBS.keySet());
- registerQuestItems(MANE);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return null;
- }
-
- String htmltext = event;
- switch (event)
- {
- case "31370-03.htm":
- st.startQuest();
- break;
- case "31370-06.html":
- break;
- case "31370-07.html":
- if (st.getQuestItemsCount(MANE) < MANE_COUNT)
- {
- return "31370-08.html";
- }
- st.takeItems(MANE, MANE_COUNT);
- st.giveItems(HORN, 20);
- break;
- case "31370-09.html":
- st.exitQuest(true, true);
- break;
- default:
- htmltext = null;
- break;
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
- {
- final L2PcInstance member = getRandomPartyMember(killer, 1);
- if ((member != null) && (getRandom(1000) < MOBS.get(npc.getId())))
- {
- final QuestState st = getQuestState(member, false);
- st.giveItems(MANE, 1);
- st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
- }
- return super.onKill(npc, killer, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- String htmltext = getNoQuestMsg(player);
- final QuestState st = getQuestState(player, true);
- if (st == null)
- {
- return htmltext;
- }
-
- switch (st.getState())
- {
- case State.CREATED:
- htmltext = (player.getLevel() >= MIN_LEVEL) ? "31370-01.htm" : "31370-02.htm";
- break;
- case State.STARTED:
- htmltext = (st.hasQuestItems(MANE)) ? "31370-04.html" : "31370-05.html";
- break;
- }
- return htmltext;
- }
-}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00607_ProveYourCourageKetra/31370-01.htm b/trunk/dist/game/data/scripts/quests/Q00607_ProveYourCourageKetra/31370-01.htm
deleted file mode 100644
index 9f884369ca..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00607_ProveYourCourageKetra/31370-01.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Kadun Zu Ketra:
-We've been at war with the murderous Varka Silenos for far too long! It's time that we put an end to this once and for all, and thrust our sword to the very core of the enemy forces! Comrade of Ketra! Will you join our struggle?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00607_ProveYourCourageKetra/31370-02.htm b/trunk/dist/game/data/scripts/quests/Q00607_ProveYourCourageKetra/31370-02.htm
deleted file mode 100644
index 9ba5a19cba..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00607_ProveYourCourageKetra/31370-02.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Kadun Zu Ketra:
-I must find a worthy fighter to accomplish this mission. Unfortunately you don't seem up to the task.
-(Only a character who possesses Ketra's friend - 3rd level can undertake this quest.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00607_ProveYourCourageKetra/31370-03.htm b/trunk/dist/game/data/scripts/quests/Q00607_ProveYourCourageKetra/31370-03.htm
deleted file mode 100644
index d9988364ec..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00607_ProveYourCourageKetra/31370-03.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Kadun Zu Ketra:
-You're not ready for this type of mission. Practice!
-(Only a character of level 75 or above can undertake this quest.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00607_ProveYourCourageKetra/31370-04.htm b/trunk/dist/game/data/scripts/quests/Q00607_ProveYourCourageKetra/31370-04.htm
deleted file mode 100644
index b3619d2b8e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00607_ProveYourCourageKetra/31370-04.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Kadun Zu Ketra:
-Among the Varka Silenos lurks an extremely skilled shaman known as Shadith. He leads their forces in battle far too successfully. He must be destroyed! But I must warn you, you can't take him down alone. Gather your trusted comrades, confront Shadith and take his head!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00607_ProveYourCourageKetra/31370-05.html b/trunk/dist/game/data/scripts/quests/Q00607_ProveYourCourageKetra/31370-05.html
deleted file mode 100644
index 173f1c3b23..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00607_ProveYourCourageKetra/31370-05.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Kadun Zu Ketra:
-Have you brought me the Head of Shadith?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00607_ProveYourCourageKetra/31370-06.html b/trunk/dist/game/data/scripts/quests/Q00607_ProveYourCourageKetra/31370-06.html
deleted file mode 100644
index 15eb9c380e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00607_ProveYourCourageKetra/31370-06.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Kadun Zu Ketra:
-Bring me the Head of Shadith!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00607_ProveYourCourageKetra/31370-07.html b/trunk/dist/game/data/scripts/quests/Q00607_ProveYourCourageKetra/31370-07.html
deleted file mode 100644
index 1565b3b1b9..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00607_ProveYourCourageKetra/31370-07.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Kadun Zu Ketra:
-Excellent! The head of Shadith!? Ugly bastard, wasn't he? You've proven your courage. Please accept this Totem of Valor in recognition of your outstanding military achievements! It's the custom of the Ketra to give this to the our most respected soldier who has proved the true valor like you! You're a true soldier!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00607_ProveYourCourageKetra/Q00607_ProveYourCourageKetra.java b/trunk/dist/game/data/scripts/quests/Q00607_ProveYourCourageKetra/Q00607_ProveYourCourageKetra.java
deleted file mode 100644
index cf87cf629d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00607_ProveYourCourageKetra/Q00607_ProveYourCourageKetra.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00607_ProveYourCourageKetra;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-import com.l2jserver.gameserver.util.Util;
-
-/**
- * Prove Your Courage! (Ketra) (607)
- * @author malyelfik
- */
-public class Q00607_ProveYourCourageKetra extends Quest
-{
- // NPC
- private static final int KADUN = 31370;
- // Monster
- private static final int SHADITH = 25309;
- // Items
- private static final int SHADITH_HEAD = 7235;
- private static final int VALOR_TOTEM = 7219;
- private static final int KETRA_ALLIANCE_THREE = 7213;
- // Misc
- private static final int MIN_LEVEL = 75;
-
- public Q00607_ProveYourCourageKetra()
- {
- super(607, Q00607_ProveYourCourageKetra.class.getSimpleName(), "Prove Your Courage! (Ketra)");
- addStartNpc(KADUN);
- addTalkId(KADUN);
- addKillId(SHADITH);
- registerQuestItems(SHADITH_HEAD);
- }
-
- @Override
- public void actionForEachPlayer(L2PcInstance player, L2Npc npc, boolean isSummon)
- {
- final QuestState st = getQuestState(player, false);
- if ((st != null) && st.isCond(1) && Util.checkIfInRange(1500, npc, player, false))
- {
- st.giveItems(SHADITH_HEAD, 1);
- st.setCond(2, true);
- }
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return null;
- }
-
- String htmltext = event;
- switch (event)
- {
- case "31370-04.htm":
- st.startQuest();
- break;
- case "31370-07.html":
- if (st.hasQuestItems(SHADITH_HEAD) && st.isCond(2))
- {
- st.giveItems(VALOR_TOTEM, 1);
- st.addExpAndSp(10000, 0);
- st.exitQuest(true, true);
- }
- else
- {
- htmltext = getNoQuestMsg(player);
- }
- break;
- default:
- htmltext = null;
- break;
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
- {
- executeForEachPlayer(killer, npc, isSummon, true, false);
- return super.onKill(npc, killer, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- String htmltext = getNoQuestMsg(player);
- final QuestState st = getQuestState(player, true);
- if (st == null)
- {
- return htmltext;
- }
-
- switch (st.getState())
- {
- case State.CREATED:
- htmltext = (player.getLevel() >= MIN_LEVEL) ? (st.hasQuestItems(KETRA_ALLIANCE_THREE)) ? "31370-01.htm" : "31370-02.htm" : "31370-03.htm";
- break;
- case State.STARTED:
- htmltext = (st.isCond(2) && st.hasQuestItems(SHADITH_HEAD)) ? "31370-05.html" : "31370-06.html";
- break;
- }
- return htmltext;
- }
-}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00608_SlayTheEnemyCommanderKetra/31370-01.htm b/trunk/dist/game/data/scripts/quests/Q00608_SlayTheEnemyCommanderKetra/31370-01.htm
deleted file mode 100644
index 48d504a9ab..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00608_SlayTheEnemyCommanderKetra/31370-01.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Kadun Zu Ketra:
-The time has come for our revenge! Let's slay the commander of the enemy forces and put an end to our long war with the Varka! Will you join our cause?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00608_SlayTheEnemyCommanderKetra/31370-02.htm b/trunk/dist/game/data/scripts/quests/Q00608_SlayTheEnemyCommanderKetra/31370-02.htm
deleted file mode 100644
index e8709b02b4..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00608_SlayTheEnemyCommanderKetra/31370-02.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Kadun Zu Ketra:
-You're not up to this mission. If we're to achieve victory, we must be patient. A good general waits patiently for the right time to strike!
-(Only a character who possesses Ketra's friend - 4th level can undertake this quest.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00608_SlayTheEnemyCommanderKetra/31370-03.htm b/trunk/dist/game/data/scripts/quests/Q00608_SlayTheEnemyCommanderKetra/31370-03.htm
deleted file mode 100644
index 4e04735191..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00608_SlayTheEnemyCommanderKetra/31370-03.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Kadun Zu Ketra:
-You're not ready for this mission yet. Practice!
-(Only a character of level 75 or above may undertake this quest.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00608_SlayTheEnemyCommanderKetra/31370-04.htm b/trunk/dist/game/data/scripts/quests/Q00608_SlayTheEnemyCommanderKetra/31370-04.htm
deleted file mode 100644
index 675cf34f0c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00608_SlayTheEnemyCommanderKetra/31370-04.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Kadun Zu Ketra:
-Excellent! This mission is critical to the war effort. I need you to go to the garrison of the Varka Silenos and kill their commander! He's known as Mos, and he's the best swordsman in the entire tribe! Although you're an excellent fighter, don't even think of taking him on alone! Gather your most reliable comrades together, and track down and kill Mos!
-The glorious flames of Pa'agrio will light your path forever!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00608_SlayTheEnemyCommanderKetra/31370-05.html b/trunk/dist/game/data/scripts/quests/Q00608_SlayTheEnemyCommanderKetra/31370-05.html
deleted file mode 100644
index 8ad98f4a98..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00608_SlayTheEnemyCommanderKetra/31370-05.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Kadun Zu Ketra:
-Have you brought the head of the commander of the Varka Silenos?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00608_SlayTheEnemyCommanderKetra/31370-06.html b/trunk/dist/game/data/scripts/quests/Q00608_SlayTheEnemyCommanderKetra/31370-06.html
deleted file mode 100644
index eede3ef4d3..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00608_SlayTheEnemyCommanderKetra/31370-06.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Kadun Zu Ketra:
-Arise, Orcs! The time has come! Kill Mos, the Varka commander, cut off his head and bring it to me!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00608_SlayTheEnemyCommanderKetra/31370-07.html b/trunk/dist/game/data/scripts/quests/Q00608_SlayTheEnemyCommanderKetra/31370-07.html
deleted file mode 100644
index 01575d6a8b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00608_SlayTheEnemyCommanderKetra/31370-07.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Kadun Zu Ketra:
-Ha! Excellent! This is outstanding! Our war with the Varka Silenos has entered its final stage! The loss of their commander means that they can no longer resist our powerful forces! Good job! Please accept this totem of strategy as an acknowledgement of your service to the Ketra Orcs!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00608_SlayTheEnemyCommanderKetra/Q00608_SlayTheEnemyCommanderKetra.java b/trunk/dist/game/data/scripts/quests/Q00608_SlayTheEnemyCommanderKetra/Q00608_SlayTheEnemyCommanderKetra.java
deleted file mode 100644
index 173326df6a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00608_SlayTheEnemyCommanderKetra/Q00608_SlayTheEnemyCommanderKetra.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00608_SlayTheEnemyCommanderKetra;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-import com.l2jserver.gameserver.util.Util;
-
-/**
- * Slay the Enemy Commander! (Ketra) (608)
- * @author malyelfik
- */
-public class Q00608_SlayTheEnemyCommanderKetra extends Quest
-{
- // NPC
- private static final int KADUN = 31370;
- // Monster
- private static final int MOS = 25312;
- // Items
- private static final int MOS_HEAD = 7236;
- private static final int WISDOM_TOTEM = 7220;
- private static final int KETRA_ALLIANCE_FOUR = 7214;
- // Misc
- private static final int MIN_LEVEL = 75;
-
- public Q00608_SlayTheEnemyCommanderKetra()
- {
- super(608, Q00608_SlayTheEnemyCommanderKetra.class.getSimpleName(), "Slay the Enemy Commander! (Ketra)");
- addStartNpc(KADUN);
- addTalkId(KADUN);
- addKillId(MOS);
- registerQuestItems(MOS_HEAD);
- }
-
- @Override
- public void actionForEachPlayer(L2PcInstance player, L2Npc npc, boolean isSummon)
- {
- final QuestState st = getQuestState(player, false);
- if ((st != null) && st.isCond(1) && Util.checkIfInRange(1500, npc, player, false))
- {
- st.giveItems(MOS_HEAD, 1);
- st.setCond(2, true);
- }
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return null;
- }
-
- String htmltext = event;
- switch (event)
- {
- case "31370-04.htm":
- st.startQuest();
- break;
- case "31370-07.html":
- if (st.hasQuestItems(MOS_HEAD) && st.isCond(2))
- {
- st.giveItems(WISDOM_TOTEM, 1);
- st.addExpAndSp(10000, 0);
- st.exitQuest(true, true);
- }
- else
- {
- htmltext = getNoQuestMsg(player);
- }
- break;
- default:
- htmltext = null;
- break;
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
- {
- executeForEachPlayer(killer, npc, isSummon, true, false);
- return super.onKill(npc, killer, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- String htmltext = getNoQuestMsg(player);
- final QuestState st = getQuestState(player, true);
- if (st == null)
- {
- return htmltext;
- }
-
- switch (st.getState())
- {
- case State.CREATED:
- htmltext = (player.getLevel() >= MIN_LEVEL) ? (st.hasQuestItems(KETRA_ALLIANCE_FOUR)) ? "31370-01.htm" : "31370-02.htm" : "31370-03.htm";
- break;
- case State.STARTED:
- htmltext = (st.isCond(2) && st.hasQuestItems(MOS_HEAD)) ? "31370-05.html" : "31370-06.html";
- break;
- }
- return htmltext;
- }
-}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31371-00a.html b/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31371-00a.html
deleted file mode 100644
index 622c803bf8..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31371-00a.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Ketra's Messenger Wahkan:
-Friend of Ketra, Soul Guide Asefa is keeping an eye on your merits. He may one day require your services. You must train. Harder.
-(This quest is for characters level 74 and above, and who have the 'Proof of Alliance with Ketra Orcs' - Level 1 or above.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31371-00b.html b/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31371-00b.html
deleted file mode 100644
index 1c220bb0b2..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31371-00b.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Ketra's Messenger Wahkan:
-Friend of Ketra, Soul Guide Asefa closely tracks your progress. The day will come when he assigns you a mission. You must train for whatever that mission may be!
-(This quest is for characters level 74 and above, and who have the 'Proof of Alliance with Ketra Orcs' - Level 1 or above.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31371-01.htm b/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31371-01.htm
deleted file mode 100644
index 769ca301f5..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31371-01.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Ketra's Messenger Wahkan:
-Our tribe is in mortal danger, friend of the Ketra! Will you fight for us?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31371-02.html b/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31371-02.html
deleted file mode 100644
index 56a6d1c61e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31371-02.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Ketra's Messenger Wahkan:
-There is a secret power possessed by the Varka Silenos! Asefa, the guide of dead souls, can tell you more about it... Do as she says! May the flames of Pa'agrio light your path!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31371-03.html b/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31371-03.html
deleted file mode 100644
index c5d1d4a71e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31371-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Ketra's Messenger Wahkan:
-Did you get lost? Speak with Asefa, guide of dead souls to find out about your mission! Good luck!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31372-01.html b/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31372-01.html
deleted file mode 100644
index 9128be5ca5..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31372-01.html
+++ /dev/null
@@ -1,7 +0,0 @@
-Soul Guide Asefa:
-Welcome, comrade of Ketra! Wahkan has told me of your activities. I'm sure that you're the right person for this mission!
-We Ketra Orcs are unrivaled warriors. The Silenos cannot defeat us, but they've been a nuisance to our noble corps for far too long! I'm convinced that they're receiving help from some unknown power!
-Break into the Varka Silenos barracks and take the totem of Soul Guide Udan Mardui! This totem must be the source of their hidden power. You can't risk capture, so avoid confronting them directly.
-Once you do this, I'll give you the Divine Stone of Wisdom, a sacred relic of our tribe!
-The totem is locked inside a box, so don't forget to take the Thief Key with you. You must hurry, comrade!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31372-02.html b/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31372-02.html
deleted file mode 100644
index c1f20c2d1c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31372-02.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Soul Guide Asefa:
-Break into the Varka Silenos barracks and take the totem of Soul Guide Udan Mardui! It contains the secrets of their hidden power. Take the Thief Key with you, the box with the totem is locked. Hurry, Comrade!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31372-03.html b/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31372-03.html
deleted file mode 100644
index 8f2664b18e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31372-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Soul Guide Asefa:
-Maybe I overestimated your abilities. You have to use your head to fulfill this mission! I'll distract the watchman. Now hurry!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31372-04.html b/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31372-04.html
deleted file mode 100644
index bac14934ec..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31372-04.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Soul Guide Asefa:
-Excellent job, comrade of Ketra! This contains the hidden power of those insolent Varkas and will ultimately lead to their defeat! I must begin my research immediately!
-Take this Divine Stone of Wisdom, comrade.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31561-01.html b/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31561-01.html
deleted file mode 100644
index ce20785e63..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31561-01.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Udan Mardui's Box:
-There is a box on which a shamanic pattern of Varka Silenos is engraved. It seems to contain some strong power.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31561-02.html b/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31561-02.html
deleted file mode 100644
index f4db372457..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31561-02.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Udan Mardui's Box:
-You need a Thief Key to open the box!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31561-03.html b/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31561-03.html
deleted file mode 100644
index d05a16aa56..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31561-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Udan Mardui's Box:
-The Green Totem in the box is emanating very strong power.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31561-04.html b/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31561-04.html
deleted file mode 100644
index 01a3d908ea..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/31561-04.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Udan Mardui's Box:
-The box is open! But it's empty. The surveillant must have found out and hid the Green Totem somewhere else. Go back to Soul Guide Asefa, and come back again after breaking the curse.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/Q00609_MagicalPowerOfWaterPart1.java b/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/Q00609_MagicalPowerOfWaterPart1.java
deleted file mode 100644
index f7bd6fdacf..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00609_MagicalPowerOfWaterPart1/Q00609_MagicalPowerOfWaterPart1.java
+++ /dev/null
@@ -1,221 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00609_MagicalPowerOfWaterPart1;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.holders.SkillHolder;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
-import com.l2jserver.gameserver.network.serverpackets.NpcSay;
-
-/**
- * Magical Power of Water - Part 1 (609)
- * @author Joxit
- */
-public class Q00609_MagicalPowerOfWaterPart1 extends Quest
-{
- // NPCs
- private static final int WAHKAN = 31371;
- private static final int ASEFA = 31372;
- private static final int UDANS_BOX = 31561;
- private static final int UDANS_EYE = 31684;
- // Monsters
- private static final int[] VARKA_MOBS =
- {
- 21350, // Varka Silenos Recruit
- 21351, // Varka Silenos Footman
- 21353, // Varka Silenos Scout
- 21354, // Varka Silenos Hunter
- 21355, // Varka Silenos Shaman
- 21357, // Varka Silenos Priest
- 21358, // Varka Silenos Warrior
- 21360, // Varka Silenos Medium
- 21361, // Varka Silenos Magus
- 21362, // Varka Silenos Officer
- 21364, // Varka Silenos Seer
- 21365, // Varka Silenos Great Magus
- 21366, // Varka Silenos General
- 21368, // Varka Silenos Great Seer
- 21369, // Varka's Commander
- 21370, // Varka's Elite Guard
- 21371, // Varka's Head Magus
- 21372, // Varka's Head Guard
- 21373, // Varka's Prophet
- 21374, // Prophet's Guard
- 21375, // Disciple of Prophet
- };
- // Items
- private static final int KEY = 1661;
- private static final int STOLEN_GREEN_TOTEM = 7237;
- private static final int WISDOM_STONE = 7081;
- private static final int GREEN_TOTEM = 7238;
- private static final int[] KETRA_MARKS =
- {
- 7211, // Mark of Ketra's Alliance - Level 1
- 7212, // Mark of Ketra's Alliance - Level 2
- 7213, // Mark of Ketra's Alliance - Level 3
- 7214, // Mark of Ketra's Alliance - Level 4
- 7215, // Mark of Ketra's Alliance - Level 5
- };
- // Skills
- private static SkillHolder GOW = new SkillHolder(4547, 1); // Gaze of Watcher
- private static SkillHolder DISPEL_GOW = new SkillHolder(4548, 1); // Quest - Dispel Watcher Gaze
- // Misc
- private static final int MIN_LEVEL = 74;
-
- public Q00609_MagicalPowerOfWaterPart1()
- {
- super(609, Q00609_MagicalPowerOfWaterPart1.class.getSimpleName(), "Magical Power of Water - Part 1");
- addStartNpc(WAHKAN);
- addTalkId(ASEFA, WAHKAN, UDANS_BOX);
- addAttackId(VARKA_MOBS);
- registerQuestItems(STOLEN_GREEN_TOTEM);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return null;
- }
- String htmltext = null;
- switch (event)
- {
- case "31371-02.html":
- st.startQuest();
- htmltext = event;
- break;
- case "open_box":
- if (!st.hasQuestItems(KEY))
- {
- htmltext = "31561-02.html";
- }
- else if (st.isCond(2))
- {
- if (st.isSet("spawned"))
- {
- st.takeItems(KEY, 1);
- htmltext = "31561-04.html";
- }
- else
- {
- st.giveItems(STOLEN_GREEN_TOTEM, 1);
- st.takeItems(KEY, 1);
- st.setCond(3, true);
- htmltext = "31561-03.html";
- }
- }
- break;
- case "eye_despawn":
- npc.broadcastPacket(new NpcSay(npc, Say2.NPC_ALL, NpcStringId.UDAN_HAS_ALREADY_SEEN_YOUR_FACE));
- npc.deleteMe();
- break;
- }
- return htmltext;
- }
-
- @Override
- public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon)
- {
- final QuestState st = getQuestState(attacker, false);
- if ((st != null) && st.isCond(2) && !st.isSet("spawned"))
- {
- st.set("spawned", "1");
- npc.setTarget(attacker);
- npc.doCast(GOW.getSkill());
- final L2Npc eye = addSpawn(UDANS_EYE, npc);
- eye.broadcastPacket(new NpcSay(eye, Say2.NPC_ALL, NpcStringId.YOU_CAN_T_AVOID_THE_EYES_OF_UDAN));
- startQuestTimer("eye_despawn", 10000, eye, attacker);
- }
- return super.onAttack(npc, attacker, damage, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- String htmltext = getNoQuestMsg(player);
- final QuestState st = getQuestState(player, true);
- if (st == null)
- {
- return htmltext;
- }
-
- switch (npc.getId())
- {
- case WAHKAN:
- switch (st.getState())
- {
- case State.CREATED:
- htmltext = (player.getLevel() >= MIN_LEVEL) ? (hasAtLeastOneQuestItem(player, KETRA_MARKS)) ? "31371-01.htm" : "31371-00a.html" : "31371-00b.html";
- break;
- case State.STARTED:
- if (st.isCond(1))
- {
- htmltext = "31371-03.html";
- }
- break;
- }
- break;
- case ASEFA:
- if (st.isStarted())
- {
- switch (st.getCond())
- {
- case 1:
- htmltext = "31372-01.html";
- st.setCond(2, true);
- break;
- case 2:
- if (st.isSet("spawned"))
- {
- st.unset("spawned");
- npc.setTarget(player);
- npc.doCast(DISPEL_GOW.getSkill());
- htmltext = "31372-03.html";
- }
- else
- {
- htmltext = "31372-02.html";
- }
- break;
- case 3:
- st.giveItems(GREEN_TOTEM, 1);
- st.giveItems(WISDOM_STONE, 1);
- st.exitQuest(true, true);
- htmltext = "31372-04.html";
- break;
- }
- }
- break;
- case UDANS_BOX:
- if (st.isCond(2))
- {
- htmltext = "31561-01.html";
- }
- break;
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31372-00a.html b/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31372-00a.html
deleted file mode 100644
index 644f13bec9..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31372-00a.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Soul Guide Asefa:
-Still looking for the totem? You disappoint me.
-(Quest may only be undertaken by characters with the Green Totem.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31372-00b.html b/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31372-00b.html
deleted file mode 100644
index 017909edc0..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31372-00b.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Soul Guide Asefa:
-Come back when you aren't such a weakling.
-(Quest may only be undertaken by characters of level 75 or above.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31372-01.htm b/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31372-01.htm
deleted file mode 100644
index edf6b9ecf2..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31372-01.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Soul Guide Asefa:
-After investigating, I found that the magical power comes from the water spirit conjured by using the totem. If you can kill it, it will weaken Udan Mardui's magical power. Will you take on this important mission?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31372-02.html b/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31372-02.html
deleted file mode 100644
index a7475eff9d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31372-02.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Soul Guide Asefa:
-Now you must use caution. Break into the Varka Silenos barracks again and use this Green Totem at the holy altar. Then you can summon Ashutar, the soul of water and the source of Udan Mardui's magical power. Kill it and bring me its heart of ice!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31372-03.html b/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31372-03.html
deleted file mode 100644
index aef347a3de..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31372-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Soul Guide Asefa:
-Now you must use caution. Break into the Varka Silenos barracks again and use this Green Totem at the holy altar. Then you can summon Ashutar, the soul of water. Kill it and bring me its heart of ice!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31372-04.html b/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31372-04.html
deleted file mode 100644
index 27b8319838..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31372-04.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Soul Guide Asefa:
-Did you defeat Ashutar?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31372-05.html b/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31372-05.html
deleted file mode 100644
index af51691922..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31372-05.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Soul Guide Asefa:
-Kill Ashutar and bring me the source of the power!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31372-06.html b/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31372-06.html
deleted file mode 100644
index 249679cf81..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31372-06.html
+++ /dev/null
@@ -1,4 +0,0 @@
->Soul Guide Asefa:
-Excellent job, comrade! At last I can use the magical power of Udan Mardui!
-You've brought our tribe much closer to victory, and we are in your debt. May glory be with us all!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31372-07.html b/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31372-07.html
deleted file mode 100644
index 68c1b61fc9..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31372-07.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Soul Guide Asefa:
-You have to bring me the Ice Heart of Ashutar!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31560-01.html b/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31560-01.html
deleted file mode 100644
index 7bc70dbdc8..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31560-01.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Varka's Holy Altar:
-This stone sculpture is the work of artisans. It resembles a ram's head.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31560-02.html b/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31560-02.html
deleted file mode 100644
index 1ccee0b9ec..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31560-02.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Varka's Holy Altar:
-With a piercing noise that rends the air, the Green Totem shatters into a million brilliant shards of light. The tendrils of blue energy which seep from the altar suddenly coalesce, and Water Spirit Ashutar materializes.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31560-03.html b/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31560-03.html
deleted file mode 100644
index 9eb2db2c52..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31560-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Varka's Holy Altar:
-Someone is already performing a ritual at the altar.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31560-04.html b/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31560-04.html
deleted file mode 100644
index 83776029f0..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31560-04.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Varka's Holy Spirit:
-Without the Green Totem, I can't conjure Soul of Water Ashutar.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31560-05.html b/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31560-05.html
deleted file mode 100644
index da765931b3..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/31560-05.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Varka's Holy Altar:
-The energy I felt at the altar is getting weaker.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/Q00610_MagicalPowerOfWaterPart2.java b/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/Q00610_MagicalPowerOfWaterPart2.java
deleted file mode 100644
index a6c9c3b4b4..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00610_MagicalPowerOfWaterPart2/Q00610_MagicalPowerOfWaterPart2.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00610_MagicalPowerOfWaterPart2;
-
-import com.l2jserver.Config;
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
-import com.l2jserver.gameserver.network.serverpackets.NpcSay;
-import com.l2jserver.gameserver.util.Util;
-
-/**
- * Magical Power of Water - Part 2 (610)
- * @author Joxit
- */
-public class Q00610_MagicalPowerOfWaterPart2 extends Quest
-{
- // NPCs
- private static final int ASEFA = 31372;
- private static final int VARKA_TOTEM = 31560;
- // Monster
- private static final int ASHUTAR = 25316;
- // Items
- private static final int GREEN_TOTEM = 7238;
- private static final int ASHUTAR_HEART = 7239;
- // Misc
- private static final int MIN_LEVEL = 75;
-
- public Q00610_MagicalPowerOfWaterPart2()
- {
- super(610, Q00610_MagicalPowerOfWaterPart2.class.getSimpleName(), "Magical Power of Water - Part 2");
- addStartNpc(ASEFA);
- addTalkId(ASEFA, VARKA_TOTEM);
- addKillId(ASHUTAR);
- registerQuestItems(GREEN_TOTEM, ASHUTAR_HEART);
-
- final String test = loadGlobalQuestVar("Q00610_respawn");
- final long remain = (!test.isEmpty()) ? (Long.parseLong(test) - System.currentTimeMillis()) : 0;
- if (remain > 0)
- {
- startQuestTimer("spawn_npc", remain, null, null);
- }
- else
- {
- addSpawn(VARKA_TOTEM, 105452, -36775, -1050, 34000, false, 0, true);
- }
- }
-
- @Override
- public void actionForEachPlayer(L2PcInstance player, L2Npc npc, boolean isSummon)
- {
- final QuestState st = getQuestState(player, false);
- if ((st != null) && Util.checkIfInRange(1500, npc, player, false))
- {
- if (npc.getId() == ASHUTAR)
- {
- switch (st.getCond())
- {
- case 1: // take the item and give the heart
- st.takeItems(GREEN_TOTEM, 1);
- case 2:
- if (!st.hasQuestItems(ASHUTAR_HEART))
- {
- st.giveItems(ASHUTAR_HEART, 1);
- }
- st.setCond(3, true);
- break;
- }
- }
- }
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- String htmltext = null;
- if (player != null)
- {
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return null;
- }
-
- switch (event)
- {
- case "31372-02.html":
- st.startQuest();
- htmltext = event;
- break;
- case "give_heart":
- if (st.hasQuestItems(ASHUTAR_HEART))
- {
- st.addExpAndSp(10000, 0);
- st.exitQuest(true, true);
- htmltext = "31372-06.html";
- }
- else
- {
- htmltext = "31372-07.html";
- }
- break;
- case "spawn_totem":
- htmltext = (st.hasQuestItems(GREEN_TOTEM)) ? spawnAshutar(npc, st) : "31560-04.html";
- break;
- }
- }
- else
- {
- if (event.equals("despawn_ashutar"))
- {
- npc.broadcastPacket(new NpcSay(npc, Say2.NPC_ALL, NpcStringId.THE_POWER_OF_CONSTRAINT_IS_GETTING_WEAKER_YOUR_RITUAL_HAS_FAILED));
- npc.deleteMe();
- addSpawn(VARKA_TOTEM, 105452, -36775, -1050, 34000, false, 0, true);
- }
- else if (event.equals("spawn_npc"))
- {
- addSpawn(VARKA_TOTEM, 105452, -36775, -1050, 34000, false, 0, true);
- }
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
- {
- final int respawnMinDelay = (int) (43200000 * Config.RAID_MIN_RESPAWN_MULTIPLIER);
- final int respawnMaxDelay = (int) (129600000 * Config.RAID_MAX_RESPAWN_MULTIPLIER);
- final int respawnDelay = getRandom(respawnMinDelay, respawnMaxDelay);
- cancelQuestTimer("despawn_ashutar", npc, null);
- saveGlobalQuestVar("Q00610_respawn", String.valueOf(System.currentTimeMillis() + respawnDelay));
- startQuestTimer("spawn_npc", respawnDelay, null, null);
- executeForEachPlayer(killer, npc, isSummon, true, false);
- return super.onKill(npc, killer, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- String htmltext = getNoQuestMsg(player);
- final QuestState st = getQuestState(player, true);
- if (st == null)
- {
- return htmltext;
- }
-
- switch (npc.getId())
- {
- case ASEFA:
- switch (st.getState())
- {
- case State.CREATED:
- htmltext = (player.getLevel() >= MIN_LEVEL) ? (st.hasQuestItems(GREEN_TOTEM)) ? "31372-01.htm" : "31372-00a.html" : "31372-00b.html";
- break;
- case State.STARTED:
- htmltext = (st.isCond(1)) ? "31372-03.html" : (st.hasQuestItems(ASHUTAR_HEART)) ? "31372-04.html" : "31372-05.html";
- break;
- }
- break;
- case VARKA_TOTEM:
- if (st.isStarted())
- {
- switch (st.getCond())
- {
- case 1:
- htmltext = "31560-01.html";
- break;
- case 2:
- htmltext = spawnAshutar(npc, st);
- break;
- case 3:
- htmltext = "31560-05.html";
- break;
- }
- }
- break;
- }
- return htmltext;
- }
-
- private String spawnAshutar(L2Npc npc, QuestState st)
- {
- if (getQuestTimer("spawn_npc", null, null) != null)
- {
- return "31560-03.html";
- }
- if (st.isCond(1))
- {
- st.takeItems(GREEN_TOTEM, 1);
- st.setCond(2, true);
- }
- npc.deleteMe();
- final L2Npc ashutar = addSpawn(ASHUTAR, 104825, -36926, -1136, 0, false, 0);
- ashutar.broadcastPacket(new NpcSay(ashutar, Say2.NPC_ALL, NpcStringId.THE_MAGICAL_POWER_OF_WATER_COMES_FROM_THE_POWER_OF_STORM_AND_HAIL_IF_YOU_DARE_TO_CONFRONT_IT_ONLY_DEATH_WILL_AWAIT_YOU));
- startQuestTimer("despawn_ashutar", 1200000, ashutar, null);
- return "31560-02.html";
- }
-}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-01.htm b/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-01.htm
deleted file mode 100644
index a94860144f..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-01.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Varka's Messenger Naran Ashanuk:
-We Varka have shown our strength and tenacity in countless battles and wars, but know that we can't survive alone. Everyone needs friends. We're looking for friends to help us fight! Will you fight alongside the mighty Varka Silenos?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-02.htm b/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-02.htm
deleted file mode 100644
index 29b7c2c1c8..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-02.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Varka's Messenger Naran Ashanuk:
-We're looking for an exceptionally strong fighter! Why don't you come back when you've developed your skills a bit more?
-(This quest may only be undertaken by a character of level 74 or above.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-03.htm b/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-03.htm
deleted file mode 100644
index 3b6325e401..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-03.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Varka's Messenger Naran Ashanuk:
-You've got some nerve, coming around here after helping our enemy! Have you no shame?
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-04.htm b/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-04.htm
deleted file mode 100644
index f02965bcd1..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-04.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Varka's Messenger Naran Ashanuk:
-You seem pretty sure of yourself, but we can't afford to take in just anybody...
-If you wish to fight alongside the Varka Silenos, you must drive the Ketra Orcs from their advance base! Destroy the Ketra Orc footmen, raiders, scouts, shamans and war hounds and bring back 100 badges of Ketra grunts, then you will have proven your ability. Show us what you can do!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-05.htm b/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-05.htm
deleted file mode 100644
index c45dc0568f..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-05.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Varka's Messenger Naran Ashanuk:
-Friend of Varka. You've done well, and the trust of Varka will be growing as much as you've showed us. But, if you truly want to take our trust to a higher level, bring us 200 badges of Ketra grunts and 100 badges of Ketra officers. Fighters like you have become essential to our victory!
-You can get the captain's badge by killing Ketra Orc Warriors, Lieutenants, Mediums, Elite Soldiers, Commanders, Elite Guards, White Captains, and Seers.
-However, if I hear that you've laid a hand on our Varka Silenos in the middle, I will not be able to trust you.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-06.htm b/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-06.htm
deleted file mode 100644
index 344dace1ab..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-06.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Varka's Messenger Naran Ashanuk:
-Friend of Varka. You've shown great loyalty to the Varka twice before, dear friend! However, the trust of Varka will be growing as much as you've showed us. If you want to strengthen our alliance even further by becoming a 3rd level ally, bring us 300 badges of Ketra grunts, 200 badges of Ketra officers and 100 badges of Ketra captains.
-The badges of Ketra captains can be obtained from Ketra Orc captains, battalion commanders, grand seers, chief shamans, chief royal guards, prophets, Prophet's Guards, and Prophet's Aides.
-However, if I hear that you've laid a hand on our Varka Silenos in the middle, I will not be able to trust you.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-07.htm b/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-07.htm
deleted file mode 100644
index 85db10a9b8..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-07.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Varka's Messenger Naran Ashanuk:
-Dear and faithful friend, your countless victories for the Varka have proven your loyalty to us. However, the trust of Varka will be growing as much as you've showed us. If you wish to strengthen our alliance and become our 4th level ally, bring from the Ketra 300 badges of grunts, 300 badges of officers, 200 badges of captains and a Feather of Valor.
-The feather can be obtained by undertaking the Prove Your Courage quest, a mission assigned by Ashas Varka Durai, the elder of our tribe.
-However, if I hear that you've laid a hand on our Varka Silenos in the middle, I will not be able to trust you.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-08.htm b/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-08.htm
deleted file mode 100644
index dcc3c5c881..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-08.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Varka's Messenger Naran Ashanuk:
-Dear and faithful friend, your countless victories for the Varka have proven your loyalty to us. There is one more mission that remains... If you wish to be our level 5 ally -- our highest honor of trust, obtain400 badges of Ketra grunts, 400 badges of Ketra officers, 200 badges of Ketra captains and a Feather of Wisdom.
-The feather can be obtained by undertaking the Slay the Enemy Commander quest, a mission assigned by Ashas Varka Durai, the elder of our tribe.
-However, if I hear that you've laid a hand on our Varka Silenos in the middle, I will not be able to trust you.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-09.htm b/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-09.htm
deleted file mode 100644
index 66a52d4eff..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-09.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Varka's Messenger Naran Ashanuk:
-Respected friend of the Varka. I no longer have any duties to give you. There is no one among us who is as courageous and faithful as you. The Varka Silenos of the village will give you their greatest service and benefit. Come to the Varka's village without hesitation.
-But if their treatment does not satisfy you, you may give up the alliance.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-10.html b/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-10.html
deleted file mode 100644
index a39cf9df60..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-10.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Varka's Messenger Naran Ashanuk:
-Are you still here? If you want to be a friend of the Varka Silenos, you must go to the advance base of the Ketra Orcs and kill them all! Kill their footmen, raiders, scouts, shamans and war hounds. Bring back 100 badges of Ketra grunts, then you will have proven your friendship to the Varka.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-11.html b/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-11.html
deleted file mode 100644
index bcadaccaab..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-11.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Varka's Messenger Naran Ashanuk:
-I bet you left a bitter taste in the Ketra Orcs' mouths. What have you brought me?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-12.html b/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-12.html
deleted file mode 100644
index eae2df74eb..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-12.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Varka's Messenger Naran Ashanuk:
-We Varka appreciate your help and friendship. Henceforth, you shall be known as a friend of the Varka! Congratulations! Please accept this Mark of Varka's Alliance - 1st level. It will guarantee you proper treatment in the village shops.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-12a.html b/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-12a.html
deleted file mode 100644
index b13a14dee3..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-12a.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Varka's Messenger Naran Ashanuk:
-Friend of the Varka, go destroy our enemies!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-12b.html b/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-12b.html
deleted file mode 100644
index bd7d4d8a0e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-12b.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Varka's Messenger Naran Ashanuk:
-We value your trust, friend.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-13.html b/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-13.html
deleted file mode 100644
index 85f1abdf56..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-13.html
+++ /dev/null
@@ -1,8 +0,0 @@
-Varka's Messenger Naran Ashanuk:
-What are you still doing here? Get to the battlefield immediately!
-You've committed to bring 200 badges of Ketra grunts and 100 badges of Ketra officers.
-Get the officers' badges from Ketra Orc Warriors, lieutenants, mediums, elite soldiers, centurions, seers, legionnaire captains, and elite royal guards.
-If you don't like this job, you're always welcome to quit!
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-14.html b/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-14.html
deleted file mode 100644
index d272d9ee46..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-14.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Varka's Messenger Naran Ashanuk:
-Did those gutless Ketras cry when you beat them? How many did you kill? Where are the proofs?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-15.html b/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-15.html
deleted file mode 100644
index 729aba7b2c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-15.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Varka's Messenger Naran Ashanuk:
-Good job! You've earned this Mark of Varka's Alliance - Level 2. It gives you even more benefits and privileges from the village. If you want to use the warehouse, speak with Warehouse Keeper Hagos.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-16.html b/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-16.html
deleted file mode 100644
index e89291c8ab..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-16.html
+++ /dev/null
@@ -1,8 +0,0 @@
-Varka's Messenger Naran Ashanuk:
-What are you still doing here? Get to the battlefield immediately!
-Remember, you've agreed to bring 300 badges of Ketra grunts, 200 badges of Ketra officers and 100 badges of Ketra captains.
-You can get the General's Badge by slaying the Ketra Orc Generals, Battalion Commanders, Grand Seers, Head Shamans, Head Guards, Prophets, Prophet's Guard, and Prophet's Aide.
-If you don't like your job, you're always welcome to quit!
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-17.html b/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-17.html
deleted file mode 100644
index aa7baee1c0..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-17.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Varka's Messenger Naran Ashanuk:
-Ah, back from your visit with the Ketra Orcs, are you? What was your trophy?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-18.html b/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-18.html
deleted file mode 100644
index ac4177dfba..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-18.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Varka's Messenger Naran Ashanuk:
-Were you successful? Congratulations! Take this Mark of Varka's Alliance - Level 3. This will give you even more benefits and privileges in the village. New specialty items are available to you, and you may now receive the blessing of Udan Mardui, guide of dead souls.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-19.html b/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-19.html
deleted file mode 100644
index 3051a2b077..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-19.html
+++ /dev/null
@@ -1,7 +0,0 @@
-Varka's Messenger Naran Ashanuk:
-What are you still doing here? Get to the battlefield immediately!
-You've promised us you'd bring from the Ketra Orcs 300 badges of grunts, 300 badges of officers, 200 badges of captains and a Feather of Valor. This feather can be obtained by undertaking the Prove Your Courage quest, a mission assigned by Ashas Varka Durai, the elder of our tribe.
-
-If you don't like your job, you're always welcome to quit!
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-20.html b/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-20.html
deleted file mode 100644
index a2867fc09f..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-20.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Varka's Messenger Naran Ashanuk:
-Well, look who's back. from meeting with the Ketra Orcs. What did you find?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-21.html b/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-21.html
deleted file mode 100644
index 53b4acbe51..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-21.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Varka's Messenger Naran Ashanuk:
-Congratulations! Please accept this Mark of Varka's Alliance - Level 4. It will give you even more benefits and privileges in the village. Now you can travel to other villages through Gate Keeper Teranu Mardui.
-Now all that remains is for you to become our closest friend, one with the highest trust we bestow! Will you do it?
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-22.html b/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-22.html
deleted file mode 100644
index fc738d7e94..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-22.html
+++ /dev/null
@@ -1,7 +0,0 @@
-Varka's Messenger Naran Ashanuk:
-What are you still doing here? Get to the battlefield immediately!
-You've promised to bring 400 badges of Ketra grunts, 400 badges of Ketra officers, 200 badges of Ketra captains and a Feather of Wisdom. This feather can be obtained by undertaking the Slay the Enemy Commander quest, a mission assigned by Ashas Varka Durai, the elder of our tribe.
-Remember, you can always quit!
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-23.html b/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-23.html
deleted file mode 100644
index c454e21aba..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-23.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Varka's Messenger Naran Ashanuk:
-Congratulations, friend of Varka! Please accept this Mark of Varka's Alliance - Level 5. This entitles you to all the privileges the village can offer! From now on, you can purchase new specialty items and travel to distant hunting grounds through our gatekeeper. We're truly honored to have such a powerful and trustworthy friend as you!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-24.html b/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-24.html
deleted file mode 100644
index ed70720687..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-24.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Varka's Messenger Naran Ashanuk:
-You're braver than anyone I've ever seen! All the Varka will do their best to help you. You must visit our village and allow us to demonstrate our gratitude!
-But don't feel like you need to stay if you're unhappy...
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-25.html b/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-25.html
deleted file mode 100644
index a8c50aa845..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-25.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Varka's Messenger Naran Ashanuk:
-Friend of Varka. I, Varka's Messenger Naran Ashanuk, must warn you, friend of Varka! Once you end our alliance, we will become as strangers... as if we never met! Earning our friendship again will mean starting over at the beginning. Are you sure you want to quit?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-26.html b/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-26.html
deleted file mode 100644
index a7bd949f17..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/31378-26.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Varka's Messenger Naran Ashanuk:
-Oh well, I suppose I was wrong about you! Good-bye, stranger!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/Q00611_AllianceWithVarkaSilenos.java b/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/Q00611_AllianceWithVarkaSilenos.java
deleted file mode 100644
index 14d1cc3508..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00611_AllianceWithVarkaSilenos/Q00611_AllianceWithVarkaSilenos.java
+++ /dev/null
@@ -1,333 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00611_AllianceWithVarkaSilenos;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.l2jserver.gameserver.enums.QuestSound;
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-
-/**
- * Alliance with Varka Silenos (611)
- * @author malyelfik
- */
-public class Q00611_AllianceWithVarkaSilenos extends Quest
-{
- private static class DropInfo
- {
- private final int _chance;
- private final int _minCond;
- private final int _itemId;
-
- public DropInfo(int chance, int minCond)
- {
- _chance = chance;
- _minCond = minCond;
- switch (_minCond)
- {
- case 1:
- _itemId = KETRA_BADGE_SOLDIER;
- break;
- case 2:
- _itemId = KETRA_BADGE_OFFICER;
- break;
- default:
- _itemId = KETRA_BADGE_CAPTAIN;
- break;
- }
- }
-
- public int getMinCond()
- {
- return _minCond;
- }
-
- public int getChance()
- {
- return _chance;
- }
-
- public int getItemId()
- {
- return _itemId;
- }
- }
-
- // NPC
- private static final int NARAN_ASHANUK = 31378;
- // Monsters
- private static final Map MOBS = new HashMap<>();
- static
- {
- MOBS.put(21324, new DropInfo(500, 1)); // Ketra Orc Footman
- MOBS.put(21325, new DropInfo(500, 1)); // Ketra's War Hound
- MOBS.put(21327, new DropInfo(509, 1)); // Ketra Orc Raider
- MOBS.put(21328, new DropInfo(521, 1)); // Ketra Orc Scout
- MOBS.put(21329, new DropInfo(519, 1)); // Ketra Orc Shaman
- MOBS.put(21331, new DropInfo(500, 2)); // Ketra Orc Warrior
- MOBS.put(21332, new DropInfo(500, 2)); // Ketra Orc Lieutenant
- MOBS.put(21334, new DropInfo(509, 2)); // Ketra Orc Medium
- MOBS.put(21335, new DropInfo(518, 2)); // Ketra Orc Elite Soldier
- MOBS.put(21336, new DropInfo(518, 2)); // Ketra Orc White Captain
- MOBS.put(21338, new DropInfo(527, 2)); // Ketra Orc Seer
- MOBS.put(21339, new DropInfo(500, 3)); // Ketra Orc General
- MOBS.put(21340, new DropInfo(500, 3)); // Ketra Orc Battalion Commander
- MOBS.put(21342, new DropInfo(508, 3)); // Ketra Orc Grand Seer
- MOBS.put(21343, new DropInfo(628, 2)); // Ketra Commander
- MOBS.put(21344, new DropInfo(604, 2)); // Ketra Elite Guard
- MOBS.put(21345, new DropInfo(627, 3)); // Ketra's Head Shaman
- MOBS.put(21346, new DropInfo(604, 3)); // Ketra's Head Guard
- MOBS.put(21347, new DropInfo(649, 3)); // Ketra Prophet
- MOBS.put(21348, new DropInfo(626, 3)); // Prophet's Guard
- MOBS.put(21349, new DropInfo(626, 3)); // Prophet's Aide
- }
- // Items
- private static final int KETRA_BADGE_SOLDIER = 7226;
- private static final int KETRA_BADGE_OFFICER = 7227;
- private static final int KETRA_BADGE_CAPTAIN = 7228;
- private static final int VALOR_FEATHER = 7229;
- private static final int WISDOM_FEATHER = 7230;
- private static final int[] KETRA_MARKS =
- {
- 7211, // Mark of Ketra's Alliance - Level 1
- 7212, // Mark of Ketra's Alliance - Level 2
- 7213, // Mark of Ketra's Alliance - Level 3
- 7214, // Mark of Ketra's Alliance - Level 4
- 7215, // Mark of Ketra's Alliance - Level 5
- };
- private static final int[] VARKA_MARKS =
- {
- 7221, // Mark of Varka's Alliance - Level 1
- 7222, // Mark of Varka's Alliance - Level 2
- 7223, // Mark of Varka's Alliance - Level 3
- 7224, // Mark of Varka's Alliance - Level 4
- 7225, // Mark of Varka's Alliance - Level 5
- };
- // Misc
- private static final int MIN_LEVEL = 74;
- private static final int[] SOLDIER_BADGE_COUNT =
- {
- 100, // cond 1
- 200, // cond 2
- 300, // cond 3
- 300, // cond 4
- 400, // cond 5
- };
- private static final int[] OFFICER_BADGE_COUNT =
- {
- 0, // cond 1
- 100, // cond 2
- 200, // cond 3
- 300, // cond 4
- 400, // cond 5
- };
- private static final int[] CAPTAIN_BADGE_COUNT =
- {
- 0, // cond 1
- 0, // cond 2
- 100, // cond 3
- 200, // cond 4
- 200, // cond 5
- };
-
- public Q00611_AllianceWithVarkaSilenos()
- {
- super(611, Q00611_AllianceWithVarkaSilenos.class.getSimpleName(), "Alliance with Varka Silenos");
- addStartNpc(NARAN_ASHANUK);
- addTalkId(NARAN_ASHANUK);
- addKillId(MOBS.keySet());
- registerQuestItems(KETRA_BADGE_CAPTAIN, KETRA_BADGE_OFFICER, KETRA_BADGE_SOLDIER);
- }
-
- private boolean canGetItem(QuestState st, int itemId)
- {
- int count = 0;
- switch (itemId)
- {
- case KETRA_BADGE_SOLDIER:
- count = SOLDIER_BADGE_COUNT[st.getCond() - 1];
- break;
- case KETRA_BADGE_OFFICER:
- count = OFFICER_BADGE_COUNT[st.getCond() - 1];
- break;
- case KETRA_BADGE_CAPTAIN:
- count = CAPTAIN_BADGE_COUNT[st.getCond() - 1];
- break;
- }
- if (st.getQuestItemsCount(itemId) < count)
- {
- return true;
- }
- return false;
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return null;
- }
-
- String htmltext = event;
- switch (event)
- {
- case "31378-12a.html":
- case "31378-12b.html":
- case "31378-25.html":
- break;
- case "31378-04.htm":
- if (hasAtLeastOneQuestItem(player, KETRA_MARKS))
- {
- return "31378-03.htm";
- }
- st.setState(State.STARTED);
- st.playSound(QuestSound.ITEMSOUND_QUEST_ACCEPT);
- for (int i = 0; i < VARKA_MARKS.length; i++)
- {
- if (st.hasQuestItems(VARKA_MARKS[i]))
- {
- st.setCond(i + 2);
- return "31378-0" + (i + 5) + ".htm";
- }
- }
- st.setCond(1);
- break;
- case "31378-12.html":
- if (st.getQuestItemsCount(KETRA_BADGE_SOLDIER) < SOLDIER_BADGE_COUNT[0])
- {
- return getNoQuestMsg(player);
- }
- st.takeItems(KETRA_BADGE_SOLDIER, -1);
- st.giveItems(VARKA_MARKS[0], 1);
- st.setCond(2, true);
- break;
- case "31378-15.html":
- if ((st.getQuestItemsCount(KETRA_BADGE_SOLDIER) < SOLDIER_BADGE_COUNT[1]) || (st.getQuestItemsCount(KETRA_BADGE_OFFICER) < OFFICER_BADGE_COUNT[1]))
- {
- return getNoQuestMsg(player);
- }
- takeItems(player, -1, KETRA_BADGE_SOLDIER, KETRA_BADGE_OFFICER, VARKA_MARKS[0]);
- st.giveItems(VARKA_MARKS[1], 1);
- st.setCond(3, true);
- break;
- case "31378-18.html":
- if ((st.getQuestItemsCount(KETRA_BADGE_SOLDIER) < SOLDIER_BADGE_COUNT[2]) || (st.getQuestItemsCount(KETRA_BADGE_OFFICER) < OFFICER_BADGE_COUNT[2]) || (st.getQuestItemsCount(KETRA_BADGE_CAPTAIN) < CAPTAIN_BADGE_COUNT[2]))
- {
- return getNoQuestMsg(player);
- }
- takeItems(player, -1, KETRA_BADGE_SOLDIER, KETRA_BADGE_OFFICER, KETRA_BADGE_CAPTAIN, VARKA_MARKS[1]);
- st.giveItems(VARKA_MARKS[2], 1);
- st.setCond(4, true);
- break;
- case "31378-21.html":
- if (!st.hasQuestItems(VALOR_FEATHER) || (st.getQuestItemsCount(KETRA_BADGE_SOLDIER) < SOLDIER_BADGE_COUNT[3]) || (st.getQuestItemsCount(KETRA_BADGE_OFFICER) < OFFICER_BADGE_COUNT[3]) || (st.getQuestItemsCount(KETRA_BADGE_CAPTAIN) < CAPTAIN_BADGE_COUNT[3]))
- {
- return getNoQuestMsg(player);
- }
- takeItems(player, -1, KETRA_BADGE_SOLDIER, KETRA_BADGE_OFFICER, KETRA_BADGE_CAPTAIN, VALOR_FEATHER, VARKA_MARKS[2]);
- st.giveItems(VARKA_MARKS[3], 1);
- st.setCond(5, true);
- break;
- case "31378-26.html":
- takeItems(player, -1, VARKA_MARKS);
- takeItems(player, -1, VALOR_FEATHER, WISDOM_FEATHER);
- st.exitQuest(true, true);
- break;
- default:
- htmltext = null;
- break;
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
- {
- final L2PcInstance member = getRandomPartyMemberState(killer, State.STARTED);
- if (member != null)
- {
- final QuestState st = getQuestState(member, false);
- final DropInfo info = MOBS.get(npc.getId());
- if ((st.getCond() >= info.getMinCond()) && (st.getCond() < 6) && canGetItem(st, info.getItemId()) && (getRandom(1000) < info.getChance()))
- {
- st.giveItems(info.getItemId(), 1);
- }
- }
- return super.onKill(npc, killer, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- String htmltext = getNoQuestMsg(player);
- final QuestState st = getQuestState(player, true);
- if (st == null)
- {
- return htmltext;
- }
-
- switch (st.getState())
- {
- case State.CREATED:
- htmltext = (player.getLevel() >= MIN_LEVEL) ? "31378-01.htm" : "31378-02.htm";
- break;
- case State.STARTED:
- switch (st.getCond())
- {
- case 1:
- htmltext = (st.getQuestItemsCount(KETRA_BADGE_SOLDIER) >= SOLDIER_BADGE_COUNT[0]) ? "31378-11.html" : "31378-10.html";
- break;
- case 2:
- htmltext = (st.hasQuestItems(VARKA_MARKS[0]) && (st.getQuestItemsCount(KETRA_BADGE_SOLDIER) >= SOLDIER_BADGE_COUNT[1]) && (st.getQuestItemsCount(KETRA_BADGE_OFFICER) >= OFFICER_BADGE_COUNT[1])) ? "31378-14.html" : "31378-13.html";
- break;
- case 3:
- htmltext = (st.hasQuestItems(VARKA_MARKS[1]) && (st.getQuestItemsCount(KETRA_BADGE_SOLDIER) >= SOLDIER_BADGE_COUNT[2]) && (st.getQuestItemsCount(KETRA_BADGE_OFFICER) >= OFFICER_BADGE_COUNT[2]) && (st.getQuestItemsCount(KETRA_BADGE_CAPTAIN) >= CAPTAIN_BADGE_COUNT[2])) ? "31378-17.html" : "31378-16.html";
- break;
- case 4:
- htmltext = (hasQuestItems(player, VARKA_MARKS[2], VALOR_FEATHER) && (st.getQuestItemsCount(KETRA_BADGE_SOLDIER) >= SOLDIER_BADGE_COUNT[3]) && (st.getQuestItemsCount(KETRA_BADGE_OFFICER) >= OFFICER_BADGE_COUNT[3]) && (st.getQuestItemsCount(KETRA_BADGE_CAPTAIN) >= CAPTAIN_BADGE_COUNT[3])) ? "31378-20.html" : "31378-19.html";
- break;
- case 5:
- if (!st.hasQuestItems(VARKA_MARKS[3]) || !st.hasQuestItems(WISDOM_FEATHER) || (st.getQuestItemsCount(KETRA_BADGE_SOLDIER) < SOLDIER_BADGE_COUNT[4]) || (st.getQuestItemsCount(KETRA_BADGE_OFFICER) < OFFICER_BADGE_COUNT[4]) || (st.getQuestItemsCount(KETRA_BADGE_CAPTAIN) < CAPTAIN_BADGE_COUNT[4]))
- {
- return "31378-22.html";
- }
- st.setCond(6, true);
- takeItems(player, -1, KETRA_BADGE_SOLDIER, KETRA_BADGE_OFFICER, KETRA_BADGE_CAPTAIN, WISDOM_FEATHER, VARKA_MARKS[3]);
- st.giveItems(VARKA_MARKS[4], 1);
- htmltext = "31378-23.html";
- break;
- case 6:
- if (st.hasQuestItems(VARKA_MARKS[4]))
- {
- htmltext = "31378-24.html";
- }
- break;
- }
- break;
- }
- return htmltext;
- }
-}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00612_BattleAgainstKetraOrcs/31377-01.htm b/trunk/dist/game/data/scripts/quests/Q00612_BattleAgainstKetraOrcs/31377-01.htm
deleted file mode 100644
index 566f807010..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00612_BattleAgainstKetraOrcs/31377-01.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Chief Ashas Varka Durai:
-Our ancient battle against the Ketra Orcs continues to this very day. We must defeat them once and for all and reclaim our promised land! Who will join our fight?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00612_BattleAgainstKetraOrcs/31377-02.htm b/trunk/dist/game/data/scripts/quests/Q00612_BattleAgainstKetraOrcs/31377-02.htm
deleted file mode 100644
index 867028b915..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00612_BattleAgainstKetraOrcs/31377-02.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Chief Ashas Varka Durai:
-Your courage is admirable, but you're not quite ready for the fight. Improve your skills and come back.
-(This quest may only be undertaken by characters of level 74 or above.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00612_BattleAgainstKetraOrcs/31377-03.htm b/trunk/dist/game/data/scripts/quests/Q00612_BattleAgainstKetraOrcs/31377-03.htm
deleted file mode 100644
index 64e7db1fb1..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00612_BattleAgainstKetraOrcs/31377-03.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Chief Ashas Varka Durai:
-Excellent! Raid the advance base of Ketra Orcs and kill as many as you can! Bring back their molars as proof of victory. Bring back 100 of them and I'll give you a prize of valor!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00612_BattleAgainstKetraOrcs/31377-04.html b/trunk/dist/game/data/scripts/quests/Q00612_BattleAgainstKetraOrcs/31377-04.html
deleted file mode 100644
index 15fdd55c2e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00612_BattleAgainstKetraOrcs/31377-04.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Chief Ashas Varka Durai
-My colleague, have you slaughtered many enemies, those barbarian Orcs of Ketra? Did you place the shadow of humiliation and disgrace upon them?
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00612_BattleAgainstKetraOrcs/31377-05.html b/trunk/dist/game/data/scripts/quests/Q00612_BattleAgainstKetraOrcs/31377-05.html
deleted file mode 100644
index 0fd74e846d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00612_BattleAgainstKetraOrcs/31377-05.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Chief Ashas Varka Durai:
-Drive the Ketra Orcs from the promised land of the Varka! Don't let a single invader escape! Kill them all!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00612_BattleAgainstKetraOrcs/31377-06.html b/trunk/dist/game/data/scripts/quests/Q00612_BattleAgainstKetraOrcs/31377-06.html
deleted file mode 100644
index 32a89ea403..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00612_BattleAgainstKetraOrcs/31377-06.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Chief Ashas Varka Durai:
-The fight continues! Onward to victory!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00612_BattleAgainstKetraOrcs/31377-07.html b/trunk/dist/game/data/scripts/quests/Q00612_BattleAgainstKetraOrcs/31377-07.html
deleted file mode 100644
index 64f27d18fb..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00612_BattleAgainstKetraOrcs/31377-07.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Chief Ashas Varka Durai:
-Excellent job, my friend! Today's was a stellar victory! You're our hero! You shall be well rewarded! At one time, this Buffalo horn was given only to soldiers of our tribe. It's quite valuable! You could trade it for something you really need!
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00612_BattleAgainstKetraOrcs/31377-08.html b/trunk/dist/game/data/scripts/quests/Q00612_BattleAgainstKetraOrcs/31377-08.html
deleted file mode 100644
index 5ea79f543d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00612_BattleAgainstKetraOrcs/31377-08.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Chief Ashas Varka Durai:
-Didn't I ask for at least 100 molars of Ketra Orcs! Return to the battlefield now!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00612_BattleAgainstKetraOrcs/31377-09.html b/trunk/dist/game/data/scripts/quests/Q00612_BattleAgainstKetraOrcs/31377-09.html
deleted file mode 100644
index 99285b298f..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00612_BattleAgainstKetraOrcs/31377-09.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Chief Ashas Varka Durai:
-Even an invincible warrior must rest occasionally! You've done a noble service! Come back when you're rested!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00612_BattleAgainstKetraOrcs/Q00612_BattleAgainstKetraOrcs.java b/trunk/dist/game/data/scripts/quests/Q00612_BattleAgainstKetraOrcs/Q00612_BattleAgainstKetraOrcs.java
deleted file mode 100644
index cc419b8735..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00612_BattleAgainstKetraOrcs/Q00612_BattleAgainstKetraOrcs.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00612_BattleAgainstKetraOrcs;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.l2jserver.gameserver.enums.QuestSound;
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-
-/**
- * Battle against Ketra Orcs (612)
- * @author malyelfik
- */
-public class Q00612_BattleAgainstKetraOrcs extends Quest
-{
- // NPC
- private static final int ASHAS = 31377;
- // Monsters
- private static final Map MOBS = new HashMap<>();
- static
- {
- MOBS.put(21324, 500); // Ketra Orc Footman
- MOBS.put(21327, 510); // Ketra Orc Raider
- MOBS.put(21328, 522); // Ketra Orc Scout
- MOBS.put(21329, 519); // Ketra Orc Shaman
- MOBS.put(21331, 529); // Ketra Orc Warrior
- MOBS.put(21332, 529); // Ketra Orc Lieutenant
- MOBS.put(21334, 539); // Ketra Orc Medium
- MOBS.put(21336, 548); // Ketra Orc White Captain
- MOBS.put(21338, 558); // Ketra Orc Seer
- MOBS.put(21339, 568); // Ketra Orc General
- MOBS.put(21340, 568); // Ketra Orc Battalion Commander
- MOBS.put(21342, 578); // Ketra Orc Grand Seer
- MOBS.put(21343, 664); // Ketra Commander
- MOBS.put(21345, 713); // Ketra's Head Shaman
- MOBS.put(21347, 738); // Ketra Prophet
- }
- // Items
- private static final int SEED = 7187;
- private static final int MOLAR = 7234;
- // Misc
- private static final int MIN_LEVEL = 74;
- private static final int MOLAR_COUNT = 100;
-
- public Q00612_BattleAgainstKetraOrcs()
- {
- super(612, Q00612_BattleAgainstKetraOrcs.class.getSimpleName(), "Battle against Ketra Orcs");
- addStartNpc(ASHAS);
- addTalkId(ASHAS);
- addKillId(MOBS.keySet());
- registerQuestItems(MOLAR);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return null;
- }
-
- String htmltext = event;
- switch (event)
- {
- case "31377-03.htm":
- st.startQuest();
- break;
- case "31377-06.html":
- break;
- case "31377-07.html":
- if (st.getQuestItemsCount(MOLAR) < MOLAR_COUNT)
- {
- return "31377-08.html";
- }
- st.takeItems(MOLAR, MOLAR_COUNT);
- st.giveItems(SEED, 20);
- break;
- case "31377-09.html":
- st.exitQuest(true, true);
- break;
- default:
- htmltext = null;
- break;
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
- {
- final L2PcInstance member = getRandomPartyMember(killer, 1);
- if ((member != null) && (getRandom(1000) < MOBS.get(npc.getId())))
- {
- final QuestState st = getQuestState(member, false);
- st.giveItems(MOLAR, 1);
- st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
- }
- return super.onKill(npc, killer, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- String htmltext = getNoQuestMsg(player);
- final QuestState st = getQuestState(player, true);
- if (st == null)
- {
- return htmltext;
- }
-
- switch (st.getState())
- {
- case State.CREATED:
- htmltext = (player.getLevel() >= MIN_LEVEL) ? "31377-01.htm" : "31377-02.htm";
- break;
- case State.STARTED:
- htmltext = (st.hasQuestItems(MOLAR)) ? "31377-04.html" : "31377-05.html";
- break;
- }
- return htmltext;
- }
-}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00613_ProveYourCourageVarka/31377-01.htm b/trunk/dist/game/data/scripts/quests/Q00613_ProveYourCourageVarka/31377-01.htm
deleted file mode 100644
index fbc7ee89ef..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00613_ProveYourCourageVarka/31377-01.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Chief Ashas Varka Durai:
-Have you heard of Hekaton, the hero of those despicable Ketra Orcs? Countless brave Varka soldiers have fallen before his axe, and I can still hear his howls of victory! We Varka can no longer ignore his atrocities! I seek a brave warrior to execute this scurvy dog! Will you prove your valor to all Varkas by cutting down Hekaton, the sworn enemy of the Varka?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00613_ProveYourCourageVarka/31377-02.htm b/trunk/dist/game/data/scripts/quests/Q00613_ProveYourCourageVarka/31377-02.htm
deleted file mode 100644
index e3adbc0349..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00613_ProveYourCourageVarka/31377-02.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Chief Ashas Varka Durai:
-I must find a worthy fighter who can defeat Hekaton of the Ketra Orcs! Sadly, I don't think you're up to the task! Sigh... It seems like they're all too young or too old...
-(Only a character who possesses the mark of Varka's friend - 3rd level can undertake this quest.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00613_ProveYourCourageVarka/31377-03.htm b/trunk/dist/game/data/scripts/quests/Q00613_ProveYourCourageVarka/31377-03.htm
deleted file mode 100644
index 2667170866..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00613_ProveYourCourageVarka/31377-03.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Chief Ashas Varka Durai:
-You're not ready yet, my child!
-(Only a character of level 75 or above may undertake this quest.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00613_ProveYourCourageVarka/31377-04.htm b/trunk/dist/game/data/scripts/quests/Q00613_ProveYourCourageVarka/31377-04.htm
deleted file mode 100644
index 9db9182a35..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00613_ProveYourCourageVarka/31377-04.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Chief Ashas Varka Durai:
-Do you truly believe you can kill Hekaton? This will be the ultimate test of your courage! Kill that filthy hero of the Ketra Orcs and cut off his head! But you mustn't forget, he's a formidable enemy! Even the best warrior is made more formidable with trusted friends fighting by his side! Gather your strongest allies and conquer the cruel Hekaton!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00613_ProveYourCourageVarka/31377-05.html b/trunk/dist/game/data/scripts/quests/Q00613_ProveYourCourageVarka/31377-05.html
deleted file mode 100644
index 214487131f..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00613_ProveYourCourageVarka/31377-05.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Chief Ashas Varka Durai:
-Have you brought the head of the hero of the Ketra Orcs?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00613_ProveYourCourageVarka/31377-06.html b/trunk/dist/game/data/scripts/quests/Q00613_ProveYourCourageVarka/31377-06.html
deleted file mode 100644
index 6fe9fcb498..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00613_ProveYourCourageVarka/31377-06.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Chief Ashas Varka Durai:
-Prove yourself! Kill Hekaton and cut off his head!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00613_ProveYourCourageVarka/31377-07.html b/trunk/dist/game/data/scripts/quests/Q00613_ProveYourCourageVarka/31377-07.html
deleted file mode 100644
index df9e38955e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00613_ProveYourCourageVarka/31377-07.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Chief Ashas Varka Durai:
-Is this the head of the beast who spilt gallons of our tribe's blood? Excellent! You're a true soldier! You've proven your valor! Dear friend of Varka, please accept this Feather of Valor.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00613_ProveYourCourageVarka/Q00613_ProveYourCourageVarka.java b/trunk/dist/game/data/scripts/quests/Q00613_ProveYourCourageVarka/Q00613_ProveYourCourageVarka.java
deleted file mode 100644
index 01a83db630..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00613_ProveYourCourageVarka/Q00613_ProveYourCourageVarka.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00613_ProveYourCourageVarka;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-import com.l2jserver.gameserver.util.Util;
-
-/**
- * Prove Your Courage! (Varka) (613)
- * @author malyelfik
- */
-public class Q00613_ProveYourCourageVarka extends Quest
-{
- // NPC
- private static final int ASHAS = 31377;
- // Monster
- private static final int HEKATON = 25299;
- // Items
- private static final int HEKATON_HEAD = 7240;
- private static final int VALOR_FEATHER = 7229;
- private static final int VARKA_ALLIANCE_THREE = 7223;
- // Misc
- private static final int MIN_LEVEL = 75;
-
- public Q00613_ProveYourCourageVarka()
- {
- super(613, Q00613_ProveYourCourageVarka.class.getSimpleName(), "Prove Your Courage! (Varka)");
- addStartNpc(ASHAS);
- addTalkId(ASHAS);
- addKillId(HEKATON);
- registerQuestItems(HEKATON_HEAD);
- }
-
- @Override
- public void actionForEachPlayer(L2PcInstance player, L2Npc npc, boolean isSummon)
- {
- final QuestState st = getQuestState(player, false);
- if ((st != null) && st.isCond(1) && Util.checkIfInRange(1500, npc, player, false))
- {
- st.giveItems(HEKATON_HEAD, 1);
- st.setCond(2, true);
- }
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return null;
- }
-
- String htmltext = event;
- switch (event)
- {
- case "31377-04.htm":
- st.startQuest();
- break;
- case "31377-07.html":
- if (st.hasQuestItems(HEKATON_HEAD) && st.isCond(2))
- {
- st.giveItems(VALOR_FEATHER, 1);
- st.addExpAndSp(10000, 0);
- st.exitQuest(true, true);
- }
- else
- {
- htmltext = getNoQuestMsg(player);
- }
- break;
- default:
- htmltext = null;
- break;
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
- {
- executeForEachPlayer(killer, npc, isSummon, true, false);
- return super.onKill(npc, killer, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- String htmltext = getNoQuestMsg(player);
- final QuestState st = getQuestState(player, true);
- if (st == null)
- {
- return htmltext;
- }
-
- switch (st.getState())
- {
- case State.CREATED:
- htmltext = (player.getLevel() >= MIN_LEVEL) ? (st.hasQuestItems(VARKA_ALLIANCE_THREE)) ? "31377-01.htm" : "31377-02.htm" : "31377-03.htm";
- break;
- case State.STARTED:
- htmltext = (st.isCond(2) && st.hasQuestItems(HEKATON_HEAD)) ? "31377-05.html" : "31377-06.html";
- break;
- }
- return htmltext;
- }
-}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00614_SlayTheEnemyCommanderVarka/31377-01.htm b/trunk/dist/game/data/scripts/quests/Q00614_SlayTheEnemyCommanderVarka/31377-01.htm
deleted file mode 100644
index e8f7b309fd..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00614_SlayTheEnemyCommanderVarka/31377-01.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Chief Ashas Varka Durai:
-The time has come for the Varka to strike back! If we are to prevail, we must first slay the commander of Ketra Orcs! Who will step forward to kill this beast?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00614_SlayTheEnemyCommanderVarka/31377-02.htm b/trunk/dist/game/data/scripts/quests/Q00614_SlayTheEnemyCommanderVarka/31377-02.htm
deleted file mode 100644
index 4a5cf99c90..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00614_SlayTheEnemyCommanderVarka/31377-02.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Chief Ashas Varka Durai:
-The time has not yet come. If we are to achieve victory, we must have patience. A superior strategist waits patiently for just the right moment... and when that moment comes... he strikes!
-(Only characters who possess the mark of Varka's friend - 4th level can undertake this quest.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00614_SlayTheEnemyCommanderVarka/31377-03.htm b/trunk/dist/game/data/scripts/quests/Q00614_SlayTheEnemyCommanderVarka/31377-03.htm
deleted file mode 100644
index b5dd9a7156..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00614_SlayTheEnemyCommanderVarka/31377-03.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Chief Ashas Varka Durai:
-You're not quite ready. Go improve your skills!
-(This quest may only be undertaken by characters of level 75 or above.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00614_SlayTheEnemyCommanderVarka/31377-04.htm b/trunk/dist/game/data/scripts/quests/Q00614_SlayTheEnemyCommanderVarka/31377-04.htm
deleted file mode 100644
index f403054d0f..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00614_SlayTheEnemyCommanderVarka/31377-04.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Chief Ashas Varka Durai:
-Are you ready? You've already defeated Hekaton, hero of the Ketra, you should be able to defeat Tayre as well!
-Tayre is the commander of Ketra forces. He's a typical savage, little more than a beast! He has cruelly massacred hundreds of Varka soldiers! He must be stopped! Kill Tayre, cut off his head and bring it to me!
-Bear this in mind! Commander Tayre is every bit as powerful as Hekaton! You're strong but you can't fight him alone! Take some friends with you!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00614_SlayTheEnemyCommanderVarka/31377-05.html b/trunk/dist/game/data/scripts/quests/Q00614_SlayTheEnemyCommanderVarka/31377-05.html
deleted file mode 100644
index fb39e686dd..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00614_SlayTheEnemyCommanderVarka/31377-05.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Chief Ashas Varka Durai:
-Dear friend of Varka, have you brought the Head of Tayre, the commander of the Ketras?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00614_SlayTheEnemyCommanderVarka/31377-06.html b/trunk/dist/game/data/scripts/quests/Q00614_SlayTheEnemyCommanderVarka/31377-06.html
deleted file mode 100644
index ea97ac3e0a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00614_SlayTheEnemyCommanderVarka/31377-06.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Chief Ashas Varka Durai:
-I await the news of your victory! You are very brave! Kill Tayre, the commander of the Ketra forces and bring back his head!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00614_SlayTheEnemyCommanderVarka/31377-07.html b/trunk/dist/game/data/scripts/quests/Q00614_SlayTheEnemyCommanderVarka/31377-07.html
deleted file mode 100644
index 854dd9a3b6..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00614_SlayTheEnemyCommanderVarka/31377-07.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Chief Ashas Varka Durai:
-Is this the Head of Tayre? Ugly bastard, wasn't he? I'm very proud of you! Take this Feather of Wisdom in recognition your outstanding military achievements. This is the Feather of Wisdom. It's the custom of the Varka to give this to the our most respected friends! Congratulations!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00614_SlayTheEnemyCommanderVarka/Q00614_SlayTheEnemyCommanderVarka.java b/trunk/dist/game/data/scripts/quests/Q00614_SlayTheEnemyCommanderVarka/Q00614_SlayTheEnemyCommanderVarka.java
deleted file mode 100644
index 73376289fa..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00614_SlayTheEnemyCommanderVarka/Q00614_SlayTheEnemyCommanderVarka.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00614_SlayTheEnemyCommanderVarka;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-import com.l2jserver.gameserver.util.Util;
-
-/**
- * Slay the Enemy Commander! (Varka) (614)
- * @author malyelfik
- */
-public class Q00614_SlayTheEnemyCommanderVarka extends Quest
-{
- // NPC
- private static final int ASHAS = 31377;
- // Monster
- private static final int TAYR = 25302;
- // Items
- private static final int TAYR_HEAD = 7241;
- private static final int WISDOM_FEATHER = 7230;
- private static final int VARKA_ALLIANCE_FOUR = 7224;
- // Misc
- private static final int MIN_LEVEL = 75;
-
- public Q00614_SlayTheEnemyCommanderVarka()
- {
- super(614, Q00614_SlayTheEnemyCommanderVarka.class.getSimpleName(), "Slay the Enemy Commander! (Varka)");
- addStartNpc(ASHAS);
- addTalkId(ASHAS);
- addKillId(TAYR);
- registerQuestItems(TAYR_HEAD);
- }
-
- @Override
- public void actionForEachPlayer(L2PcInstance player, L2Npc npc, boolean isSummon)
- {
- final QuestState st = getQuestState(player, false);
- if ((st != null) && st.isCond(1) && Util.checkIfInRange(1500, npc, player, false))
- {
- st.giveItems(TAYR_HEAD, 1);
- st.setCond(2, true);
- }
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return null;
- }
-
- String htmltext = event;
- switch (event)
- {
- case "31377-04.htm":
- st.startQuest();
- break;
- case "31377-07.html":
- if (st.hasQuestItems(TAYR_HEAD) && st.isCond(2))
- {
- st.giveItems(WISDOM_FEATHER, 1);
- st.addExpAndSp(10000, 0);
- st.exitQuest(true, true);
- }
- else
- {
- htmltext = getNoQuestMsg(player);
- }
- break;
- default:
- htmltext = null;
- break;
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
- {
- executeForEachPlayer(killer, npc, isSummon, true, false);
- return super.onKill(npc, killer, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- String htmltext = getNoQuestMsg(player);
- final QuestState st = getQuestState(player, true);
- if (st == null)
- {
- return htmltext;
- }
-
- switch (st.getState())
- {
- case State.CREATED:
- htmltext = (player.getLevel() >= MIN_LEVEL) ? (st.hasQuestItems(VARKA_ALLIANCE_FOUR)) ? "31377-01.htm" : "31377-02.htm" : "31377-03.htm";
- break;
- case State.STARTED:
- htmltext = (st.isCond(2) && st.hasQuestItems(TAYR_HEAD)) ? "31377-05.html" : "31377-06.html";
- break;
- }
- return htmltext;
- }
-}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31378-00a.html b/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31378-00a.html
deleted file mode 100644
index e4f3dfa8e9..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31378-00a.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Varka's Messenger Naran Ashanuk:
-Friend of Varka, Guide of Dead Souls Udan Mardui is keeping an eye on your progress. He may one day bless you with a new mission. But only if you train harder!
-(This quest is for characters level 74 and above, and who have the 'Proof of Alliance with Varka Silenos' - Level 1 or above.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31378-00b.html b/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31378-00b.html
deleted file mode 100644
index 54ec4d84c5..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31378-00b.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Varka's Messenger Naran Ashanuk:
-Friend of Varka, Guide of Dead Souls Udan Mardui is watching you. Should he call upon you, you must be ready. When that day comes... you WILL be.
-(This quest is for characters level 74 and above, and who have the 'Proof of Alliance with Varka Silenos' - Level 1 or above.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31378-01.htm b/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31378-01.htm
deleted file mode 100644
index 26a029911a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31378-01.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Varka's Messenger Naran Ashanuk:
-You have been an inspiration to the Varka, my friend!
-Udan Mardui has recently expressed interest in assigning a mission to you. Are you up to it?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31378-02.html b/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31378-02.html
deleted file mode 100644
index d2a2f1cdc9..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31378-02.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Varka's Messenger Naran Ashanuk:
-Very well! Udan Mardui can tell you all about it. You can find him in the center of the village. Get going!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31378-03.html b/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31378-03.html
deleted file mode 100644
index bd439d46c2..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31378-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Varka's Messenger Naran Ashanuk:
-Have you met the guide of dead souls yet? Of course, I'm speaking of Udan Mardui, located in the center of the village. He has all the details regarding your new mission!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31379-01.html b/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31379-01.html
deleted file mode 100644
index 9df547177d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31379-01.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Soul Guide Udan Mardui:
-Do you feel the power of Asefa engulfing the battleground, comrade?
-You must go to the Ketra Orc Outpost and steal the Red Totem, the source of his power. You mustn't confront it's guardians directly! If they discover you, you'll never get the totem.
-Once you do this, I'll give you the Divine Stone of Wisdom, a sacred relic of our tribe!
-The Red Totem is locked inside a box, so don't forget to take the Thief Key with you. I pray that you are victorious!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31379-02.html b/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31379-02.html
deleted file mode 100644
index a2cc03c54c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31379-02.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Soul Guide Udan Mardui:
-Bring me the Red Totem, the source of Soul Guide Asefa's power, and don't let the guards see you! The totem is locked inside a box, so don't forget to take the Thief Key with you.
-Once you do this, I'll give you a sacred relic of our tribe!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31379-03.html b/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31379-03.html
deleted file mode 100644
index 7c16a7cf88..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31379-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Soul Guide Udan Mardui:
-You were spotted? How careless! I'll blind the guard for you. Go back and bring the totem from Asefa's box!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31379-04.html b/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31379-04.html
deleted file mode 100644
index b2de834d63..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31379-04.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Soul Guide Udan Mardui:
-Oh, were you successful? Is this the Red Totem? I feel the strong energy of fire! I didn't think that Ketra Orcs could use this mysterious power!
-In honor of your wisdom and courage, I hereby bestow upon you this holy relic of our tribe, the Divine Stone of Wisdom.
-Now, I, Udan Mardui, will discover the secret contained within the totem. Come back to see me later. I'll have more work for you.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31559-01.html b/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31559-01.html
deleted file mode 100644
index 41cd4356f2..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31559-01.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Asefa's Box:
-There is a box with Ketra Orcs' sorcerous patterns engraved. It seems that the box contains something powerful like the power of fire.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31559-02.html b/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31559-02.html
deleted file mode 100644
index a6aa8942e3..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31559-02.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Asefa's Box:
-This box can only be opened with a Thief Key.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31559-03.html b/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31559-03.html
deleted file mode 100644
index 9ad7184f35..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31559-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Asefa's Box:
- The box opened! In the box, there is a Red Totem from which I can feel some strong power.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31559-04.html b/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31559-04.html
deleted file mode 100644
index 7dfa33efb0..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/31559-04.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Asefa's Box:
-The box opened! But it's empty. The surveillant must have found out and hid the Red Totem somewhere else. Go back to Soul Guide Udan Mardui, and come back again after breaking the curse.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/Q00615_MagicalPowerOfFirePart1.java b/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/Q00615_MagicalPowerOfFirePart1.java
deleted file mode 100644
index 0b60ebe9e4..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00615_MagicalPowerOfFirePart1/Q00615_MagicalPowerOfFirePart1.java
+++ /dev/null
@@ -1,221 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00615_MagicalPowerOfFirePart1;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.holders.SkillHolder;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
-import com.l2jserver.gameserver.network.serverpackets.NpcSay;
-
-/**
- * Magical Power of Fire - Part 1 (615)
- * @author Joxit
- */
-public class Q00615_MagicalPowerOfFirePart1 extends Quest
-{
- // NPCs
- private static final int NARAN = 31378;
- private static final int UDAN = 31379;
- private static final int ASEFA_BOX = 31559;
- private static final int ASEFA_EYE = 31684;
- // Monsters
- private static final int[] KETRA_MOBS =
- {
- 21324, // Ketra Orc Footman
- 21325, // Ketra's War Hound
- 21327, // Ketra Orc Raider
- 21328, // Ketra Orc Scout
- 21329, // Ketra Orc Shaman
- 21331, // Ketra Orc Warrior
- 21332, // Ketra Orc Lieutenant
- 21334, // Ketra Orc Medium
- 21335, // Ketra Orc Elite Soldier
- 21336, // Ketra Orc White Captain
- 21338, // Ketra Orc Seer
- 21339, // Ketra Orc General
- 21340, // Ketra Orc Battalion Commander
- 21342, // Ketra Orc Grand Seer
- 21343, // Ketra Commander
- 21344, // Ketra Elite Guard
- 21345, // Ketra's Head Shaman
- 21346, // Ketra's Head Guard
- 21347, // Ketra Prophet
- 21348, // Prophet's Guard
- 21349, // Prophet's Aide
- };
- // Items
- private static final int KEY = 1661;
- private static final int STOLEN_RED_TOTEM = 7242;
- private static final int WISDOM_STONE = 7081;
- private static final int RED_TOTEM = 7243;
- private static final int[] VARKA_MARKS =
- {
- 7221, // Mark of Varka's Alliance - Level 1
- 7222, // Mark of Varka's Alliance - Level 2
- 7223, // Mark of Varka's Alliance - Level 3
- 7224, // Mark of Varka's Alliance - Level 4
- 7225, // Mark of Varka's Alliance - Level 5
- };
- // Skills
- private static SkillHolder GOW = new SkillHolder(4547, 1); // Gaze of Watcher
- private static SkillHolder DISPEL_GOW = new SkillHolder(4548, 1); // Quest - Dispel Watcher Gaze
- // Misc
- private static final int MIN_LEVEL = 74;
-
- public Q00615_MagicalPowerOfFirePart1()
- {
- super(615, Q00615_MagicalPowerOfFirePart1.class.getSimpleName(), "Magical Power of Fire - Part 1");
- addStartNpc(NARAN);
- addTalkId(UDAN, NARAN, ASEFA_BOX);
- addAttackId(KETRA_MOBS);
- registerQuestItems(STOLEN_RED_TOTEM);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return null;
- }
- String htmltext = null;
- switch (event)
- {
- case "31378-02.html":
- st.startQuest();
- htmltext = event;
- break;
- case "open_box":
- if (!st.hasQuestItems(KEY))
- {
- htmltext = "31559-02.html";
- }
- else if (st.isCond(2))
- {
- if (st.isSet("spawned"))
- {
- st.takeItems(KEY, 1);
- htmltext = "31559-04.html";
- }
- else
- {
- st.giveItems(STOLEN_RED_TOTEM, 1);
- st.takeItems(KEY, 1);
- st.setCond(3, true);
- htmltext = "31559-03.html";
- }
- }
- break;
- case "eye_despawn":
- npc.broadcastPacket(new NpcSay(npc, Say2.NPC_ALL, NpcStringId.ASEFA_HAS_ALREADY_SEEN_YOUR_FACE));
- npc.deleteMe();
- break;
- }
- return htmltext;
- }
-
- @Override
- public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon)
- {
- final QuestState st = getQuestState(attacker, false);
- if ((st != null) && st.isCond(2) && !st.isSet("spawned"))
- {
- st.set("spawned", "1");
- npc.setTarget(attacker);
- npc.doCast(GOW.getSkill());
- final L2Npc eye = addSpawn(ASEFA_EYE, npc);
- eye.broadcastPacket(new NpcSay(eye, Say2.NPC_ALL, NpcStringId.YOU_CAN_T_AVOID_THE_EYES_OF_ASEFA));
- startQuestTimer("eye_despawn", 10000, eye, attacker);
- }
- return super.onAttack(npc, attacker, damage, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- String htmltext = getNoQuestMsg(player);
- final QuestState st = getQuestState(player, true);
- if (st == null)
- {
- return htmltext;
- }
-
- switch (npc.getId())
- {
- case NARAN:
- switch (st.getState())
- {
- case State.CREATED:
- htmltext = (player.getLevel() >= MIN_LEVEL) ? (hasAtLeastOneQuestItem(player, VARKA_MARKS)) ? "31378-01.htm" : "31378-00a.html" : "31378-00b.html";
- break;
- case State.STARTED:
- if (st.isCond(1))
- {
- htmltext = "31378-03.html";
- }
- break;
- }
- break;
- case UDAN:
- if (st.isStarted())
- {
- switch (st.getCond())
- {
- case 1:
- htmltext = "31379-01.html";
- st.setCond(2, true);
- break;
- case 2:
- if (st.isSet("spawned"))
- {
- st.unset("spawned");
- npc.setTarget(player);
- npc.doCast(DISPEL_GOW.getSkill());
- htmltext = "31379-03.html";
- }
- else
- {
- htmltext = "31379-02.html";
- }
- break;
- case 3:
- st.giveItems(RED_TOTEM, 1);
- st.giveItems(WISDOM_STONE, 1);
- st.exitQuest(true, true);
- htmltext = "31379-04.html";
- break;
- }
- }
- break;
- case ASEFA_BOX:
- if (st.isCond(2))
- {
- htmltext = "31559-01.html";
- }
- break;
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31379-00a.html b/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31379-00a.html
deleted file mode 100644
index 94e99d7f5c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31379-00a.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Soul Guide Udan Mardui:
-You have to steal the Red Totem, the source of Asefa's magical power. Without the totem, you can't break the bond between Nastron and Asefa.
-(Quest may only be undertaken by characters with the Red Totem.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31379-00b.html b/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31379-00b.html
deleted file mode 100644
index 2127b65a9f..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31379-00b.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Soul Guide Udan Mardui:
-You're not strong enough yet.
-(Quest may only be undertaken by characters of level 75 or above.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31379-01.htm b/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31379-01.htm
deleted file mode 100644
index a4569b8d26..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31379-01.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Soul Guide Udan Mardui:
-The chief shaman guards a whole race with his powers of magic. Asefa harnessed some very powerful fire magic. It's not the totem itself, but the soul of fire Nastron conjured by it. We must break the bond between them. Can you complete this mission, friend?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31379-02.html b/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31379-02.html
deleted file mode 100644
index d73d6b18d5..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31379-02.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Soul Guide Udan Mardui:
-Excellent. Varka's friend. What you have to do from now on, it's to break into Ketra Orc Outpost and find the Holy Altar. The Holy Altar is hidden in a deep place of Ketra Orc Outpost. First, go to the Holy Altar with this Red Totem. Then, use this Red Totem there and conjure Soul of Fire Nastron which breathes power into Asefa. And then, defeat the appeared Nastron and bring the heart of Flame to Udan Mardui, which is the linkingpin with Asefa. That is your task.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31379-03.html b/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31379-03.html
deleted file mode 100644
index 9fa5654c81..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31379-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Soul Guide Udan Mardui:
-Find the holy altar in the Ketra outpost. Use the Red Totem there to conjure Nastron and kill him. Bring me the source of power, his heart of flame!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31379-04.html b/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31379-04.html
deleted file mode 100644
index 21f45a2c1d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31379-04.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Soul Guide Udan Mardui:
-I sensed the magical power of the Ketra Orcs getting weaker. Was your mission a success?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31379-05.html b/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31379-05.html
deleted file mode 100644
index 3649ea663c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31379-05.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Soul Guide Udan Mardui:
-Defeat the soul of fire Nastron and bring me the source of power, the heart of flame!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31379-06.html b/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31379-06.html
deleted file mode 100644
index f3e84c5cc5..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31379-06.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Soul Guide Udan Mardui:
-Excellent! Now I, Udan Mardui, will possess Asefa's mighty power of fire! Thanks to you, our victory is assured!
-Congratulations!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31379-07.html b/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31379-07.html
deleted file mode 100644
index b12c94ab63..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31379-07.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Soul Guide Udan Mardui:
-Bring me Nastron's heart of flame!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31558-01.html b/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31558-01.html
deleted file mode 100644
index 5a1373a8a3..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31558-01.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Ketra's Holy Altar:
-This stone sculpture is the work of artisans. It resembles a ram's head.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31558-02.html b/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31558-02.html
deleted file mode 100644
index 74d1efcefe..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31558-02.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Ketra's Holy Altar:
-The Red Totem broke into pieces with sharp noise. With blue energy around the altar, Soul of Fire Nastron appears.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31558-03.html b/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31558-03.html
deleted file mode 100644
index 2852b3075d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31558-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Ketra's Holy Altar:
-Someone is already performing a ritual at the altar.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31558-04.html b/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31558-04.html
deleted file mode 100644
index 7d0e56c1d0..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31558-04.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Ketra's Holy Spirit:
-Without the Red Totem, I can't conjure Soul of Fire Nastron.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31558-05.html b/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31558-05.html
deleted file mode 100644
index 67bdcd6fd6..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/31558-05.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Ketra's Holy Altar:
-The energy I felt at the altar is getting weaker.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/Q00616_MagicalPowerOfFirePart2.java b/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/Q00616_MagicalPowerOfFirePart2.java
deleted file mode 100644
index 55aafcc395..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00616_MagicalPowerOfFirePart2/Q00616_MagicalPowerOfFirePart2.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00616_MagicalPowerOfFirePart2;
-
-import com.l2jserver.Config;
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
-import com.l2jserver.gameserver.network.serverpackets.NpcSay;
-import com.l2jserver.gameserver.util.Util;
-
-/**
- * Magical Power of Fire - Part 2 (616)
- * @author Joxit
- */
-public class Q00616_MagicalPowerOfFirePart2 extends Quest
-{
- // NPCs
- private static final int UDAN = 31379;
- private static final int KETRA_TOTEM = 31558;
- // Monster
- private static final int NASTRON = 25306;
- // Items
- private static final int RED_TOTEM = 7243;
- private static final int NASTRON_HEART = 7244;
- // Misc
- private static final int MIN_LEVEL = 75;
-
- public Q00616_MagicalPowerOfFirePart2()
- {
- super(616, Q00616_MagicalPowerOfFirePart2.class.getSimpleName(), "Magical Power of Fire - Part 2");
- addStartNpc(UDAN);
- addTalkId(UDAN, KETRA_TOTEM);
- addKillId(NASTRON);
- registerQuestItems(RED_TOTEM, NASTRON_HEART);
-
- final String test = loadGlobalQuestVar("Q00616_respawn");
- final long remain = (!test.isEmpty()) ? (Long.parseLong(test) - System.currentTimeMillis()) : 0;
- if (remain > 0)
- {
- startQuestTimer("spawn_npc", remain, null, null);
- }
- else
- {
- addSpawn(KETRA_TOTEM, 142368, -82512, -6487, 58000, false, 0, true);
- }
- }
-
- @Override
- public void actionForEachPlayer(L2PcInstance player, L2Npc npc, boolean isSummon)
- {
- final QuestState st = getQuestState(player, false);
- if ((st != null) && Util.checkIfInRange(1500, npc, player, false))
- {
- if (npc.getId() == NASTRON)
- {
- switch (st.getCond())
- {
- case 1: // take the item and give the heart
- st.takeItems(RED_TOTEM, 1);
- case 2:
- if (!st.hasQuestItems(NASTRON_HEART))
- {
- st.giveItems(NASTRON_HEART, 1);
- }
- st.setCond(3, true);
- break;
- }
- }
- }
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- String htmltext = null;
- if (player != null)
- {
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return null;
- }
-
- switch (event)
- {
- case "31379-02.html":
- st.startQuest();
- htmltext = event;
- break;
- case "give_heart":
- if (st.hasQuestItems(NASTRON_HEART))
- {
- st.addExpAndSp(10000, 0);
- st.exitQuest(true, true);
- htmltext = "31379-06.html";
- }
- else
- {
- htmltext = "31379-07.html";
- }
- break;
- case "spawn_totem":
- htmltext = (st.hasQuestItems(RED_TOTEM)) ? spawnNastron(npc, st) : "31558-04.html";
- break;
- }
- }
- else
- {
- if (event.equals("despawn_nastron"))
- {
- npc.broadcastPacket(new NpcSay(npc, Say2.NPC_ALL, NpcStringId.THE_POWER_OF_CONSTRAINT_IS_GETTING_WEAKER_YOUR_RITUAL_HAS_FAILED));
- npc.deleteMe();
- addSpawn(KETRA_TOTEM, 142368, -82512, -6487, 58000, false, 0, true);
- }
- else if (event.equals("spawn_npc"))
- {
- addSpawn(KETRA_TOTEM, 142368, -82512, -6487, 58000, false, 0, true);
- }
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
- {
- final int respawnMinDelay = (int) (43200000 * Config.RAID_MIN_RESPAWN_MULTIPLIER);
- final int respawnMaxDelay = (int) (129600000 * Config.RAID_MAX_RESPAWN_MULTIPLIER);
- final int respawnDelay = getRandom(respawnMinDelay, respawnMaxDelay);
- cancelQuestTimer("despawn_nastron", npc, null);
- saveGlobalQuestVar("Q00616_respawn", String.valueOf(System.currentTimeMillis() + respawnDelay));
- startQuestTimer("spawn_npc", respawnDelay, null, null);
- executeForEachPlayer(killer, npc, isSummon, true, false);
- return super.onKill(npc, killer, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- String htmltext = getNoQuestMsg(player);
- final QuestState st = getQuestState(player, true);
- if (st == null)
- {
- return htmltext;
- }
-
- switch (npc.getId())
- {
- case UDAN:
- switch (st.getState())
- {
- case State.CREATED:
- htmltext = (player.getLevel() >= MIN_LEVEL) ? (st.hasQuestItems(RED_TOTEM)) ? "31379-01.htm" : "31379-00a.html" : "31379-00b.html";
- break;
- case State.STARTED:
- htmltext = (st.isCond(1)) ? "31379-03.html" : (st.hasQuestItems(NASTRON_HEART)) ? "31379-04.html" : "31379-05.html";
- break;
- }
- break;
- case KETRA_TOTEM:
- if (st.isStarted())
- {
- switch (st.getCond())
- {
- case 1:
- htmltext = "31558-01.html";
- break;
- case 2:
- htmltext = spawnNastron(npc, st);
- break;
- case 3:
- htmltext = "31558-05.html";
- break;
- }
- }
- break;
- }
- return htmltext;
- }
-
- private String spawnNastron(L2Npc npc, QuestState st)
- {
- if (getQuestTimer("spawn_npc", null, null) != null)
- {
- return "31558-03.html";
- }
- if (st.isCond(1))
- {
- st.takeItems(RED_TOTEM, 1);
- st.setCond(2, true);
- }
- npc.deleteMe();
- final L2Npc nastron = addSpawn(NASTRON, 142528, -82528, -6496, 0, false, 0);
- nastron.broadcastPacket(new NpcSay(nastron, Say2.NPC_ALL, NpcStringId.THE_MAGICAL_POWER_OF_FIRE_IS_ALSO_THE_POWER_OF_FLAMES_AND_LAVA_IF_YOU_DARE_TO_CONFRONT_IT_ONLY_DEATH_WILL_AWAIT_YOU));
- startQuestTimer("despawn_nastron", 1200000, nastron, null);
- return "31558-02.html";
- }
-}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00619_RelicsOfTheOldEmpire/31538-01.htm b/trunk/dist/game/data/scripts/quests/Q00619_RelicsOfTheOldEmpire/31538-01.htm
deleted file mode 100644
index 8d44bf3609..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00619_RelicsOfTheOldEmpire/31538-01.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Ghost of Adventurer:
-I came here in search of treasure to reverse my losses... And was killed before I even laid eyes on any! It's so unfair! I must get some treasure! Of course, they say that all the good treasure has already been stolen by graverobbers!
-Hmmm... I remember overhearing some gossip that a group of aristocrats were slaugtered at this sepulcher by evil creatures. I don't mean any disrespect, but if you hunt the evil creatures, you might recover some accessories or jewelry carried by the aristocrats! If you find any would you bring them to me?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00619_RelicsOfTheOldEmpire/31538-02.htm b/trunk/dist/game/data/scripts/quests/Q00619_RelicsOfTheOldEmpire/31538-02.htm
deleted file mode 100644
index bc875fc9fd..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00619_RelicsOfTheOldEmpire/31538-02.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Ghost of Adventurer:
-Please, do this for me! Hunt the monsters in the Imperial Tomb. Bring me 1000 relics and I'll give you some scraps of paper I've collected. Many people really like my scraps of paper. I'm not sure, but I think they're some sort of weapon recipes...
-While you're doing this, you may find a sepulcher pass that was carried by one of the aristocrats. Ask the nameless ghost near the Four Sepulchers, he will tell you what it's for.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00619_RelicsOfTheOldEmpire/31538-03.html b/trunk/dist/game/data/scripts/quests/Q00619_RelicsOfTheOldEmpire/31538-03.html
deleted file mode 100644
index a67c372a5a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00619_RelicsOfTheOldEmpire/31538-03.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Ghost of Adventurer:
-I came here in search of treasure to reverse my losses... And was killed before I even laid eyes on any! It's so unfair! I must get some treasure! Of course, they say that all the good treasure has already been stolen by graverobbers!
-Hmmm... I remember overhearing some gossip that a group of aristocrats were slaugtered at this sepulcher by evil creatures. Perhaps the treasure from those slain aristocrats might still be there... But this is far too dangerous of a mission for you to take on...
-(This quest may only be undertaken by a character of level 74 or above.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00619_RelicsOfTheOldEmpire/31538-04.html b/trunk/dist/game/data/scripts/quests/Q00619_RelicsOfTheOldEmpire/31538-04.html
deleted file mode 100644
index f8b9f659ee..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00619_RelicsOfTheOldEmpire/31538-04.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Ghost of Adventurer:
-Great! You brought 1000 relics! Do you want to trade them for a piece of paper?
-Did you find a sepulcher pass? Ask the nameless ghost near the Four Sepulchers, he'll tell you what it's for.
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00619_RelicsOfTheOldEmpire/31538-05.html b/trunk/dist/game/data/scripts/quests/Q00619_RelicsOfTheOldEmpire/31538-05.html
deleted file mode 100644
index e6f3098e99..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00619_RelicsOfTheOldEmpire/31538-05.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Ghost of Adventurer:
-Thank you for continuing to search for relics. Hunt the monsters in the Imperial Tomb, you should be able to find more.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00619_RelicsOfTheOldEmpire/31538-06.html b/trunk/dist/game/data/scripts/quests/Q00619_RelicsOfTheOldEmpire/31538-06.html
deleted file mode 100644
index 0484a19143..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00619_RelicsOfTheOldEmpire/31538-06.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Ghost of Adventurer:
-Here you go! Oh, you like it? I prefer the relics! Bring some more and I'll give you more scraps of paper.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00619_RelicsOfTheOldEmpire/31538-07.html b/trunk/dist/game/data/scripts/quests/Q00619_RelicsOfTheOldEmpire/31538-07.html
deleted file mode 100644
index d92ea68f9e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00619_RelicsOfTheOldEmpire/31538-07.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Ghost of Adventurer:
-You don't have 1000 relics yet? Hunt the monsters in the Imperial Tomb, you should be able to obtain them. Keep trying! Collect 1000 relics and bring them to me, I'll give you a very nice piece of paper, supposedly a recipe for some sort of weapon.
-Ah, I see that you have the sepulcher pass! Ask the nameless ghost near the Four Sepulchers, he'll tell you what it's for.
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00619_RelicsOfTheOldEmpire/31538-08.html b/trunk/dist/game/data/scripts/quests/Q00619_RelicsOfTheOldEmpire/31538-08.html
deleted file mode 100644
index 3f50d1629e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00619_RelicsOfTheOldEmpire/31538-08.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Ghost of Adventurer:
-A quitter, eh? Goodbye.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00619_RelicsOfTheOldEmpire/Q00619_RelicsOfTheOldEmpire.java b/trunk/dist/game/data/scripts/quests/Q00619_RelicsOfTheOldEmpire/Q00619_RelicsOfTheOldEmpire.java
deleted file mode 100644
index 35f07887a0..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00619_RelicsOfTheOldEmpire/Q00619_RelicsOfTheOldEmpire.java
+++ /dev/null
@@ -1,326 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00619_RelicsOfTheOldEmpire;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.util.Util;
-
-/**
- * Relics of the Old Empire (619)
- * @author Adry_85, jurchiks
- */
-public final class Q00619_RelicsOfTheOldEmpire extends Quest
-{
- private static final class DropInfo
- {
- public final double _dropChance;
- public final int _doubleItemChance;
- public final boolean _dropEntrancePass;
-
- public DropInfo(double dropChance, int doubleItemChance, boolean dropEntrancePass)
- {
- _dropChance = dropChance;
- _doubleItemChance = doubleItemChance;
- _dropEntrancePass = dropEntrancePass;
- }
-
- public double getDropChance()
- {
- return _dropChance;
- }
-
- public int getDoubleItemChance()
- {
- return _doubleItemChance;
- }
-
- public boolean getDropEntrancePass()
- {
- return _dropEntrancePass;
- }
- }
-
- // NPC
- private static final int GHOST_OF_ADVENTURER = 31538;
- // Items
- private static final int ENTRANCE_PASS_TO_THE_SEPULCHER = 7075;
- private static final int BROKEN_RELIC_PART = 7254;
- // Misc
- private static final int MIN_LEVEL = 74;
- private static final int REQUIRED_RELIC_COUNT = 1000;
- // Reward
- private static final int[] RECIPES =
- {
- 6881, // Recipe: Forgotten Blade (60%)
- 6883, // Recipe: Basalt Battlehammer (60%)
- 6885, // Recipe: Imperial Staff (60%)
- 6887, // Recipe: Angel Slayer (60%)
- 6891, // Recipe: Dragon Hunter Axe (60%)
- 6893, // Recipe: Saint Spear (60%)
- 6895, // Recipe: Demon Splinter (60%)
- 6897, // Recipe: Heavens Divider (60%)
- 6899, // Recipe: Arcana Mace (60%)
- 7580, // Recipe: Draconic Bow (60%)
- };
- // Mobs
- private static final Map MOBS = new HashMap<>();
- static
- {
- MOBS.put(21396, new DropInfo(0.51, 0, true)); // carrion_scarab
- MOBS.put(21397, new DropInfo(0.50, 0, true)); // carrion_scarab_a
- MOBS.put(21398, new DropInfo(0.95, 0, true)); // soldier_scarab
- MOBS.put(21399, new DropInfo(0.84, 0, true)); // soldier_scarab_a
- MOBS.put(21400, new DropInfo(0.76, 0, true)); // hexa_beetle
- MOBS.put(21401, new DropInfo(0.67, 0, true)); // hexa_beetle_a
- MOBS.put(21402, new DropInfo(0.69, 0, true)); // katraxith
- MOBS.put(21403, new DropInfo(0.80, 0, true)); // katraxith_a
- MOBS.put(21404, new DropInfo(0.90, 0, true)); // tera_beetle
- MOBS.put(21405, new DropInfo(0.64, 0, true)); // tera_beetle_a
- MOBS.put(21406, new DropInfo(0.87, 0, true)); // imperial_knight
- MOBS.put(21407, new DropInfo(0.56, 0, true)); // imperial_knight_a
- MOBS.put(21408, new DropInfo(0.82, 0, true)); // imperial_guard
- MOBS.put(21409, new DropInfo(0.92, 0, true)); // imperial_guard_a
- MOBS.put(21410, new DropInfo(0.81, 0, true)); // guardian_scarab
- MOBS.put(21411, new DropInfo(0.66, 0, true)); // guardian_scarab_a
- MOBS.put(21412, new DropInfo(1.00, 6, true)); // ustralith
- MOBS.put(21413, new DropInfo(0.81, 0, true)); // ustralith_a
- MOBS.put(21414, new DropInfo(0.79, 0, true)); // imperial_assassin
- MOBS.put(21415, new DropInfo(0.80, 0, true)); // imperial_assassin_a
- MOBS.put(21416, new DropInfo(0.82, 0, true)); // imperial_warlord
- MOBS.put(21417, new DropInfo(1.00, 27, true)); // imperial_warlord_a
- MOBS.put(21418, new DropInfo(0.66, 0, true)); // imperial_highguard
- MOBS.put(21419, new DropInfo(0.67, 0, true)); // imperial_highguard_a
- MOBS.put(21420, new DropInfo(0.82, 0, true)); // ashuras
- MOBS.put(21421, new DropInfo(0.77, 0, true)); // ashuras_a
- MOBS.put(21422, new DropInfo(0.88, 0, true)); // imperial_dancer
- MOBS.put(21423, new DropInfo(0.94, 0, true)); // imperial_dancer_a
- MOBS.put(21424, new DropInfo(1.00, 19, true)); // ashikenas
- MOBS.put(21425, new DropInfo(1.00, 21, true)); // ashikenas_a
- MOBS.put(21426, new DropInfo(1.00, 8, true)); // abraxian
- MOBS.put(21427, new DropInfo(0.74, 0, true)); // abraxian_a
- MOBS.put(21428, new DropInfo(0.76, 0, true)); // hasturan
- MOBS.put(21429, new DropInfo(0.80, 0, true)); // hasturan_a
- MOBS.put(21430, new DropInfo(1.00, 10, true)); // ahrimanes
- MOBS.put(21431, new DropInfo(0.94, 0, true)); // ahrimanes_a
- MOBS.put(21432, new DropInfo(1.00, 34, true)); // chakram_beetle
- MOBS.put(21433, new DropInfo(1.00, 34, true)); // jamadhr_beetle
- MOBS.put(21434, new DropInfo(1.00, 90, true)); // priest_of_blood
- MOBS.put(21435, new DropInfo(1.00, 60, true)); // sacrifice_guide
- MOBS.put(21436, new DropInfo(1.00, 66, true)); // sacrifice_bearer
- MOBS.put(21437, new DropInfo(0.69, 0, true)); // sacrifice_scarab
- MOBS.put(21798, new DropInfo(0.33, 0, true)); // guard_skeleton_2d
- MOBS.put(21799, new DropInfo(0.61, 0, true)); // guard_skeleton_3d
- MOBS.put(21800, new DropInfo(0.31, 0, true)); // guard_undead
- MOBS.put(18120, new DropInfo(1.00, 28, false)); // r11_roomboss_strong
- MOBS.put(18121, new DropInfo(1.00, 21, false)); // r11_roomboss_weak
- MOBS.put(18122, new DropInfo(0.93, 0, false)); // r11_roomboss_teleport
- MOBS.put(18123, new DropInfo(1.00, 28, false)); // r12_roomboss_strong
- MOBS.put(18124, new DropInfo(1.00, 21, false)); // r12_roomboss_weak
- MOBS.put(18125, new DropInfo(0.93, 0, false)); // r12_roomboss_teleport
- MOBS.put(18126, new DropInfo(1.00, 28, false)); // r13_roomboss_strong
- MOBS.put(18127, new DropInfo(1.00, 21, false)); // r13_roomboss_weak
- MOBS.put(18128, new DropInfo(0.93, 0, false)); // r13_roomboss_teleport
- MOBS.put(18129, new DropInfo(1.00, 28, false)); // r14_roomboss_strong
- MOBS.put(18130, new DropInfo(1.00, 21, false)); // r14_roomboss_weak
- MOBS.put(18131, new DropInfo(0.93, 0, false)); // r14_roomboss_teleport
- MOBS.put(18132, new DropInfo(1.00, 30, false)); // r1_beatle_healer
- MOBS.put(18133, new DropInfo(1.00, 20, false)); // r1_scorpion_warrior
- MOBS.put(18134, new DropInfo(0.90, 0, false)); // r1_warrior_longatk1_h
- MOBS.put(18135, new DropInfo(1.00, 20, false)); // r1_warrior_longatk2
- MOBS.put(18136, new DropInfo(1.00, 20, false)); // r1_warrior_selfbuff
- MOBS.put(18137, new DropInfo(0.89, 0, false)); // r1_wizard_h
- MOBS.put(18138, new DropInfo(1.00, 19, false)); // r1_wizard_clanbuff
- MOBS.put(18139, new DropInfo(1.00, 17, false)); // r1_wizard_debuff
- MOBS.put(18140, new DropInfo(1.00, 19, false)); // r1_wizard_selfbuff
- MOBS.put(18141, new DropInfo(0.76, 0, false)); // r21_scarab_roombosss
- MOBS.put(18142, new DropInfo(0.76, 0, false)); // r22_scarab_roombosss
- MOBS.put(18143, new DropInfo(0.76, 0, false)); // r23_scarab_roombosss
- MOBS.put(18144, new DropInfo(0.76, 0, false)); // r24_scarab_roombosss
- MOBS.put(18145, new DropInfo(0.65, 0, false)); // r2_wizard_clanbuff
- MOBS.put(18146, new DropInfo(0.66, 0, false)); // r2_warrior_longatk2
- MOBS.put(18147, new DropInfo(0.62, 0, false)); // r2_wizard
- MOBS.put(18148, new DropInfo(0.72, 0, false)); // r2_warrior
- MOBS.put(18149, new DropInfo(0.63, 0, false)); // r2_bomb
- MOBS.put(18166, new DropInfo(0.92, 0, false)); // r3_warrior
- MOBS.put(18167, new DropInfo(0.92, 0, false)); // r3_warrior_longatk1_h
- MOBS.put(18168, new DropInfo(0.93, 0, false)); // r3_warrior_longatk2
- MOBS.put(18169, new DropInfo(0.90, 0, false)); // r3_warrior_selfbuff
- MOBS.put(18170, new DropInfo(0.90, 0, false)); // r3_wizard_h
- MOBS.put(18171, new DropInfo(0.94, 0, false)); // r3_wizard_clanbuff
- MOBS.put(18172, new DropInfo(0.89, 0, false)); // r3_wizard_selfbuff
- MOBS.put(18173, new DropInfo(0.99, 0, false)); // r41_roomboss_strong
- MOBS.put(18174, new DropInfo(1.00, 22, false)); // r41_roomboss_weak
- MOBS.put(18175, new DropInfo(0.93, 0, false)); // r41_roomboss_teleport
- MOBS.put(18176, new DropInfo(0.99, 0, false)); // r42_roomboss_strong
- MOBS.put(18177, new DropInfo(1.00, 22, false)); // r42_roomboss_weak
- MOBS.put(18178, new DropInfo(0.93, 0, false)); // r42_roomboss_teleport
- MOBS.put(18179, new DropInfo(0.99, 0, false)); // r43_roomboss_strong
- MOBS.put(18180, new DropInfo(1.00, 22, false)); // r43_roomboss_weak
- MOBS.put(18181, new DropInfo(0.93, 0, false)); // r43_roomboss_teleport
- MOBS.put(18183, new DropInfo(1.00, 22, false)); // r44_roomboss_weak
- MOBS.put(18183, new DropInfo(0.99, 0, false)); // r44_roomboss_strong
- MOBS.put(18184, new DropInfo(0.93, 0, false)); // r44_roomboss_teleport
- MOBS.put(18185, new DropInfo(1.00, 23, false)); // r4_healer_srddmagic
- MOBS.put(18186, new DropInfo(1.00, 24, false)); // r4_hearler_srdebuff
- MOBS.put(18187, new DropInfo(1.00, 20, false)); // r4_warrior
- MOBS.put(18188, new DropInfo(0.90, 0, false)); // r4_warrior_longatk1_h
- MOBS.put(18189, new DropInfo(1.00, 20, false)); // r4_warrior_longatk2
- MOBS.put(18190, new DropInfo(1.00, 20, false)); // r4_warrior_selfbuff
- MOBS.put(18191, new DropInfo(0.89, 0, false)); // r4_wizard_h
- MOBS.put(18192, new DropInfo(1.00, 19, false)); // r4_wizard_clanbuff
- MOBS.put(18193, new DropInfo(1.00, 17, false)); // r4_wizard_debuff
- MOBS.put(18194, new DropInfo(1.00, 19, false)); // r4_wizard_selfbuff
- MOBS.put(18195, new DropInfo(0.91, 0, false)); // r4_bomb
- MOBS.put(18220, new DropInfo(1.00, 24, false)); // r5_healer1
- MOBS.put(18221, new DropInfo(1.00, 27, false)); // r5_healer2
- MOBS.put(18222, new DropInfo(1.00, 21, false)); // r5_warrior
- MOBS.put(18223, new DropInfo(0.90, 0, false)); // r5_warrior_longatk1_h
- MOBS.put(18224, new DropInfo(1.00, 22, false)); // r5_warrior_longatk2
- MOBS.put(18225, new DropInfo(1.00, 21, false)); // r5_warrior_sbuff
- MOBS.put(18226, new DropInfo(0.89, 0, false)); // r5_wizard_h
- MOBS.put(18227, new DropInfo(1.00, 53, false)); // r5_wizard_clanbuff
- MOBS.put(18228, new DropInfo(1.00, 15, false)); // r5_wizard_debuff
- MOBS.put(18229, new DropInfo(1.00, 19, false)); // r5_wizard_slefbuff
- MOBS.put(18230, new DropInfo(0.49, 0, false)); // r5_bomb
- }
-
- // @formatter:off
- private static final int[] ARCHON_OF_HALISHA =
- {
- 18212, 18213, 18214, 18215, 18216, 18217, 18218, 18219
- };
- // @formatter:on
-
- public Q00619_RelicsOfTheOldEmpire()
- {
- super(619, Q00619_RelicsOfTheOldEmpire.class.getSimpleName(), "Relics of the Old Empire");
- addStartNpc(GHOST_OF_ADVENTURER);
- addTalkId(GHOST_OF_ADVENTURER);
- addKillId(MOBS.keySet());
- addKillId(ARCHON_OF_HALISHA);
- registerQuestItems(BROKEN_RELIC_PART);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return null;
- }
-
- String htmltext = null;
- switch (event)
- {
- case "31538-02.htm":
- {
- st.startQuest();
- htmltext = event;
- break;
- }
- case "31538-05.html":
- {
- htmltext = event;
- break;
- }
- case "31538-06.html":
- {
- if (st.getQuestItemsCount(BROKEN_RELIC_PART) >= REQUIRED_RELIC_COUNT)
- {
- st.rewardItems(RECIPES[getRandom(RECIPES.length)], 1);
- st.takeItems(BROKEN_RELIC_PART, REQUIRED_RELIC_COUNT);
- htmltext = event;
- }
- break;
- }
- case "31538-08.html":
- {
- st.exitQuest(true, true);
- htmltext = event;
- break;
- }
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
- {
- final QuestState st = getRandomPartyMemberState(player, -1, 3, npc);
- if (st != null)
- {
- int npcId = npc.getId();
- if (Util.contains(ARCHON_OF_HALISHA, npcId))
- {
- final int itemCount = ((getRandom(100) < 79) ? 4 : 3);
- st.giveItemRandomly(npc, BROKEN_RELIC_PART, itemCount, 0, 1.0, true);
- }
- else
- {
- final DropInfo info = MOBS.get(npcId);
- final int itemCount;
-
- if (info.getDoubleItemChance() > 0)
- {
- itemCount = ((getRandom(100) < info.getDoubleItemChance()) ? 2 : 1);
- }
- else
- {
- itemCount = 1;
- }
-
- st.giveItemRandomly(npc, BROKEN_RELIC_PART, itemCount, 0, info.getDropChance(), true);
-
- if (info.getDropEntrancePass())
- {
- st.giveItemRandomly(npc, ENTRANCE_PASS_TO_THE_SEPULCHER, 1, 0, 1.0 / 30, false);
- }
- }
- }
- return super.onKill(npc, player, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, true);
- String htmltext = getNoQuestMsg(player);
- if (st == null)
- {
- return htmltext;
- }
-
- if (st.isCreated())
- {
- htmltext = ((player.getLevel() >= MIN_LEVEL) ? "31538-01.htm" : "31538-03.html");
- }
- else if (st.isStarted())
- {
- htmltext = ((getQuestItemsCount(player, BROKEN_RELIC_PART) >= REQUIRED_RELIC_COUNT) ? "31538-04.html" : "31538-07.html");
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00625_TheFinestIngredientsPart2/Q00625_TheFinestIngredientsPart2.java b/trunk/dist/game/data/scripts/quests/Q00625_TheFinestIngredientsPart2/Q00625_TheFinestIngredientsPart2.java
index 80630c2eb8..10a297831c 100644
--- a/trunk/dist/game/data/scripts/quests/Q00625_TheFinestIngredientsPart2/Q00625_TheFinestIngredientsPart2.java
+++ b/trunk/dist/game/data/scripts/quests/Q00625_TheFinestIngredientsPart2/Q00625_TheFinestIngredientsPart2.java
@@ -19,6 +19,7 @@
package quests.Q00625_TheFinestIngredientsPart2;
import com.l2jserver.gameserver.datatables.SpawnTable;
+import com.l2jserver.gameserver.enums.ChatType;
import com.l2jserver.gameserver.model.Location;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
@@ -26,7 +27,6 @@ import com.l2jserver.gameserver.model.holders.ItemHolder;
import com.l2jserver.gameserver.model.quest.Quest;
import com.l2jserver.gameserver.model.quest.QuestState;
import com.l2jserver.gameserver.network.NpcStringId;
-import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.NpcSay;
import com.l2jserver.gameserver.util.Util;
@@ -163,7 +163,7 @@ public final class Q00625_TheFinestIngredientsPart2 extends Quest
{
if (isBumbalumpSpawned())
{
- npc.broadcastPacket(new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npc.getTemplate().getDisplayId(), NpcStringId.OOOH));
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getTemplate().getDisplayId(), NpcStringId.OOOH));
}
break;
}
@@ -261,7 +261,7 @@ public final class Q00625_TheFinestIngredientsPart2 extends Quest
public String onSpawn(L2Npc npc)
{
startQuestTimer("NPC_TALK", 1000 * 1200, npc, null);
- // npc.broadcastPacket(new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npc.getTemplate().getDisplayId(), NpcStringId.I_SMELL_SOMETHING_DELICIOUS)); //TODO: St3eT: Find proper NpcStringId
+ // npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getTemplate().getDisplayId(), NpcStringId.I_SMELL_SOMETHING_DELICIOUS)); //TODO: St3eT: Find proper NpcStringId
return super.onSpawn(npc);
}
@@ -284,4 +284,4 @@ public final class Q00625_TheFinestIngredientsPart2 extends Quest
{
return SpawnTable.getInstance().getFirstSpawn(ICICLE_EMPEROR_BUMBALUMP) != null;
}
-}
+}
diff --git a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-01.htm b/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-01.htm
deleted file mode 100644
index b20d82a440..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-01.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Mercenary Kahman:
-I'm in charge of finding skilled soldiers to become brothers in our Golden Ram Mercenary Force! Are you up to the task?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-02.htm b/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-02.htm
deleted file mode 100644
index bfa878c14b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-02.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Mercenary Kahman:
-I admire your courage, but you lack the required skills to join us.
-(Quest available only for characters level 66 or above.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-03.htm b/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-03.htm
deleted file mode 100644
index 11a8e2fed5..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-03.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Mercenary Kahman:
-We are here to destroy the Stakatos in the Swamp of Screams. They're no match for our skills, but they're tough and outnumber us, so we need all the skilled help we can get.
-You meet the basic requirements, but you must prove yourself if you want to be a member of the Golden Ram Mercenary Force!
-Kill Splinter Stakatos, Splinter Stakato Walkers, Splinter Stakato Soldiers and Splinter Stakato Drones and bring back one-hundred Stakato Chitins to prove your worth.
-Good luck to you!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-04.htm b/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-04.htm
deleted file mode 100644
index a9ec33d929..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-04.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Mercenary Kahman:
-There are two classes here, rookie and elite.
-An elite mercenary is a veteran with a long record of active service. The title earns you special priviliges.
-Rookies must kill Needle Stakatos as well as Splinter Stakatos to gain elite status. Collect one-hundred Chitins each of Splinter Stakatos and Needle Stakatos to earn the title.
-Show them what you're worth!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-05.htm b/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-05.htm
deleted file mode 100644
index d4f5cb6493..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-05.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Mercenary Kahman:
-You're already an elite warrior! What more do you want? You are free to choose.
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-06.html b/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-06.html
deleted file mode 100644
index d70660d9a0..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-06.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Mercenary Kahman:
-To become an honorable member of the Golden Ram Mercenary Force, you must collect 100 Chitins of Splinter Stakatos from the Swamp of Screams. Now go!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-07.html b/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-07.html
deleted file mode 100644
index 2b329648a9..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-07.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Mercenary Kahman:
-You're back! Have you taught the stakatos a lesson?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-08.html b/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-08.html
deleted file mode 100644
index 6b5244ab7f..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-08.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Mercenary Kahman:
-Great work, my soldier! You are fully qualified to become a brother of the Golden Ram Mercenary Force!
-Well, take this mark of Golden Ram - Recruit! From now on, you are a brother of the Golden Ram Mercenary Force. Congratulations!
-But, you must get stronger, stranger, if you want to become an elite soldier! Go into the Swamp of Screams, kill Splinter Stakatos and Needle Stakatos, and collect 100 Chitins each of Splinter Stakatos and Needle Stakatos!
-If you can't carry out such a task, you will not be able to become the Elite!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-09.html b/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-09.html
deleted file mode 100644
index e9f9dee5b5..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-09.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Mercenary Kahman:
-To become an elite member of the Golden Ram Mercenary Force, you must collect 100 Chitins each of Splinter Stakatos and Needle Stakatos.
-Prove your skills and you can rise in the ranks!
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-10.html b/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-10.html
deleted file mode 100644
index 177da31e87..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-10.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Mercenary Kahman:
-Your skills and long record of active service have earned you the title of elite mercenary in the Golden Ram Force!
-Take this Golden Ram Badge - Soldier. Congratulations, brother!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-11.html b/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-11.html
deleted file mode 100644
index 768ed38f9e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-11.html
+++ /dev/null
@@ -1,7 +0,0 @@
-Mercenary Kahman:
-See Mercenary Medic Selina and Mercenary Supplier Abercrombie if you need anything.
-Selina will help you with magic and Abercrombie will help you with supplies.
-Let me know if you've ever had enough.
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-12.html b/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-12.html
deleted file mode 100644
index 059afd401d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-12.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Mercenary Kahman:
-It's not easy to become a member. If you quit now, you may regret it later! You'll have to start from the beginning if you come back. Are you sure?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-13.html b/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-13.html
deleted file mode 100644
index f486334f6a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-13.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Mercenary Kahman:
-That's the spirit! Kill with extreme prejudice in the name of the Golden Ram!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-14.html b/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-14.html
deleted file mode 100644
index 665c69dd74..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31554-14.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Mercenary Kahman:
-What a pity. We can't afford to lose such skills, but I'll respect your decision.
-I hope to hear of your great deeds someday. May Pa'agrio's Flame be with you!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31555-00.htm b/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31555-00.htm
deleted file mode 100644
index 43678c5ebd..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31555-00.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Mercenary Supplier Abercrombie:
-Jeesh! Why are you turning into such a pain?! Can't you see I'm busy? It's more than enough for me to deal with the mercenaries! I don't have the time to deal with an outsider like you!
-If you want to serve in our Golden Ram Mercenary force, why don't you go see Kadoon. What a life! What kind of fortune can I make here? Sigh! What a life!
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31555-01.htm b/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31555-01.htm
deleted file mode 100644
index 199b7713c4..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31555-01.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Mercenary Supplier Abercrombie:
-Everyone's talking about the excellence you showed in battle again today! You're winning all the bonuses! Ha! It's good to see someone succeed in this godforsaken place!
-Now tell me! Is there anything in particular you want? Although only a few types of supplies are available, I'll see what I can do. By the way, you prepared a chit didn't you?
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31555-02.htm b/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31555-02.htm
deleted file mode 100644
index 6a47002af7..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31555-02.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Mercenary Supplier Abercrombie:
-Everyone's talking about the excellence you showed in battle again today! You're winning all the bonuses! Ha! It's good to see someone succeed in this godforsaken place!
-Now tell me! Is there anything in particular you want? Although only a few types of supplies are available, I'll see what I can do. By the way, you prepared a chit didn't you?
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31556-00.htm b/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31556-00.htm
deleted file mode 100644
index 2b87031aab..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31556-00.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Mercenary Medic Selina:
-Hey, you're not my boyfriend! You don't even belong to the Golden Ram Mercenary force! Get away from me!
-If you want to join our force go talk to that rough-looking Orc over there.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31556-01.htm b/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31556-01.htm
deleted file mode 100644
index 8114f3be76..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31556-01.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Mercenary Medic Selina:
-Huh? Have you joined us? Excellent!
-My name's Selina. I'm a medic. Welcome aboard!
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31556-02.htm b/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31556-02.htm
deleted file mode 100644
index de5e22efdc..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31556-02.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Mercenary Medic Selina:
-Listen up! Your bravery is admirable, but you must take better care of yourself! I actually felt sorry for you when you came in so mangled!
-But don't get me wrong, you did a great job! You really raised morale around here! I'd like to offer you some magical assistance. Let me know if you need anything.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31556-03.htm b/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31556-03.htm
deleted file mode 100644
index 2e1c8003c4..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31556-03.htm
+++ /dev/null
@@ -1,10 +0,0 @@
-Mercenary Medic Selina:
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31556-04.htm b/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31556-04.htm
deleted file mode 100644
index 298d5fb287..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/31556-04.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Mercenary Medic Selina:
-You don't have required items.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/Q00628_HuntGoldenRam.java b/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/Q00628_HuntGoldenRam.java
deleted file mode 100644
index 3bde3f4b5c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00628_HuntGoldenRam/Q00628_HuntGoldenRam.java
+++ /dev/null
@@ -1,356 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00628_HuntGoldenRam;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.l2jserver.gameserver.datatables.SkillData;
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.holders.ItemChanceHolder;
-import com.l2jserver.gameserver.model.holders.QuestItemHolder;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-
-/**
- * Hunt of the Golden Ram Mercenary Force (628)
- * @author netvirus
- */
-public final class Q00628_HuntGoldenRam extends Quest
-{
- // NPCs
- private static final int KAHMAN = 31554;
- private static final int ABERCROMBIE = 31555;
- private static final int SELINA = 31556;
- // Items
- private static final int GOLDEN_RAM_COIN = 7251;
- private static final int BADGE_RECRUIT = 7246;
- private static final int BADGE_SOLDIER = 7247;
- private static final int SPLINTER_STAKATO_CHITIN = 7248;
- private static final int NEEDLE_STAKATO_CHITIN = 7249;
- // Misc
- private static final int REQUIRED_ITEM_COUNT = 100;
- private static final int MIN_LVL = 66;
- // Mobs
- private static final Map MOBS_DROP_CHANCES = new HashMap<>();
- // Buffs
- private static final Map BUFFS = new HashMap<>();
-
- static
- {
- MOBS_DROP_CHANCES.put(21508, new ItemChanceHolder(SPLINTER_STAKATO_CHITIN, 0.500, 1)); // splinter_stakato
- MOBS_DROP_CHANCES.put(21509, new ItemChanceHolder(SPLINTER_STAKATO_CHITIN, 0.430, 1)); // splinter_stakato_worker
- MOBS_DROP_CHANCES.put(21510, new ItemChanceHolder(SPLINTER_STAKATO_CHITIN, 0.521, 1)); // splinter_stakato_soldier
- MOBS_DROP_CHANCES.put(21511, new ItemChanceHolder(SPLINTER_STAKATO_CHITIN, 0.575, 1)); // splinter_stakato_drone
- MOBS_DROP_CHANCES.put(21512, new ItemChanceHolder(SPLINTER_STAKATO_CHITIN, 0.746, 1)); // splinter_stakato_drone_a
- MOBS_DROP_CHANCES.put(21513, new ItemChanceHolder(NEEDLE_STAKATO_CHITIN, 0.500, 2)); // needle_stakato
- MOBS_DROP_CHANCES.put(21514, new ItemChanceHolder(NEEDLE_STAKATO_CHITIN, 0.430, 2)); // needle_stakato_worker
- MOBS_DROP_CHANCES.put(21515, new ItemChanceHolder(NEEDLE_STAKATO_CHITIN, 0.520, 2)); // needle_stakato_soldier
- MOBS_DROP_CHANCES.put(21516, new ItemChanceHolder(NEEDLE_STAKATO_CHITIN, 0.531, 2)); // needle_stakato_drone
- MOBS_DROP_CHANCES.put(21517, new ItemChanceHolder(NEEDLE_STAKATO_CHITIN, 0.744, 2)); // needle_stakato_drone_a
-
- BUFFS.put("Focus", new QuestItemHolder(4404, 2, 2)); // (buff_id, buff_level, buff_cost)
- BUFFS.put("Death", new QuestItemHolder(4405, 2, 2));
- BUFFS.put("Might", new QuestItemHolder(4393, 3, 3));
- BUFFS.put("Acumen", new QuestItemHolder(4400, 2, 3));
- BUFFS.put("Berserker", new QuestItemHolder(4397, 1, 3));
- BUFFS.put("Vampiric", new QuestItemHolder(4399, 2, 3));
- BUFFS.put("Empower", new QuestItemHolder(4401, 1, 6));
- BUFFS.put("Haste", new QuestItemHolder(4402, 2, 6));
- }
-
- public Q00628_HuntGoldenRam()
- {
- super(628, Q00628_HuntGoldenRam.class.getSimpleName(), "Hunt of the Golden Ram Mercenary Force");
- addStartNpc(KAHMAN);
- addTalkId(KAHMAN, SELINA);
- addFirstTalkId(ABERCROMBIE, SELINA);
- addKillId(MOBS_DROP_CHANCES.keySet());
- registerQuestItems(SPLINTER_STAKATO_CHITIN, NEEDLE_STAKATO_CHITIN, BADGE_RECRUIT, BADGE_SOLDIER);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState qs = getQuestState(player, false);
- String htmltext = null;
- if (qs == null)
- {
- return htmltext;
- }
-
- switch (event)
- {
- case "accept":
- {
- if (qs.isCreated())
- {
- final boolean itemRecruit = hasQuestItems(player, BADGE_RECRUIT);
- final boolean itemSoldier = hasQuestItems(player, BADGE_SOLDIER);
- qs.startQuest();
- if (itemSoldier)
- {
- htmltext = "31554-05.htm";
- qs.setCond(3);
- }
- else if (itemRecruit)
- {
- htmltext = "31554-04.htm";
- qs.setCond(2);
- }
- else
- {
- htmltext = "31554-03.htm";
- }
- }
- break;
- }
- case "31554-08.html":
- {
- if (qs.isStarted())
- {
- giveItems(player, BADGE_RECRUIT, 1);
- takeItems(player, SPLINTER_STAKATO_CHITIN, -1);
- qs.setCond(2, true);
- htmltext = event;
- }
- break;
- }
- case "31554-12.html":
- case "31554-13.html":
- {
- if (qs.isStarted())
- {
- htmltext = event;
- }
- break;
- }
- case "31554-14.html":
- {
- if (qs.isStarted())
- {
- qs.exitQuest(true, true);
- htmltext = event;
- }
- break;
- }
- case "Focus":
- case "Death":
- case "Might":
- case "Acumen":
- case "Berserker":
- case "Vampiric":
- case "Empower":
- case "Haste":
- {
- if (qs.isCond(3))
- {
- final QuestItemHolder buffs = BUFFS.get(event);
- if (getQuestItemsCount(player, GOLDEN_RAM_COIN) >= buffs.getCount())
- {
- takeItems(player, GOLDEN_RAM_COIN, buffs.getCount());
- npc.setTarget(player);
- npc.doCast(SkillData.getInstance().getSkill(buffs.getId(), buffs.getChance()));
- htmltext = "31556-03.htm";
- }
- else
- {
- htmltext = "31556-04.htm";
- }
- }
- break;
- }
- }
- return htmltext;
- }
-
- @Override
- public String onFirstTalk(L2Npc npc, L2PcInstance player)
- {
- final QuestState qs = getQuestState(player, true);
- String htmltext = null;
- if (qs == null)
- {
- switch (npc.getId())
- {
- case ABERCROMBIE:
- {
- htmltext = "31555-00.htm";
- break;
- }
- case SELINA:
- {
- htmltext = "31556-00.htm";
- break;
- }
- }
- return htmltext;
- }
-
- final boolean itemRecruit = hasQuestItems(player, BADGE_RECRUIT);
- final boolean itemSolder = hasQuestItems(player, BADGE_SOLDIER);
- switch (npc.getId())
- {
- case ABERCROMBIE:
- {
- if (qs.isStarted())
- {
- if (itemRecruit)
- {
- htmltext = "31555-01.htm";
- }
- else if (itemSolder)
- {
- htmltext = "31555-02.htm";
- }
- else
- {
- htmltext = "31555-00.htm";
- }
- }
- break;
- }
- case SELINA:
- {
- if (qs.isStarted())
- {
- if (itemRecruit)
- {
- htmltext = "31556-01.htm";
- }
- else if (itemSolder)
- {
- htmltext = "31556-02.htm";
- }
- else
- {
- htmltext = "31556-00.htm";
- }
- }
- break;
- }
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
- {
- QuestState qs = getRandomPartyMemberState(killer, -1, 1, npc);
- if (qs != null)
- {
- final ItemChanceHolder item = MOBS_DROP_CHANCES.get(npc.getId());
- if ((item.getCount() <= qs.getCond()) && !qs.isCond(3))
- {
- giveItemRandomly(qs.getPlayer(), npc, item.getId(), 1, REQUIRED_ITEM_COUNT, item.getChance(), true);
- }
- }
- return super.onKill(npc, killer, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- final QuestState qs = getQuestState(player, true);
- String htmltext = getNoQuestMsg(player);
- if (qs == null)
- {
- return htmltext;
- }
-
- switch (npc.getId())
- {
- case KAHMAN:
- {
- switch (qs.getState())
- {
- case State.CREATED:
- {
- htmltext = ((player.getLevel() >= MIN_LVL) ? "31554-01.htm" : "31554-02.htm");
- break;
- }
- case State.STARTED:
- {
- final long itemCountSplinter = getQuestItemsCount(player, SPLINTER_STAKATO_CHITIN);
- final long itemCountNeedle = getQuestItemsCount(player, NEEDLE_STAKATO_CHITIN);
- switch (qs.getCond())
- {
- case 1:
- {
- htmltext = ((itemCountSplinter >= REQUIRED_ITEM_COUNT) ? "31554-07.html" : "31554-06.html");
- break;
- }
- case 2:
- {
- if (hasQuestItems(player, BADGE_RECRUIT))
- {
- if ((itemCountSplinter >= REQUIRED_ITEM_COUNT) && (itemCountNeedle >= REQUIRED_ITEM_COUNT))
- {
- takeItems(player, BADGE_RECRUIT, -1);
- takeItems(player, SPLINTER_STAKATO_CHITIN, -1);
- takeItems(player, NEEDLE_STAKATO_CHITIN, -1);
- giveItems(player, BADGE_SOLDIER, 1);
- qs.setCond(3, true);
- htmltext = "31554-10.html";
- }
- else
- {
- htmltext = "31554-09.html";
- }
- }
- else
- {
- qs.setCond(1);
- htmltext = ((itemCountSplinter >= REQUIRED_ITEM_COUNT) ? "31554-07.html" : "31554-06.html");
- }
- break;
- }
- case 3:
- {
- if (hasQuestItems(player, BADGE_SOLDIER))
- {
- htmltext = "31554-11.html";
- }
- else
- {
- qs.setCond(1);
- htmltext = ((itemCountSplinter >= REQUIRED_ITEM_COUNT) ? "31554-07.html" : "31554-06.html");
- }
- break;
- }
- }
- break;
- }
- }
- break;
- }
- case SELINA:
- {
- if (qs.isCond(3))
- {
- htmltext = "31556-03.htm";
- }
- break;
- }
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00629_CleanUpTheSwampOfScreams/31553-01.htm b/trunk/dist/game/data/scripts/quests/Q00629_CleanUpTheSwampOfScreams/31553-01.htm
deleted file mode 100644
index a3ddc236b9..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00629_CleanUpTheSwampOfScreams/31553-01.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Mercenary Captain Pierce:
-Do you know why this is called the Swamp of Screams? Because of the haunting screams of those caught off guard! It's our rule to finish any job we take, no matter how difficult.
-Are you ready to help empty the swamp of the stakatos?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00629_CleanUpTheSwampOfScreams/31553-02.htm b/trunk/dist/game/data/scripts/quests/Q00629_CleanUpTheSwampOfScreams/31553-02.htm
deleted file mode 100644
index 28bd40cc76..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00629_CleanUpTheSwampOfScreams/31553-02.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Mercenary Captain Pierce:
-Do you know why this is called the Swamp of Screams? Because of the haunting screams of those caught off guard. It's our rule to finish any job we start, no matter how difficult.
-You're not up to it yet.
-(Quest may only be undertaken by characters level 66 or above.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00629_CleanUpTheSwampOfScreams/31553-03.htm b/trunk/dist/game/data/scripts/quests/Q00629_CleanUpTheSwampOfScreams/31553-03.htm
deleted file mode 100644
index e8a4909c3d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00629_CleanUpTheSwampOfScreams/31553-03.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Mercenary Captain Pierce:
-You'll find two types of stakatos in the Swamp of Screams, Splinter Stakatos around the edges and Needle Stakatos at the center. There are many poisonous pools that they hang around, so beware.
-When you kill one, pull out its claws. Collect 100 on each outing, they serve as proof of your deeds.
-Your life is most important, so don't get in over your head.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00629_CleanUpTheSwampOfScreams/31553-04.html b/trunk/dist/game/data/scripts/quests/Q00629_CleanUpTheSwampOfScreams/31553-04.html
deleted file mode 100644
index 5a8631b232..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00629_CleanUpTheSwampOfScreams/31553-04.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Mercenary Captain Pierce:
-Thank god you came back alright. So, how's the situation?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00629_CleanUpTheSwampOfScreams/31553-05.html b/trunk/dist/game/data/scripts/quests/Q00629_CleanUpTheSwampOfScreams/31553-05.html
deleted file mode 100644
index c6db0caac3..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00629_CleanUpTheSwampOfScreams/31553-05.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Mercenary Captain Pierce:
-Do you want to get demoted for delinquency? Get out there and slay some stakatos!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00629_CleanUpTheSwampOfScreams/31553-06.html b/trunk/dist/game/data/scripts/quests/Q00629_CleanUpTheSwampOfScreams/31553-06.html
deleted file mode 100644
index a5f49b0057..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00629_CleanUpTheSwampOfScreams/31553-06.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Mercenary Captain Pierce:
-It is impossible for us to clear the whole swamp. We don't have the strength to strike a fatal blow, we'd have to tackle the incubator and kill the queen. Our resources are too few, but we must continue until given the withdrawal order.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00629_CleanUpTheSwampOfScreams/31553-07.html b/trunk/dist/game/data/scripts/quests/Q00629_CleanUpTheSwampOfScreams/31553-07.html
deleted file mode 100644
index b161d77a75..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00629_CleanUpTheSwampOfScreams/31553-07.html
+++ /dev/null
@@ -1,7 +0,0 @@
-Mercenary Captain Pierce:
-Great fighting. Take a rest for the moment.
-Ah, take this with you. This is a reward for bringing 100 Stakato claws. It is paid to mercenaries as an allowance. Take it to the Mercenary Supplier and exchange it with various things. If you need anything, go see Abercrombie anytime!
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00629_CleanUpTheSwampOfScreams/31553-08.html b/trunk/dist/game/data/scripts/quests/Q00629_CleanUpTheSwampOfScreams/31553-08.html
deleted file mode 100644
index d3ad85a418..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00629_CleanUpTheSwampOfScreams/31553-08.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Mercenary Captain Pierce:
-Don't rest until you've brought back 100 stakato claws.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00629_CleanUpTheSwampOfScreams/31553-09.html b/trunk/dist/game/data/scripts/quests/Q00629_CleanUpTheSwampOfScreams/31553-09.html
deleted file mode 100644
index ac8fbd92bd..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00629_CleanUpTheSwampOfScreams/31553-09.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Mercenary Captain Pierce:
-Quitting, huh?
-The Golden Ram will always welcome skilled soldiers like you! You must have your own reasons, and I thank you for helping us. Come back whenever you want a good fight!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00629_CleanUpTheSwampOfScreams/Q00629_CleanUpTheSwampOfScreams.java b/trunk/dist/game/data/scripts/quests/Q00629_CleanUpTheSwampOfScreams/Q00629_CleanUpTheSwampOfScreams.java
deleted file mode 100644
index de40ff1e10..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00629_CleanUpTheSwampOfScreams/Q00629_CleanUpTheSwampOfScreams.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00629_CleanUpTheSwampOfScreams;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-
-/**
- * Clean Up The Swamp Of Screams (629)
- * @author netvirus
- */
-public final class Q00629_CleanUpTheSwampOfScreams extends Quest
-{
- // NPC
- private static final int PIERCE = 31553;
- // Items
- private static final int TALON_OF_STAKATO = 7250;
- private static final int GOLDEN_RAM_COIN = 7251;
- // Misc
- private static final int REQUIRED_TALON_COUNT = 100;
- private static final int MIN_LVL = 66;
- // Mobs
- private static final Map MOBS_DROP_CHANCES = new HashMap<>();
-
- static
- {
- MOBS_DROP_CHANCES.put(21508, 0.599); // splinter_stakato
- MOBS_DROP_CHANCES.put(21509, 0.524); // splinter_stakato_worker
- MOBS_DROP_CHANCES.put(21510, 0.640); // splinter_stakato_soldier
- MOBS_DROP_CHANCES.put(21511, 0.830); // splinter_stakato_drone
- MOBS_DROP_CHANCES.put(21512, 0.970); // splinter_stakato_drone_a
- MOBS_DROP_CHANCES.put(21513, 0.682); // needle_stakato
- MOBS_DROP_CHANCES.put(21514, 0.595); // needle_stakato_worker
- MOBS_DROP_CHANCES.put(21515, 0.727); // needle_stakato_soldier
- MOBS_DROP_CHANCES.put(21516, 0.879); // needle_stakato_drone
- MOBS_DROP_CHANCES.put(21517, 0.999); // needle_stakato_drone_a
- }
-
- public Q00629_CleanUpTheSwampOfScreams()
- {
- super(629, Q00629_CleanUpTheSwampOfScreams.class.getSimpleName(), "Clean Up The Swamp Of Screams");
- addStartNpc(PIERCE);
- addTalkId(PIERCE);
- addKillId(MOBS_DROP_CHANCES.keySet());
- registerQuestItems(TALON_OF_STAKATO, GOLDEN_RAM_COIN);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState qs = getQuestState(player, false);
- String htmltext = null;
- if (qs == null)
- {
- return htmltext;
- }
-
- switch (event)
- {
- case "31553-03.htm":
- {
- if (qs.isCreated())
- {
- qs.startQuest();
- htmltext = event;
- }
- break;
- }
- case "31553-04.html":
- case "31553-06.html":
- {
- if (qs.isStarted())
- {
- htmltext = event;
- }
- break;
- }
- case "31553-07.html":
- {
- if (qs.isStarted() && (getQuestItemsCount(player, TALON_OF_STAKATO) >= REQUIRED_TALON_COUNT))
- {
- rewardItems(player, GOLDEN_RAM_COIN, 20);
- takeItems(player, TALON_OF_STAKATO, 100);
- htmltext = event;
- }
- else
- {
- htmltext = "31553-08.html";
- }
- break;
- }
- case "31553-09.html":
- {
- if (qs.isStarted())
- {
- qs.exitQuest(true, true);
- htmltext = event;
- }
- break;
- }
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
- {
- final QuestState qs = getRandomPartyMemberState(killer, -1, 2, npc);
- if (qs != null)
- {
- giveItemRandomly(qs.getPlayer(), npc, TALON_OF_STAKATO, 1, 0, MOBS_DROP_CHANCES.get(npc.getId()), true);
- }
- return super.onKill(npc, killer, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- final QuestState qs = getQuestState(player, true);
- String htmltext = getNoQuestMsg(player);
- if (qs == null)
- {
- return htmltext;
- }
-
- if (qs.isCreated())
- {
- htmltext = ((player.getLevel() >= MIN_LVL) ? "31553-01.htm" : "31553-02.htm");
- }
- else if (qs.isStarted())
- {
- htmltext = ((getQuestItemsCount(player, TALON_OF_STAKATO) >= REQUIRED_TALON_COUNT) ? "31553-04.html" : "31553-05.html");
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00632_NecromancersRequest/31522-101.htm b/trunk/dist/game/data/scripts/quests/Q00632_NecromancersRequest/31522-101.htm
deleted file mode 100644
index 818ef3da39..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00632_NecromancersRequest/31522-101.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Mysterious Wizard:
-This land is fertile ground for the materials I need in my dark arts. The problem is, my servants all have rotten heads! I need someone to give me a hand cultivating the forest.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00632_NecromancersRequest/31522-103.htm b/trunk/dist/game/data/scripts/quests/Q00632_NecromancersRequest/31522-103.htm
deleted file mode 100644
index a21dcb17c2..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00632_NecromancersRequest/31522-103.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Mysterious Wizard:
-I'm looking for someone whose power is equal to the Lord of the Forest of the Dead! I have many servants, even if their heads are rotten.
-(Quest may only be undertaken by a character level 63 or above.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00632_NecromancersRequest/31522-104.htm b/trunk/dist/game/data/scripts/quests/Q00632_NecromancersRequest/31522-104.htm
deleted file mode 100644
index ce5b34ecdd..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00632_NecromancersRequest/31522-104.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Mysterious Wizard:
-The most important of the materials I need are undead hearts with their Human memory intact.
-Especially the grey heart of undead vampires. They're just as good as red cloth from Aden. I need 200 of them.
-Also, I'll trade you something for undead brains. You can hunt them at night. What do you think?
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00632_NecromancersRequest/31522-105.html b/trunk/dist/game/data/scripts/quests/Q00632_NecromancersRequest/31522-105.html
deleted file mode 100644
index 3089c87bb2..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00632_NecromancersRequest/31522-105.html
+++ /dev/null
@@ -1,7 +0,0 @@
-Mysterious Wizard:
-Good, you brought 200 vampire hearts.
-I'll buy them with Adena, but the undead brains aren't worth much. I'll trade you something else for them.
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00632_NecromancersRequest/31522-106.html b/trunk/dist/game/data/scripts/quests/Q00632_NecromancersRequest/31522-106.html
deleted file mode 100644
index 437ccf5332..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00632_NecromancersRequest/31522-106.html
+++ /dev/null
@@ -1,7 +0,0 @@
-Mysterious Wizard:
-You don't have 200 vampire hearts yet.
-I'll trade you something for the dead's brains though.
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00632_NecromancersRequest/31522-201.html b/trunk/dist/game/data/scripts/quests/Q00632_NecromancersRequest/31522-201.html
deleted file mode 100644
index b344210b38..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00632_NecromancersRequest/31522-201.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Mysterious Wizard:
-One more favor. Collect 200 vampire hearts. Also, I'll trade you something for any undead brains you can scoop up.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00632_NecromancersRequest/31522-202.html b/trunk/dist/game/data/scripts/quests/Q00632_NecromancersRequest/31522-202.html
deleted file mode 100644
index fb308ee15b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00632_NecromancersRequest/31522-202.html
+++ /dev/null
@@ -1,9 +0,0 @@
-Mysterious Wizard:
-Come on, that's not enough! Can you imagine how many hearts I need to die a yard of cloth red with blood?
-Excellent material, equivalent to the red cloth of Aden, but infused with magical power.
-Please bring me more hearts.
-I'll trade you for the dead's brains anytime.
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00632_NecromancersRequest/31522-203.html b/trunk/dist/game/data/scripts/quests/Q00632_NecromancersRequest/31522-203.html
deleted file mode 100644
index 12a972b2f6..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00632_NecromancersRequest/31522-203.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Mysterious Wizard:
-Are you sure you have 200 vampire hearts?
-Maybe you dropped some.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00632_NecromancersRequest/31522-204.html b/trunk/dist/game/data/scripts/quests/Q00632_NecromancersRequest/31522-204.html
deleted file mode 100644
index 2e3bb6176e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00632_NecromancersRequest/31522-204.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Mysterious Wizard:
-That'll do.
-I have enough hearts now.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00632_NecromancersRequest/Q00632_NecromancersRequest.java b/trunk/dist/game/data/scripts/quests/Q00632_NecromancersRequest/Q00632_NecromancersRequest.java
deleted file mode 100644
index 924ef37cf8..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00632_NecromancersRequest/Q00632_NecromancersRequest.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00632_NecromancersRequest;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-
-/**
- * Necromancer's Request (632)
- * @author Zoey76
- */
-public final class Q00632_NecromancersRequest extends Quest
-{
- // NPC
- private static final int MYSTERIOUS_WIZARD = 31522;
- // Items
- private static final int VAMPIRES_HEART = 7542;
- private static final int ZOMBIES_BRAIN = 7543;
- // Misc
- private static final int MIN_LEVEL = 63;
- private static final int REQUIRED_ITEM_COUNT = 200;
- private static final int ADENA_REWARD = 120000;
- // Monsters
- private static final Map BRAIN_MONSTERS = new HashMap<>();
- private static final Map HEART_MONSTERS = new HashMap<>();
- static
- {
- BRAIN_MONSTERS.put(21547, 0.565); // Corrupted Knight
- BRAIN_MONSTERS.put(21548, 0.484); // Resurrected Knight
- BRAIN_MONSTERS.put(21549, 0.585); // Corrupted Guard
- BRAIN_MONSTERS.put(21550, 0.597); // Corrupted Guard
- BRAIN_MONSTERS.put(21551, 0.673); // Resurrected Guard
- BRAIN_MONSTERS.put(21552, 0.637); // Resurrected Guard
- BRAIN_MONSTERS.put(21555, 0.575); // Slaughter Executioner
- BRAIN_MONSTERS.put(21556, 0.560); // Slaughter Executioner
- BRAIN_MONSTERS.put(21562, 0.631); // Guillotine's Ghost
- BRAIN_MONSTERS.put(21571, 0.758); // Ghost of Rebellion Soldier
- BRAIN_MONSTERS.put(21576, 0.647); // Ghost of Guillotine
- BRAIN_MONSTERS.put(21577, 0.625); // Ghost of Guillotine
- BRAIN_MONSTERS.put(21579, 0.766); // Ghost of Rebellion Leader
-
- HEART_MONSTERS.put(21568, 0.452); // Devil Bat
- HEART_MONSTERS.put(21569, 0.484); // Devil Bat
- HEART_MONSTERS.put(21573, 0.499); // Atrox
- HEART_MONSTERS.put(21582, 0.522); // Vampire Soldier
- HEART_MONSTERS.put(21585, 0.413); // Vampire Magician
- HEART_MONSTERS.put(21586, 0.496); // Vampire Adept
- HEART_MONSTERS.put(21587, 0.519); // Vampire Warrior
- HEART_MONSTERS.put(21588, 0.428); // Vampire Wizard
- HEART_MONSTERS.put(21589, 0.439); // Vampire Wizard
- HEART_MONSTERS.put(21590, 0.428); // Vampire Magister
- HEART_MONSTERS.put(21591, 0.502); // Vampire Magister
- HEART_MONSTERS.put(21592, 0.370); // Vampire Magister
- HEART_MONSTERS.put(21593, 0.592); // Vampire Warlord
- HEART_MONSTERS.put(21594, 0.554); // Vampire Warlord
- HEART_MONSTERS.put(21595, 0.392); // Vampire Warlord
- }
-
- public Q00632_NecromancersRequest()
- {
- super(632, Q00632_NecromancersRequest.class.getSimpleName(), "Necromancer's Request");
- addStartNpc(MYSTERIOUS_WIZARD);
- addTalkId(MYSTERIOUS_WIZARD);
- addKillId(BRAIN_MONSTERS.keySet());
- addKillId(HEART_MONSTERS.keySet());
- registerQuestItems(VAMPIRES_HEART, ZOMBIES_BRAIN);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState qs = getQuestState(player, false);
- if (qs == null)
- {
- return null;
- }
-
- String htmltext = null;
- switch (event)
- {
- case "31522-104.htm":
- {
- if (player.getLevel() >= MIN_LEVEL)
- {
- qs.startQuest();
- qs.setMemoState(11);
- htmltext = event;
- }
- break;
- }
- case "31522-201.html":
- {
- htmltext = event;
- break;
- }
- case "31522-202.html":
- {
- if (getQuestItemsCount(player, VAMPIRES_HEART) >= REQUIRED_ITEM_COUNT)
- {
- takeItems(player, VAMPIRES_HEART, -1);
- giveAdena(player, ADENA_REWARD, true);
- qs.setMemoState(11);
- htmltext = event;
- }
- else
- {
- htmltext = "31522-203.html";
- }
- break;
- }
- case "31522-204.html":
- {
- takeItems(player, VAMPIRES_HEART, -1);
- qs.exitQuest(true, true);
- htmltext = event;
- break;
- }
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
- {
- final QuestState qs = getRandomPartyMemberState(player, -1, 3, npc);
- if (qs != null)
- {
- if (BRAIN_MONSTERS.containsKey(npc.getId()))
- {
- qs.giveItemRandomly(npc, ZOMBIES_BRAIN, 1, 0, BRAIN_MONSTERS.get(npc.getId()), true);
- }
- else
- {
- qs.giveItemRandomly(npc, VAMPIRES_HEART, 1, 0, HEART_MONSTERS.get(npc.getId()), true);
-
- if (getQuestItemsCount(player, VAMPIRES_HEART) >= REQUIRED_ITEM_COUNT)
- {
- qs.setCond(2);
- qs.setMemoState(12);
- }
- }
- }
- return super.onKill(npc, player, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- final QuestState qs = getQuestState(player, true);
- String htmltext = getNoQuestMsg(player);
- if (qs == null)
- {
- return htmltext;
- }
-
- if (qs.isCreated())
- {
- htmltext = player.getLevel() >= MIN_LEVEL ? "31522-101.htm" : "31522-103.htm";
- }
- else if (qs.isStarted())
- {
- if (qs.isMemoState(11))
- {
- htmltext = "31522-106.html";
- }
- else if (qs.isMemoState(12) && (getQuestItemsCount(player, VAMPIRES_HEART) >= REQUIRED_ITEM_COUNT))
- {
- htmltext = "31522-105.html";
- }
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00633_InTheForgottenVillage/31388-01.htm b/trunk/dist/game/data/scripts/quests/Q00633_InTheForgottenVillage/31388-01.htm
deleted file mode 100644
index fee83a00c0..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00633_InTheForgottenVillage/31388-01.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Mina:
-Surely you've seen the undead lurking about the village? They've been around as long as anyone around here can remember! Recently, we've been plagued by dark magi, and as you can imagine, it's been very chaotic!
-Things are so topsy-turvy, I doubt that the trees will even bear fruit this season!
-We need a strong, helping hand! Would you help our village?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00633_InTheForgottenVillage/31388-02.htm b/trunk/dist/game/data/scripts/quests/Q00633_InTheForgottenVillage/31388-02.htm
deleted file mode 100644
index d5942a0db0..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00633_InTheForgottenVillage/31388-02.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Mina:
-Thank you, but I seriously doubt that you could defeat the dark magi! We've been used to dealing with monsters, but these dark bastards are something else!
-They would kill you! Why don't you come back when you're older.
-(Only a character of level 65 or above can undertake this quest.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00633_InTheForgottenVillage/31388-03.htm b/trunk/dist/game/data/scripts/quests/Q00633_InTheForgottenVillage/31388-03.htm
deleted file mode 100644
index 813ec6a5ff..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00633_InTheForgottenVillage/31388-03.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Mina:
-Thanks for helping us! Basically, we need two things done.
-First and most important, wipe out the dark magi! They are our biggest threat! Defeat them and you'll be well-rewarded! Please slay at least 200 of them!
-Also, I would ask that you please exterminate the undead that are wandering around here during the day. We've been plagued by those filthy wretches for far too long! When you destroy them, you'll find their rotting livers remain. I'll reward you for each one you bring to me!
-Bring as many as you want, any time that you want! But remember, I ask that you kill at least 200 black magi before you return to me. Got it?
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00633_InTheForgottenVillage/31388-04.html b/trunk/dist/game/data/scripts/quests/Q00633_InTheForgottenVillage/31388-04.html
deleted file mode 100644
index a38001f0d9..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00633_InTheForgottenVillage/31388-04.html
+++ /dev/null
@@ -1,7 +0,0 @@
-Mina:
-Oh, you're back! And you have brought proof of killing 200 Black Mages, yes?
-Very good, very good indeed! As I promised, you'll be well rewarded for your troubles. But, ah... well, as you can plainly see, our little village simply doesn't have the resources to cover your expenses on our own -- perhaps it slipped my mind to mention it, but it's actually the responsibility of our lord to give out rewards for hunting the undead...
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00633_InTheForgottenVillage/31388-05.html b/trunk/dist/game/data/scripts/quests/Q00633_InTheForgottenVillage/31388-05.html
deleted file mode 100644
index 3673735995..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00633_InTheForgottenVillage/31388-05.html
+++ /dev/null
@@ -1,7 +0,0 @@
-Mina:
-Hmm, how may I help you? Have you brought proof of killing 200 Black Mages?
-No? Any nasty undead livers? You'll be paid for those, but not much!
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00633_InTheForgottenVillage/31388-06.html b/trunk/dist/game/data/scripts/quests/Q00633_InTheForgottenVillage/31388-06.html
deleted file mode 100644
index cf2ba4d8e8..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00633_InTheForgottenVillage/31388-06.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Mina:
-Please, hunt black magi and bring back 200 proofs of their deaths! And don't forget the undead livers, our lord is paying for those, as well!
-Now, take your leave! Good luck!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00633_InTheForgottenVillage/31388-07.html b/trunk/dist/game/data/scripts/quests/Q00633_InTheForgottenVillage/31388-07.html
deleted file mode 100644
index 0bb5713c11..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00633_InTheForgottenVillage/31388-07.html
+++ /dev/null
@@ -1,7 +0,0 @@
-Mina:
-Here is your reward! I know it's not much, but it's all we can afford!
-Let me know if you want to hunt more Black Mages! And don't forget, we love those undead livers! Our lord's rewards are ample, don't you think?
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00633_InTheForgottenVillage/31388-08.html b/trunk/dist/game/data/scripts/quests/Q00633_InTheForgottenVillage/31388-08.html
deleted file mode 100644
index 8d7b010732..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00633_InTheForgottenVillage/31388-08.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Mina:
-Oh, did you kill 200 black magi? Hmm, that's strange! There aren't enough proofs here!? Do you think you might have dropped some of them on your way here?
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00633_InTheForgottenVillage/31388-09.html b/trunk/dist/game/data/scripts/quests/Q00633_InTheForgottenVillage/31388-09.html
deleted file mode 100644
index 6720adbd6a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00633_InTheForgottenVillage/31388-09.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Mina:
-You want to quit? Well, I won't stop you! Thank you for what you've done!
-Have a great trip! All you'll see is corpses, though... Ha!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00633_InTheForgottenVillage/Q00633_InTheForgottenVillage.java b/trunk/dist/game/data/scripts/quests/Q00633_InTheForgottenVillage/Q00633_InTheForgottenVillage.java
deleted file mode 100644
index 74a0e12451..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00633_InTheForgottenVillage/Q00633_InTheForgottenVillage.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00633_InTheForgottenVillage;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.holders.ItemChanceHolder;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-
-/**
- * In The Forgotten Village (633)
- * @author netvirus
- */
-public final class Q00633_InTheForgottenVillage extends Quest
-{
- // NPC
- private static final int MINA = 31388;
- // Items
- private static final int RIB_BONE_OF_A_BLACK_MAGUS = 7544;
- private static final int ZOMBIES_LIVER = 7545;
- // Misc
- private static final int MIN_LVL = 65;
- private static final int RIB_BONE_REQUIRED_COUNT = 200;
- // Mobs
- private static final Map MOBS_DROP_CHANCES = new HashMap<>();
- static
- {
- MOBS_DROP_CHANCES.put(21553, new ItemChanceHolder(ZOMBIES_LIVER, 0.417)); // Trampled Man
- MOBS_DROP_CHANCES.put(21554, new ItemChanceHolder(ZOMBIES_LIVER, 0.417)); // Trampled Man
- MOBS_DROP_CHANCES.put(21557, new ItemChanceHolder(RIB_BONE_OF_A_BLACK_MAGUS, 0.394)); // Bone Snatcher
- MOBS_DROP_CHANCES.put(21558, new ItemChanceHolder(RIB_BONE_OF_A_BLACK_MAGUS, 0.394)); // Bone Snatcher
- MOBS_DROP_CHANCES.put(21559, new ItemChanceHolder(RIB_BONE_OF_A_BLACK_MAGUS, 0.436)); // Bone Maker
- MOBS_DROP_CHANCES.put(21560, new ItemChanceHolder(RIB_BONE_OF_A_BLACK_MAGUS, 0.430)); // Bone Shaper
- MOBS_DROP_CHANCES.put(21561, new ItemChanceHolder(ZOMBIES_LIVER, 0.538)); // Sacrificed Man
- MOBS_DROP_CHANCES.put(21563, new ItemChanceHolder(RIB_BONE_OF_A_BLACK_MAGUS, 0.436)); // Bone Collector
- MOBS_DROP_CHANCES.put(21564, new ItemChanceHolder(RIB_BONE_OF_A_BLACK_MAGUS, 0.414)); // Skull Collector
- MOBS_DROP_CHANCES.put(21565, new ItemChanceHolder(RIB_BONE_OF_A_BLACK_MAGUS, 0.420)); // Bone Animator
- MOBS_DROP_CHANCES.put(21566, new ItemChanceHolder(RIB_BONE_OF_A_BLACK_MAGUS, 0.460)); // Skull Animator
- MOBS_DROP_CHANCES.put(21567, new ItemChanceHolder(RIB_BONE_OF_A_BLACK_MAGUS, 0.549)); // Bone Slayer
- MOBS_DROP_CHANCES.put(21570, new ItemChanceHolder(ZOMBIES_LIVER, 0.508)); // Ghost of Betrayer
- MOBS_DROP_CHANCES.put(21572, new ItemChanceHolder(RIB_BONE_OF_A_BLACK_MAGUS, 0.465)); // Bone Sweeper
- MOBS_DROP_CHANCES.put(21574, new ItemChanceHolder(RIB_BONE_OF_A_BLACK_MAGUS, 0.586)); // Bone Grinder
- MOBS_DROP_CHANCES.put(21575, new ItemChanceHolder(RIB_BONE_OF_A_BLACK_MAGUS, 0.329)); // Bone Grinder
- MOBS_DROP_CHANCES.put(21578, new ItemChanceHolder(ZOMBIES_LIVER, 0.649)); // Behemoth Zombie
- MOBS_DROP_CHANCES.put(21580, new ItemChanceHolder(RIB_BONE_OF_A_BLACK_MAGUS, 0.462)); // Bone Caster
- MOBS_DROP_CHANCES.put(21581, new ItemChanceHolder(RIB_BONE_OF_A_BLACK_MAGUS, 0.505)); // Bone Puppeteer
- MOBS_DROP_CHANCES.put(21583, new ItemChanceHolder(RIB_BONE_OF_A_BLACK_MAGUS, 0.475)); // Bone Scavenger
- MOBS_DROP_CHANCES.put(21584, new ItemChanceHolder(RIB_BONE_OF_A_BLACK_MAGUS, 0.475)); // Bone Scavenger
- MOBS_DROP_CHANCES.put(21596, new ItemChanceHolder(RIB_BONE_OF_A_BLACK_MAGUS, 0.543)); // Requiem Lord
- MOBS_DROP_CHANCES.put(21597, new ItemChanceHolder(ZOMBIES_LIVER, 0.510)); // Requiem Behemoth
- MOBS_DROP_CHANCES.put(21598, new ItemChanceHolder(ZOMBIES_LIVER, 0.572)); // Requiem Behemoth
- MOBS_DROP_CHANCES.put(21599, new ItemChanceHolder(RIB_BONE_OF_A_BLACK_MAGUS, 0.580)); // Requiem Priest
- MOBS_DROP_CHANCES.put(21600, new ItemChanceHolder(ZOMBIES_LIVER, 0.561)); // Requiem Behemoth
- MOBS_DROP_CHANCES.put(21601, new ItemChanceHolder(RIB_BONE_OF_A_BLACK_MAGUS, 0.677)); // Requiem Behemoth
- }
-
- public Q00633_InTheForgottenVillage()
- {
- super(633, Q00633_InTheForgottenVillage.class.getSimpleName(), "In The Forgotten Village");
- addStartNpc(MINA);
- addTalkId(MINA);
- addKillId(MOBS_DROP_CHANCES.keySet());
- registerQuestItems(RIB_BONE_OF_A_BLACK_MAGUS, ZOMBIES_LIVER);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState qs = getQuestState(player, false);
- String htmltext = null;
- if (qs == null)
- {
- return htmltext;
- }
-
- switch (event)
- {
- case "31388-03.htm":
- {
- if (qs.isCreated())
- {
- qs.startQuest();
- htmltext = event;
- }
- break;
- }
- case "31388-04.html":
- case "31388-05.html":
- case "31388-06.html":
- {
- if (qs.isStarted())
- {
- htmltext = event;
- }
- break;
- }
- case "31388-07.html":
- {
- if (qs.isCond(2))
- {
- if (getQuestItemsCount(player, RIB_BONE_OF_A_BLACK_MAGUS) >= RIB_BONE_REQUIRED_COUNT)
- {
- giveAdena(player, 25000, true);
- addExpAndSp(player, 305235, 0);
- takeItems(player, RIB_BONE_OF_A_BLACK_MAGUS, -1);
- qs.setCond(1, true);
- htmltext = event;
- }
- else
- {
- htmltext = "31388-08.html";
- }
- }
- break;
- }
- case "31388-09.html":
- {
- if (qs.isStarted())
- {
- qs.exitQuest(true, true);
- htmltext = event;
- }
- break;
- }
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
- {
- final QuestState qs = getRandomPartyMemberState(killer, -1, 3, npc);
- if (qs != null)
- {
- final ItemChanceHolder info = MOBS_DROP_CHANCES.get(npc.getId());
- switch (info.getId())
- {
- case RIB_BONE_OF_A_BLACK_MAGUS:
- {
- if (qs.isCond(1) && giveItemRandomly(qs.getPlayer(), npc, RIB_BONE_OF_A_BLACK_MAGUS, 1, RIB_BONE_REQUIRED_COUNT, info.getChance(), true))
- {
- qs.setCond(2);
- }
- break;
- }
- case ZOMBIES_LIVER:
- {
- giveItemRandomly(qs.getPlayer(), npc, ZOMBIES_LIVER, 1, 0, info.getChance(), true);
- break;
- }
- }
- }
- return super.onKill(npc, killer, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- final QuestState qs = getQuestState(player, true);
- String htmltext = getNoQuestMsg(player);
- if (qs == null)
- {
- return htmltext;
- }
-
- if (qs.isCreated())
- {
- htmltext = ((player.getLevel() >= MIN_LVL) ? "31388-01.htm" : "31388-02.htm");
- }
- else if (qs.isStarted())
- {
- htmltext = ((getQuestItemsCount(player, RIB_BONE_OF_A_BLACK_MAGUS) >= RIB_BONE_REQUIRED_COUNT) ? "31388-04.html" : "31388-05.html");
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00634_InSearchOfFragmentsOfDimension/31494-01.htm b/trunk/dist/game/data/scripts/quests/Q00634_InSearchOfFragmentsOfDimension/31494-01.htm
deleted file mode 100644
index 44b229391f..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00634_InSearchOfFragmentsOfDimension/31494-01.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Dimensional Gate Keeper:
-Surely you've heard all about the Dimensional Fragment. Let me ask you a simple question: Will you obtain the Dimensional Fragment and fight alongside us?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00634_InSearchOfFragmentsOfDimension/31494-02.htm b/trunk/dist/game/data/scripts/quests/Q00634_InSearchOfFragmentsOfDimension/31494-02.htm
deleted file mode 100644
index 7b860d0dda..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00634_InSearchOfFragmentsOfDimension/31494-02.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Dimensional Gate Keeper:
-Your passion and conviction are apparent. The Contract between us is official!
-This Contract will help you to recognize the Dimensional Fragment. You're bound to experience numerous setbacks and obstacles in the future. I trust that your wisdom and courage will see you safely through your quest.
-You'll find the Dimensional Fragment very useful in the Dimensional Gap zone.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00634_InSearchOfFragmentsOfDimension/31494-03.htm b/trunk/dist/game/data/scripts/quests/Q00634_InSearchOfFragmentsOfDimension/31494-03.htm
deleted file mode 100644
index 5d5e7d65f2..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00634_InSearchOfFragmentsOfDimension/31494-03.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Dimensional Gate Keeper:
-Sorry, but you're not ready to fight alongside us yet. Your enthusiasm is great, but your skills are lacking.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00634_InSearchOfFragmentsOfDimension/31494-04.html b/trunk/dist/game/data/scripts/quests/Q00634_InSearchOfFragmentsOfDimension/31494-04.html
deleted file mode 100644
index 721d58c528..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00634_InSearchOfFragmentsOfDimension/31494-04.html
+++ /dev/null
@@ -1,7 +0,0 @@
-Dimensional Gate Keeper:
-Have you found any dimension fragments? The more fragments you find, the longer you'll be allowed to stay in the Dimensional Gap. Dimension fragments are watched over by the guardians of ancient magic.
- If you begin to feel overwhelmed by your mission and want to take a break, just let me know! You always have that option!
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00634_InSearchOfFragmentsOfDimension/31494-05.html b/trunk/dist/game/data/scripts/quests/Q00634_InSearchOfFragmentsOfDimension/31494-05.html
deleted file mode 100644
index e3e9a47397..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00634_InSearchOfFragmentsOfDimension/31494-05.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Dimensional Gate Keeper:
-The guardians of ancient magic are undead and demons summoned by ancient shamans. They worship the goddess of death to protect their sacred area from the crusaders of light.
-They're known as lookouts, watchers, guards, monks, prefects, seers, archons, inquisitors, guardians, sages, royal guards, and preachers.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00634_InSearchOfFragmentsOfDimension/31494-06.html b/trunk/dist/game/data/scripts/quests/Q00634_InSearchOfFragmentsOfDimension/31494-06.html
deleted file mode 100644
index 0443bbe822..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00634_InSearchOfFragmentsOfDimension/31494-06.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Dimensional Gate Keeper:
-It's very gratifying to see such burning ambition and passion! You're a natural!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00634_InSearchOfFragmentsOfDimension/31494-07.html b/trunk/dist/game/data/scripts/quests/Q00634_InSearchOfFragmentsOfDimension/31494-07.html
deleted file mode 100644
index 42ccee9b78..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00634_InSearchOfFragmentsOfDimension/31494-07.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Dimensional Gate Keeper:
-Your burning passion has been a great help, and now others are starting to follow your excellent example!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00634_InSearchOfFragmentsOfDimension/Q00634_InSearchOfFragmentsOfDimension.java b/trunk/dist/game/data/scripts/quests/Q00634_InSearchOfFragmentsOfDimension/Q00634_InSearchOfFragmentsOfDimension.java
deleted file mode 100644
index 2550c5c941..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00634_InSearchOfFragmentsOfDimension/Q00634_InSearchOfFragmentsOfDimension.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00634_InSearchOfFragmentsOfDimension;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-
-/**
- * In Search of Fragments of Dimension (634)
- * @author Adry_85
- */
-public final class Q00634_InSearchOfFragmentsOfDimension extends Quest
-{
- // NPCs
- private static final int[] DIMENSIONAL_GATE_KEEPER =
- {
- 31494,
- 31495,
- 31496,
- 31497,
- 31498,
- 31499,
- 31500,
- 31501,
- 31502,
- 31503,
- 31504,
- 31505,
- 31506,
- 31507
- };
-
- // Item
- private static final int DIMENSIONAL_FRAGMENT = 7079;
- // Misc
- private static final int MIN_LEVEL = 20;
- // Monsters
- private static final int[] MOBS =
- {
- 21208, // Hallowed Watchman
- 21209, // Hallowed Seer
- 21210, // Vault Guardian
- 21211, // Vault Seer
- 21212, // Hallowed Sentinel
- 21213, // Hallowed Monk
- 21214, // Vault Sentinel
- 21215, // Vault Monk
- 21216, // Overlord of the Holy Lands
- 21217, // Hallowed Priest
- 21218, // Vault Overlord
- 21219, // Vault Priest
- 21220, // Sepulcher Archon
- 21221, // Sepulcher Inquisitor
- 21222, // Sepulcher Archon
- 21223, // Sepulcher Inquisitor
- 21224, // Sepulcher Guardian
- 21225, // Sepulcher Sage
- 21226, // Sepulcher Guardian
- 21227, // Sepulcher Sage
- 21228, // Sepulcher Guard
- 21229, // Sepulcher Preacher
- 21230, // Sepulcher Guard
- 21231, // Sepulcher Preacher
- 21232, // Barrow Guardian
- 21233, // Barrow Seer
- 21234, // Grave Guardian
- 21235, // Grave Seer
- 21236, // Barrow Sentinel
- 21237, // Barrow Monk
- 21238, // Grave Sentinel
- 21239, // Grave Monk
- 21240, // Barrow Overlord
- 21241, // Barrow Priest
- 21242, // Grave Overlord
- 21243, // Grave Priest
- 21244, // Crypt Archon
- 21245, // Crypt Inquisitor
- 21246, // Tomb Archon
- 21247, // Tomb Inquisitor
- 21248, // Crypt Guardian
- 21249, // Crypt Sage
- 21250, // Tomb Guardian
- 21251, // Tomb Sage
- 21252, // Crypt Guard
- 21253, // Crypt Preacher
- 21254, // Tomb Guard
- 21255, // Tomb Preacher
- 21256, // Underground Werewolf
- };
-
- public Q00634_InSearchOfFragmentsOfDimension()
- {
- super(634, Q00634_InSearchOfFragmentsOfDimension.class.getSimpleName(), "In Search of Fragments of Dimension");
- addStartNpc(DIMENSIONAL_GATE_KEEPER);
- addTalkId(DIMENSIONAL_GATE_KEEPER);
- addKillId(MOBS);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState qs = getQuestState(player, false);
- if (qs == null)
- {
- return null;
- }
-
- String htmltext = null;
- switch (event)
- {
- case "31494-02.htm":
- {
- qs.startQuest();
- htmltext = event;
- break;
- }
- case "31494-05.html":
- case "31494-06.html":
- {
- if (qs.isStarted())
- {
- htmltext = event;
- }
- break;
- }
- case "31494-07.html":
- {
- if (qs.isStarted())
- {
- qs.exitQuest(true, true);
- htmltext = event;
- }
- break;
- }
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
- {
- final QuestState qs = getRandomPartyMemberState(player, -1, 3, npc);
- if (qs != null)
- {
- final int i0 = (int) ((0.15 * npc.getLevel()) + 1.6);
- if (getRandom(100) < 10)
- {
- giveItemRandomly(qs.getPlayer(), npc, DIMENSIONAL_FRAGMENT, i0, 0, 1.0, true);
- }
- }
- return super.onKill(npc, player, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- final QuestState qs = getQuestState(player, true);
- String htmltext = getNoQuestMsg(player);
- if (qs.isCreated())
- {
- htmltext = (player.getLevel() >= MIN_LEVEL) ? "31494-01.htm" : "31494-03.htm";
- }
- else if (qs.isStarted())
- {
- htmltext = "31494-04.html";
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00636_TruthBeyond/31329-01.htm b/trunk/dist/game/data/scripts/quests/Q00636_TruthBeyond/31329-01.htm
deleted file mode 100644
index e6e73ff39d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00636_TruthBeyond/31329-01.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Priest Eliyah:
-Have you ever seen the Pagan Temple? You've heard the name, anyway, right? It's more like a Clan Hall for Pagans than any temple I've ever seen! Those Pagans, always lurking about like black curtains, secretly pulling the strings that control Rune Castle.
-No one's really sure what they do in there, since they never let the townspeople inside... I'm sure they're keeping some ghastly secret! Although their security is very tight, there just might be a way in...
-(Quest for characters level 73 and above)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00636_TruthBeyond/31329-02.htm b/trunk/dist/game/data/scripts/quests/Q00636_TruthBeyond/31329-02.htm
deleted file mode 100644
index d1c60a5cd0..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00636_TruthBeyond/31329-02.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Priest Eliyah:
-Have you ever seen the Pagan Temple? You've heard the name, anyway, right? It's more like a Clan Hall for Pagans than any temple I've ever seen! Those Pagans, always lurking about like black curtains, secretly pulling the strings that control Rune Castle.
-No one's really sure what they do in there, since they never let the townspeople inside... I'm sure they're keeping some ghastly secret! Although their security is very tight, there just might be a way in...
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00636_TruthBeyond/31329-03.htm b/trunk/dist/game/data/scripts/quests/Q00636_TruthBeyond/31329-03.htm
deleted file mode 100644
index b694ebfdc1..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00636_TruthBeyond/31329-03.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Priest Eliyah:
-Those heathens occasionally even perform Human sacrifices in their so-called Temple! They seem to enjoy that part of their religion more than any other... And that, my child, is your way into the Temple! You'll be their human sacrifice! Of course, I realize that this is a very dangerous way to get in, but these are desperate times... And besides, they've been having a hard time finding Humans to sacrifice!
-Now, let's talk about how you're going to do this... Before I get started, are you sure you want to do this?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00636_TruthBeyond/31329-04.htm b/trunk/dist/game/data/scripts/quests/Q00636_TruthBeyond/31329-04.htm
deleted file mode 100644
index 901b5d5b1e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00636_TruthBeyond/31329-04.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Priest Eliyah:
-Very well then! Well, I'll get started... Please pay attention! I don't want to have to repeat myself!
-Priest Flauron in Rune Township is in charge of finding Human sacrifices for them. Go speak with him and tell him that you're thinking about becoming a Pagan... He'll offer to let you visit the Temple, and will give you what he'll claim is an entrance pass. It's actually a Sacrifice Mark! It will get you inside the Temple easily enough, but once you're inside those lunatics will set upon you at once with spears and knives! There's no way that you could stand against this onslaught alone...
-Many people have been decieved by Flauron and ended up as live sacrifices. You should probably take some trusted comrades with you, but I heard that the Pagans have a strange technique for scattering the forces of outsiders. Be very careful!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00636_TruthBeyond/31329-05.htm b/trunk/dist/game/data/scripts/quests/Q00636_TruthBeyond/31329-05.htm
deleted file mode 100644
index 8683057b5e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00636_TruthBeyond/31329-05.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Priest Eliyah:
-Dind't I say I don't want to repeat myself?
-Priest Flauron in Rune Township is in charge of finding Human sacrifices for them. Go speak with him and tell him that you're thinking about becoming a Pagan... He'll offer to let you visit the Temple, and will give you what he'll claim is an entrance pass. It's actually a Sacrifice Mark! It will get you inside the Temple easily enough, but once you're inside those lunatics will set upon you at once with spears and knives! There's no way that you could stand against this onslaught alone...
-Many people have been decieved by Flauron and ended up as live sacrifices. You should probably take some trusted comrades with you, but I heard that the Pagans have a strange technique for scattering the forces of outsiders. Be very careful!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00636_TruthBeyond/31329-mark.htm b/trunk/dist/game/data/scripts/quests/Q00636_TruthBeyond/31329-mark.htm
deleted file mode 100644
index 7d3d7339a5..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00636_TruthBeyond/31329-mark.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Priest Eliyah:
-You're already capable of entering the Pagan Temple. You don't need to hear this.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00636_TruthBeyond/32010-01.htm b/trunk/dist/game/data/scripts/quests/Q00636_TruthBeyond/32010-01.htm
deleted file mode 100644
index 353a2de00b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00636_TruthBeyond/32010-01.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Priest Flauron:
-Who comes calling? Oh, you can't want to go down this pathway. Yes, it leads to our temple, but it's awfully dangerous if you're not authorized. Unwelcome visitors often disappear down that path, never to been seen again. Unwise, tragically unwise!
-I see no authorization documents on you, so no, you cannot pass there safely. Although we sometimes receive visitors ... that would be authorized, I suppose, under certain circumstances.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00636_TruthBeyond/32010-02.htm b/trunk/dist/game/data/scripts/quests/Q00636_TruthBeyond/32010-02.htm
deleted file mode 100644
index b0fe2fb60a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00636_TruthBeyond/32010-02.htm
+++ /dev/null
@@ -1,7 +0,0 @@
-Priest Flauron:
-As it so happens, you are in luck! Today is Visitor's Day. Excuse me...
-(He mutters to the side)
-Yes, I have just received word from higher up that we need more, so I'm telling them that it's Visitor's Day.
-(He turns back to you)
-How fortunate you are! On Visitor's Day we lavish splendor on our lucky guests; generosity is our watchword. What? Oh, I was just talking to myself, hahaha! Now, here is the Visitor's Mark we give to visitors.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00636_TruthBeyond/32010-03.htm b/trunk/dist/game/data/scripts/quests/Q00636_TruthBeyond/32010-03.htm
deleted file mode 100644
index 125229c06b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00636_TruthBeyond/32010-03.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Priest Flauron:
-Oh dear, what are you still doing here?
-Remember you are in luck! Today is Visitor's Day and you don't want to miss a thing, do you?
-This way please.. join the rest of our.. visitors.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00636_TruthBeyond/Q00636_TruthBeyond.java b/trunk/dist/game/data/scripts/quests/Q00636_TruthBeyond/Q00636_TruthBeyond.java
deleted file mode 100644
index 20960dad16..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00636_TruthBeyond/Q00636_TruthBeyond.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00636_TruthBeyond;
-
-import com.l2jserver.gameserver.model.actor.L2Character;
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-import com.l2jserver.gameserver.model.zone.L2ZoneType;
-
-/**
- * The Truth Beyond the Gate (636)
- * Original Jython script by Polo, BiTi and DrLecter.
- * @author DS
- */
-public final class Q00636_TruthBeyond extends Quest
-{
- private static final int ELIYAH = 31329;
- private static final int FLAURON = 32010;
- private static final int ZONE = 30100;
- private static final int VISITOR_MARK = 8064;
- private static final int FADED_MARK = 8065;
- private static final int MARK = 8067;
-
- public Q00636_TruthBeyond()
- {
- super(636, Q00636_TruthBeyond.class.getSimpleName(), "The Truth Beyond the Gate");
- addStartNpc(ELIYAH);
- addTalkId(ELIYAH, FLAURON);
- addEnterZoneId(ZONE);
- }
-
- @Override
- public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return null;
- }
-
- if ("31329-04.htm".equals(event))
- {
- st.startQuest();
- }
- else if ("32010-02.htm".equals(event))
- {
- st.giveItems(VISITOR_MARK, 1);
- st.exitQuest(true, true);
- }
- return event;
- }
-
- @Override
- public final String onEnterZone(L2Character character, L2ZoneType zone)
- {
- // QuestState already null on enter because quest is finished
- if (character.isPlayer())
- {
- if (character.getActingPlayer().destroyItemByItemId("Mark", VISITOR_MARK, 1, character, false))
- {
- character.getActingPlayer().addItem("Mark", FADED_MARK, 1, character, true);
- }
- }
- return null;
- }
-
- @Override
- public final String onTalk(L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, true);
- if (st == null)
- {
- return getNoQuestMsg(player);
- }
-
- if (npc.getId() == ELIYAH)
- {
- if (st.hasQuestItems(VISITOR_MARK) || st.hasQuestItems(FADED_MARK) || st.hasQuestItems(MARK))
- {
- st.exitQuest(true);
- return "31329-mark.htm";
- }
- if (st.getState() == State.CREATED)
- {
- if (player.getLevel() > 72)
- {
- return "31329-02.htm";
- }
-
- st.exitQuest(true);
- return "31329-01.htm";
- }
- else if (st.getState() == State.STARTED)
- {
- return "31329-05.htm";
- }
- }
- else if (st.getState() == State.STARTED) // Flauron only
- {
- if (st.isCond(1))
- {
- return "32010-01.htm";
- }
- st.exitQuest(true);
- return "32010-03.htm";
- }
- return getNoQuestMsg(player);
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/32010-0.htm b/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/32010-0.htm
deleted file mode 100644
index b041c1cf02..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/32010-0.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Priest Flauron:
-You already have the Mark of the Pagan, so you don't need to hear this story again.
-Oh, by the way, a little remind for you: Although you realized your own frailty and brought your combined might can do anything to stop us. Lord Triol was quite aware of the danger a party of adventurers might present, so he cast a spell that will scatter an invading party to the winds. So don't waste your time fighting us - you'll never prevail.
-(If a party of six or more fight inside the Pagan Temple, there is a chance that some of the party members will be teleported elsewhere.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/32010-01.htm b/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/32010-01.htm
deleted file mode 100644
index 221a771d7b..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/32010-01.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Priest Flauron:
-I'm too busy to help you. Sorry!
-(Only characters level 73 and above who possess a Faded Visitor's Mark are permitted to take on the quest.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/32010-01a.htm b/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/32010-01a.htm
deleted file mode 100644
index a48df6a280..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/32010-01a.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Priest Flauron:
-You should go on to the temple; I'm too busy to see you just now.
-(Only characters level 73 and above are permitted to take on the quest.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/32010-02.htm b/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/32010-02.htm
deleted file mode 100644
index 10bdf4d127..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/32010-02.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Priest Flauron:
-Eh? Oh, my, it's you! I, uh, I didn't expect to see you again. Not alive, at any rate.
-Well, er, let us rejoice in your good fortune! Surely your relief at your survival will allow you to laugh at any harmless incidents in the past! Eheheh.
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/32010-03.htm b/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/32010-03.htm
deleted file mode 100644
index 94e2db8541..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/32010-03.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Priest Flauron:
-A wise decision! Now, here's what I want: go to the Forest of the Dead and defeat the Bone Animator, the Bone Slayer and the Skull Animator. Bring me 10 Necromancer Hearts. Do that, and I'll give you the real sign - the occult sign that will allow you to enter the chapel of the Temple.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/32010-04.htm b/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/32010-04.htm
deleted file mode 100644
index 2e0a32a474..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/32010-04.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Priest Flauron:
-We have a deal, then. Now go to the Forest of the Dead and defeat the Bone Animator, the Bone Slayer, and the Skull Animator. Bring me ten Necromancer Hearts, and I will give you the Pagan's Mark that will allow you to enter the chapel of the Temple.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/32010-05.htm b/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/32010-05.htm
deleted file mode 100644
index dec4c71535..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/32010-05.htm
+++ /dev/null
@@ -1,8 +0,0 @@
-Priest Flauron:
-Ha! Excellent! Quickly, give it to me, before someone sees us! What am I going to use it for, you ask? Heh. Ask me no questions, and I'll tell you no lies!
-Well, you've done your part, and I'll do mine. Here, let me give you the Pagan's Mark. There! You will no longer need the Visitor's Mark; This one will work better, and will admit you to the chapel - that, and the key to the Anteroom, which I now give you.
-What's inside the chapel? Now, that would be telling.
-What are we doing there? Ha ha! Don't bother asking me such questions. Go find out for yourself! Stop us if you can!
-Your numbers won't help you as much as you think. It is good that you recognize your weakness and that you bring your comrades with you, but it won't help you. Lord Triol long ago realized the danger of attack by a well-coordinated band of adventurers, and cast a spell that will scatter groups of outsiders to the four winds.
-Be sensible, then. Surely you realize the futility of fighting us. The fact that I just gave you a free pass into the chapel should tell you something: We are not afraid of you. Think about that.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/32010-06.htm b/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/32010-06.htm
deleted file mode 100644
index 1900c7eda9..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/32010-06.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Priest Flauron:
-Hey, hey! Settle down! We can discuss this, can't we? It was merely a harmless prank, and I'm sure you appreciate the humor - hey, that hurts!
-The truth? Very well. I can see I have no choice; your grim faces suggest no love of my jest. Visitor's Day is a lie. We use that as a ruse to attract live sacrifices.
-A little embarrassing to be found out like this, really. But what's important is that you made it out. To be honest, it's been a long time since I've seen anyone escape the temple. You must be very powerful adventurers. I could use a favor...
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/32010-07.htm b/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/32010-07.htm
deleted file mode 100644
index e857bde494..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/32010-07.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Priest Flauron:
-Why betray my order? Well, for one thing, I don't think you'll pose any real threat to the order, even if you do get into the temple. We aren't weaklings, you know. In any case, our order teaches self-interest, and this deal serves my interest. You get into the chapel, I get what I want. What do you say?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/32010-08.htm b/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/32010-08.htm
deleted file mode 100644
index c4a8da0228..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/32010-08.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Priest Flauron:
-Ha, you emerged alive! My felicitations. And even better, you came back to speak with me! So, all water under the bridge, then, eh?
-Yes, Visitor's Day is a lie. We use it to attract live sacrifices, frankly.
-Anyway, it's been a long time since I've seen anyone return from there alive. I'm interested in you; I think you're capable of doing me a particular favor.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/32010-09.htm b/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/32010-09.htm
deleted file mode 100644
index 24359e417c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/32010-09.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Priest Flauron:
-Oh, that. Disregard that; it was a minor matter. You have survived and gained by your experiences, surely. How can that be bad? Keep your thoughts on the future, that is my motto!
-Look, let's deal. I'm not going to try any more tricks. I know better now. If I'd known you for what you were, I'd never have tried it in the first place. But I have a job that needs doing, and I can offer you a real benefit in exchange: the mark that lets you go all the way into the chapel of the temple. I think that's where you want to go, am I right?
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/32010-10.htm b/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/32010-10.htm
deleted file mode 100644
index 2981f14a7d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/32010-10.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Priest Flauron:
-Oh, really? What a pity. Please feel free to return any time!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/Q00637_ThroughOnceMore.java b/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/Q00637_ThroughOnceMore.java
deleted file mode 100644
index 23d235729f..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00637_ThroughOnceMore/Q00637_ThroughOnceMore.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00637_ThroughOnceMore;
-
-import com.l2jserver.Config;
-import com.l2jserver.gameserver.enums.QuestSound;
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-
-/**
- * Through the Gate Once More (637)
- * Original Jython script by BiTi! and DrLecter.
- * @author DS
- */
-public final class Q00637_ThroughOnceMore extends Quest
-{
- private static final int FLAURON = 32010;
- private static final int[] MOBS =
- {
- 21565,
- 21566,
- 21567
- };
- private static final int VISITOR_MARK = 8064;
- private static final int FADED_MARK = 8065;
- private static final int NECRO_HEART = 8066;
- private static final int MARK = 8067;
-
- private static final double DROP_CHANCE = 90;
-
- public Q00637_ThroughOnceMore()
- {
- super(637, Q00637_ThroughOnceMore.class.getSimpleName(), "Through the Gate Once More");
- addStartNpc(FLAURON);
- addTalkId(FLAURON);
- addKillId(MOBS);
- registerQuestItems(NECRO_HEART);
- }
-
- @Override
- public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return null;
- }
-
- if ("32010-03.htm".equals(event))
- {
- st.startQuest();
- }
- else if ("32010-10.htm".equals(event))
- {
- st.exitQuest(true);
- }
- return event;
- }
-
- @Override
- public final String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
- {
- final QuestState st = getQuestState(player, false);
- if ((st != null) && (st.getState() == State.STARTED))
- {
- final long count = st.getQuestItemsCount(NECRO_HEART);
- if (count < 10)
- {
- int chance = (int) (Config.RATE_QUEST_DROP * DROP_CHANCE);
- int numItems = chance / 100;
- chance = chance % 100;
- if (getRandom(100) < chance)
- {
- numItems++;
- }
- if (numItems > 0)
- {
- if ((count + numItems) >= 10)
- {
- numItems = 10 - (int) count;
- st.setCond(2, true);
- }
- else
- {
- st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
- }
-
- st.giveItems(NECRO_HEART, numItems);
- }
- }
- }
- return null;
- }
-
- @Override
- public final String onTalk(L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, true);
- if (st == null)
- {
- return getNoQuestMsg(player);
- }
-
- final byte id = st.getState();
- if (id == State.CREATED)
- {
- if (player.getLevel() > 72)
- {
- if (st.hasQuestItems(FADED_MARK))
- {
- return "32010-02.htm";
- }
- if (st.hasQuestItems(VISITOR_MARK))
- {
- st.exitQuest(true);
- return "32010-01a.htm";
- }
- if (st.hasQuestItems(MARK))
- {
- st.exitQuest(true);
- return "32010-0.htm";
- }
- }
- st.exitQuest(true);
- return "32010-01.htm";
- }
- else if (id == State.STARTED)
- {
- if ((st.isCond(2)) && (st.getQuestItemsCount(NECRO_HEART) == 10))
- {
- st.takeItems(NECRO_HEART, 10);
- st.takeItems(FADED_MARK, 1);
- st.giveItems(MARK, 1);
- st.giveItems(8273, 10);
- st.exitQuest(true, true);
- return "32010-05.htm";
- }
- return "32010-04.htm";
- }
- return getNoQuestMsg(player);
- }
-}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00638_SeekersOfTheHolyGrail/31328-01.htm b/trunk/dist/game/data/scripts/quests/Q00638_SeekersOfTheHolyGrail/31328-01.htm
deleted file mode 100644
index 20e73b1571..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00638_SeekersOfTheHolyGrail/31328-01.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-High Priest Innocentin:
-Recent activities at the Pagan Temple have raised my concerns. Considering the shenanigans that normally go on there, you must surely understand the peril!
-You see, they've set their sights on Saint Solina's Grail of Splendor! I'm sure that if we don't stop them, something terrible and irrevocable will happen! Will you help us in our time of need?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00638_SeekersOfTheHolyGrail/31328-02.htm b/trunk/dist/game/data/scripts/quests/Q00638_SeekersOfTheHolyGrail/31328-02.htm
deleted file mode 100644
index c455112f57..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00638_SeekersOfTheHolyGrail/31328-02.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-High Priest Innocentin:
-Recent activities at the Pagan Temple have raised my concerns. Considering the shenanigans that normally go on there, you must surely understand the peril!
-Would you consider coming back to help me when you've had more experience?
-(This quest may only be undertaken by characters of level 73 or above.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00638_SeekersOfTheHolyGrail/31328-03.htm b/trunk/dist/game/data/scripts/quests/Q00638_SeekersOfTheHolyGrail/31328-03.htm
deleted file mode 100644
index a7defbb020..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00638_SeekersOfTheHolyGrail/31328-03.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-High Priest Innocentin:
-Splendid! Please go to the Pagan Temple and defeat the evil ones that inhabit it! After you've destroyed them, bring me their Pagan Totems. You'll be well-rewarded if you bring more than 2000 of them! Of course, our definitions of large rewards might differ...
-As you must have guessed, the Pagan Temple is heavily defended and will not be easily overtaken. Priest Eliyah could give you guidance on how to penetrate their defenses.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00638_SeekersOfTheHolyGrail/31328-04.html b/trunk/dist/game/data/scripts/quests/Q00638_SeekersOfTheHolyGrail/31328-04.html
deleted file mode 100644
index 00134c453a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00638_SeekersOfTheHolyGrail/31328-04.html
+++ /dev/null
@@ -1,6 +0,0 @@
-High Priest Innocentin:
-Did they put up much of a fight? Well, your efforts have saved the grail! And I see you brought some Pagan Totems!
-Are you ready for your reward?
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00638_SeekersOfTheHolyGrail/31328-05.html b/trunk/dist/game/data/scripts/quests/Q00638_SeekersOfTheHolyGrail/31328-05.html
deleted file mode 100644
index db0d6dd278..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00638_SeekersOfTheHolyGrail/31328-05.html
+++ /dev/null
@@ -1,6 +0,0 @@
-High Priest Innocentin:
-Please go to the Pagan Temple and defeat the evil ones that inhabit it! After you've destroyed them, bring me their Pagan Totems. You'll be well-rewarded if you bring more than 2000 of them! Of course, our definitions of large rewards might differ...
-As you must have guessed, the Pagan Temple is heavily defended and will not be easily overtaken. Priest Eliyah could give you guidance on how to penetrate their defenses.
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00638_SeekersOfTheHolyGrail/31328-06.html b/trunk/dist/game/data/scripts/quests/Q00638_SeekersOfTheHolyGrail/31328-06.html
deleted file mode 100644
index 55a5b25e63..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00638_SeekersOfTheHolyGrail/31328-06.html
+++ /dev/null
@@ -1,3 +0,0 @@
-High Priest Innocentin:
-Thank you!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00638_SeekersOfTheHolyGrail/31328-07.html b/trunk/dist/game/data/scripts/quests/Q00638_SeekersOfTheHolyGrail/31328-07.html
deleted file mode 100644
index a2b32aaa09..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00638_SeekersOfTheHolyGrail/31328-07.html
+++ /dev/null
@@ -1,3 +0,0 @@
-High Priest Innocentin:
-Thank you! Let's see... What's this? The Totem of a high-ranking Pagan is mixed in here! Your efforts have thwarted their evil plan! Please take this as a token of my appreciation. Keep up the good work!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00638_SeekersOfTheHolyGrail/31328-08.html b/trunk/dist/game/data/scripts/quests/Q00638_SeekersOfTheHolyGrail/31328-08.html
deleted file mode 100644
index c7923933e3..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00638_SeekersOfTheHolyGrail/31328-08.html
+++ /dev/null
@@ -1,3 +0,0 @@
-High Priest Innocentin:
-Thank you! Your efforts have definitely put a crimp in the evil plans of the Pagans!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00638_SeekersOfTheHolyGrail/31328-09.html b/trunk/dist/game/data/scripts/quests/Q00638_SeekersOfTheHolyGrail/31328-09.html
deleted file mode 100644
index 46165eee75..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00638_SeekersOfTheHolyGrail/31328-09.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Priest Innocentin:
-Oh, I'm sorry to see you go! Your efforts have done much to thwart the evil plans of the Pagans! If you have some spare time in the future, come back and help us again!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00638_SeekersOfTheHolyGrail/Q00638_SeekersOfTheHolyGrail.java b/trunk/dist/game/data/scripts/quests/Q00638_SeekersOfTheHolyGrail/Q00638_SeekersOfTheHolyGrail.java
deleted file mode 100644
index b37cee86e0..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00638_SeekersOfTheHolyGrail/Q00638_SeekersOfTheHolyGrail.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00638_SeekersOfTheHolyGrail;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.holders.ItemChanceHolder;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-
-/**
- * Seekers Of The Holy Grail (638)
- * @author netvirus
- */
-public final class Q00638_SeekersOfTheHolyGrail extends Quest
-{
- private static class DropInfo extends ItemChanceHolder
- {
- private final int _keyId;
- private final int _keyChance;
- private final int _keyCount;
-
- public DropInfo(int itemId, double chance)
- {
- this(itemId, chance, 0, 0, 0);
- }
-
- public DropInfo(int itemId, double chance, int keyId, int keyChance, int count)
- {
- super(itemId, chance);
- _keyId = keyId;
- _keyChance = keyChance;
- _keyCount = count;
- }
-
- public int getKeyId()
- {
- return _keyId;
- }
-
- public int getKeyChance()
- {
- return _keyChance;
- }
-
- public int getKeyCount()
- {
- return _keyCount;
- }
- }
-
- // NPC
- private static final int INNOCENTIN = 31328;
- // Items
- private static final int TOTEM = 8068;
- private static final int ANTEROOM_KEY = 8273;
- private static final int CHAPEL_KEY = 8274;
- private static final int KEY_OF_DARKNESS = 8275;
- // Misc
- private static final int MIN_LVL = 73;
- private static final int TOTEMS_REQUIRED_COUNT = 2000;
- // Rewards
- private static final int SCROLL_ENCHANT_W_S = 959;
- private static final int SCROLL_ENCHANT_A_S = 960;
- // Mobs
- private static final Map MOBS_DROP_CHANCES = new HashMap<>();
- static
- {
- MOBS_DROP_CHANCES.put(22136, new DropInfo(TOTEM, 0.55)); // Gatekeeper Zombie
- MOBS_DROP_CHANCES.put(22137, new DropInfo(TOTEM, 0.06)); // Penance Guard
- MOBS_DROP_CHANCES.put(22138, new DropInfo(TOTEM, 0.06)); // Chapel Guard
- MOBS_DROP_CHANCES.put(22139, new DropInfo(TOTEM, 0.54)); // Old Aristocrat's Soldier
- MOBS_DROP_CHANCES.put(22140, new DropInfo(TOTEM, 0.54)); // Zombie Worker
- MOBS_DROP_CHANCES.put(22141, new DropInfo(TOTEM, 0.55)); // Forgotten Victim
- MOBS_DROP_CHANCES.put(22142, new DropInfo(TOTEM, 0.54)); // Triol's Layperson
- MOBS_DROP_CHANCES.put(22143, new DropInfo(TOTEM, 0.62, CHAPEL_KEY, 100, 1)); // Triol's Believer
- MOBS_DROP_CHANCES.put(22144, new DropInfo(TOTEM, 0.54)); // Resurrected Temple Knight
- MOBS_DROP_CHANCES.put(22145, new DropInfo(TOTEM, 0.53)); // Ritual Sacrifice
- MOBS_DROP_CHANCES.put(22146, new DropInfo(TOTEM, 0.54, KEY_OF_DARKNESS, 10, 1)); // Triol's Priest
- MOBS_DROP_CHANCES.put(22147, new DropInfo(TOTEM, 0.55)); // Ritual Offering
- MOBS_DROP_CHANCES.put(22148, new DropInfo(TOTEM, 0.45)); // Triol's Believer
- MOBS_DROP_CHANCES.put(22149, new DropInfo(TOTEM, 0.54, ANTEROOM_KEY, 100, 6)); // Ritual Offering
- MOBS_DROP_CHANCES.put(22150, new DropInfo(TOTEM, 0.46)); // Triol's Believer
- MOBS_DROP_CHANCES.put(22151, new DropInfo(TOTEM, 0.62, KEY_OF_DARKNESS, 10, 1)); // Triol's Priest
- MOBS_DROP_CHANCES.put(22152, new DropInfo(TOTEM, 0.55)); // Temple Guard
- MOBS_DROP_CHANCES.put(22153, new DropInfo(TOTEM, 0.54)); // Temple Guard Captain
- MOBS_DROP_CHANCES.put(22154, new DropInfo(TOTEM, 0.53)); // Ritual Sacrifice
- MOBS_DROP_CHANCES.put(22155, new DropInfo(TOTEM, 0.75)); // Triol's High Priest
- MOBS_DROP_CHANCES.put(22156, new DropInfo(TOTEM, 0.67)); // Triol's Priest
- MOBS_DROP_CHANCES.put(22157, new DropInfo(TOTEM, 0.66)); // Triol's Priest
- MOBS_DROP_CHANCES.put(22158, new DropInfo(TOTEM, 0.67)); // Triol's Believer
- MOBS_DROP_CHANCES.put(22159, new DropInfo(TOTEM, 0.75)); // Triol's High Priest
- MOBS_DROP_CHANCES.put(22160, new DropInfo(TOTEM, 0.67)); // Triol's Priest
- MOBS_DROP_CHANCES.put(22161, new DropInfo(TOTEM, 0.78)); // Ritual Sacrifice
- MOBS_DROP_CHANCES.put(22162, new DropInfo(TOTEM, 0.67)); // Triol's Believer
- MOBS_DROP_CHANCES.put(22163, new DropInfo(TOTEM, 0.87)); // Triol's High Priest
- MOBS_DROP_CHANCES.put(22164, new DropInfo(TOTEM, 0.67)); // Triol's Believer
- MOBS_DROP_CHANCES.put(22165, new DropInfo(TOTEM, 0.66)); // Triol's Priest
- MOBS_DROP_CHANCES.put(22166, new DropInfo(TOTEM, 0.66)); // Triol's Believer
- MOBS_DROP_CHANCES.put(22167, new DropInfo(TOTEM, 0.75)); // Triol's High Priest
- MOBS_DROP_CHANCES.put(22168, new DropInfo(TOTEM, 0.66)); // Triol's Priest
- MOBS_DROP_CHANCES.put(22169, new DropInfo(TOTEM, 0.78)); // Ritual Sacrifice
- MOBS_DROP_CHANCES.put(22170, new DropInfo(TOTEM, 0.67)); // Triol's Believer
- MOBS_DROP_CHANCES.put(22171, new DropInfo(TOTEM, 0.87)); // Triol's High Priest
- MOBS_DROP_CHANCES.put(22172, new DropInfo(TOTEM, 0.78)); // Ritual Sacrifice
- MOBS_DROP_CHANCES.put(22173, new DropInfo(TOTEM, 0.66)); // Triol's Priest
- MOBS_DROP_CHANCES.put(22174, new DropInfo(TOTEM, 0.67)); // Triol's Priest
- MOBS_DROP_CHANCES.put(22175, new DropInfo(TOTEM, 0.03)); // Andreas' Captain of the Royal Guard
- MOBS_DROP_CHANCES.put(22176, new DropInfo(TOTEM, 0.03)); // Andreas' Royal Guards
- MOBS_DROP_CHANCES.put(22188, new DropInfo(TOTEM, 0.03)); // Andreas' Captain of the Royal Guard
- MOBS_DROP_CHANCES.put(22189, new DropInfo(TOTEM, 0.03)); // Andreas' Royal Guards
- MOBS_DROP_CHANCES.put(22190, new DropInfo(TOTEM, 0.03)); // Ritual Sacrifice
- MOBS_DROP_CHANCES.put(22191, new DropInfo(TOTEM, 0.03)); // Andreas' Captain of the Royal Guard
- MOBS_DROP_CHANCES.put(22192, new DropInfo(TOTEM, 0.03)); // Andreas' Royal Guards
- MOBS_DROP_CHANCES.put(22193, new DropInfo(TOTEM, 0.03)); // Andreas' Royal Guards
- MOBS_DROP_CHANCES.put(22194, new DropInfo(TOTEM, 0.03)); // Penance Guard
- MOBS_DROP_CHANCES.put(22194, new DropInfo(TOTEM, 0.03)); // Ritual Sacrifice
- }
-
- public Q00638_SeekersOfTheHolyGrail()
- {
- super(638, Q00638_SeekersOfTheHolyGrail.class.getSimpleName(), "Seekers Of The Holy Grail");
- addStartNpc(INNOCENTIN);
- addTalkId(INNOCENTIN);
- addKillId(MOBS_DROP_CHANCES.keySet());
- registerQuestItems(TOTEM);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState qs = getQuestState(player, false);
- String htmltext = null;
- if (qs == null)
- {
- return htmltext;
- }
-
- switch (event)
- {
- case "31328-03.htm":
- {
- if (qs.isCreated())
- {
- qs.startQuest();
- htmltext = event;
- }
- break;
- }
- case "31328-06.html":
- {
- if (qs.isStarted())
- {
- htmltext = event;
- }
- break;
- }
- case "reward":
- {
- if (qs.isStarted() && (getQuestItemsCount(player, TOTEM) >= TOTEMS_REQUIRED_COUNT))
- {
- if (getRandom(100) < 80)
- {
- if (getRandomBoolean())
- {
- rewardItems(player, SCROLL_ENCHANT_A_S, 1);
- }
- else
- {
- rewardItems(player, SCROLL_ENCHANT_W_S, 1);
- }
- htmltext = "31328-07.html";
- }
- else
- {
- giveAdena(player, 3576000, true);
- htmltext = "31328-08.html";
- }
- takeItems(player, TOTEM, 2000);
- }
- break;
- }
- case "31328-09.html":
- {
- if (qs.isStarted())
- {
- qs.exitQuest(true, true);
- htmltext = "31328-09.html";
- }
- }
-
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
- {
- final QuestState qs = getRandomPartyMemberState(killer, -1, 3, npc);
- if (qs != null)
- {
- final DropInfo info = MOBS_DROP_CHANCES.get(npc.getId());
- if (giveItemRandomly(qs.getPlayer(), npc, info.getId(), 1, 0, info.getChance(), true))
- {
- if ((info.getKeyId() > 0) && (getRandom(100) < info.getKeyChance()))
- {
- npc.dropItem(qs.getPlayer(), info.getKeyId(), info.getKeyCount());
- }
- }
- }
- return super.onKill(npc, killer, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- final QuestState qs = getQuestState(player, true);
- String htmltext = getNoQuestMsg(player);
- if (qs == null)
- {
- return htmltext;
- }
-
- if (qs.isCreated())
- {
- htmltext = ((player.getLevel() >= MIN_LVL) ? "31328-01.htm" : "31328-02.htm");
- }
- else if (qs.isStarted())
- {
- htmltext = ((getQuestItemsCount(player, TOTEM) >= TOTEMS_REQUIRED_COUNT) ? "31328-04.html" : "31328-05.html");
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00639_GuardiansOfTheHolyGrail/31350-01.html b/trunk/dist/game/data/scripts/quests/Q00639_GuardiansOfTheHolyGrail/31350-01.html
deleted file mode 100644
index 71a938aab4..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00639_GuardiansOfTheHolyGrail/31350-01.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Priest Dominic:
-Ahhh... that mission has been.. satisfied. It's time for a new mission.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00639_GuardiansOfTheHolyGrail/Q00639_GuardiansOfTheHolyGrail.java b/trunk/dist/game/data/scripts/quests/Q00639_GuardiansOfTheHolyGrail/Q00639_GuardiansOfTheHolyGrail.java
deleted file mode 100644
index fc3df10616..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00639_GuardiansOfTheHolyGrail/Q00639_GuardiansOfTheHolyGrail.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00639_GuardiansOfTheHolyGrail;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-
-/**
- * Guardians of the Holy Grail (639)
- * NOTE: This quest is no longer available since Freya(CT2.5)
- * @author corbin12
- */
-public final class Q00639_GuardiansOfTheHolyGrail extends Quest
-{
- // NPC
- private static final int DOMINIC = 31350;
-
- public Q00639_GuardiansOfTheHolyGrail()
- {
- super(639, Q00639_GuardiansOfTheHolyGrail.class.getSimpleName(), "Guardians of the Holy Grail");
- addStartNpc(DOMINIC);
- addTalkId(DOMINIC);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, true);
- if (st != null)
- {
- st.exitQuest(true);
- }
- return "31350-01.html";
- }
-}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00644_GraveRobberAnnihilation/32017-01.htm b/trunk/dist/game/data/scripts/quests/Q00644_GraveRobberAnnihilation/32017-01.htm
deleted file mode 100644
index 0257d2b878..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00644_GraveRobberAnnihilation/32017-01.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Karuda:
-Greetings, and welcome! We are the followers of Pa'agrio, as we are fated to be. Are you free to help us?
-This is the graveyard of a lost tribe, but grave robbers seek to plunder the burial grounds within. And thus, the spirits of the dead have become restless.
-We have decided to drive the grave robbers from this place, but we're short of capable hands and need your help. Can you help us?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00644_GraveRobberAnnihilation/32017-02.htm b/trunk/dist/game/data/scripts/quests/Q00644_GraveRobberAnnihilation/32017-02.htm
deleted file mode 100644
index eb0a9da75c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00644_GraveRobberAnnihilation/32017-02.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Karuda:
-Greetings, and welcome... but what has brought you to such a dangerous place?
-(Only characters above level 20 can perform this quest.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00644_GraveRobberAnnihilation/32017-03.htm b/trunk/dist/game/data/scripts/quests/Q00644_GraveRobberAnnihilation/32017-03.htm
deleted file mode 100644
index 0350f73fa4..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00644_GraveRobberAnnihilation/32017-03.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Karuda:
-My investigation confirms that the grave robbers plundered almost 120 graves. If you defeat them and bring back the stolen Orcish burial goods, I will give you a reward. I have heard that the grave robbers' hideout is based in the south. Best of luck to you.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00644_GraveRobberAnnihilation/32017-04.html b/trunk/dist/game/data/scripts/quests/Q00644_GraveRobberAnnihilation/32017-04.html
deleted file mode 100644
index 3d5c423628..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00644_GraveRobberAnnihilation/32017-04.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Karuda:
-Have you recovered all of the stolen burial goods? Swift work! I think you must have had the blessings of Pa'agrio!
-Please return the burial goods to me. I will see to their proper disposition.
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00644_GraveRobberAnnihilation/32017-05.html b/trunk/dist/game/data/scripts/quests/Q00644_GraveRobberAnnihilation/32017-05.html
deleted file mode 100644
index db1bf1f96f..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00644_GraveRobberAnnihilation/32017-05.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Karuda:
-We have confirmed that grave robbers plundered almost 120 graves. If you defeat them and bring back all of the stolen Orcish burial goods, I will give you a reward. I have heard that the grave robbers' hideout is based in the south. Best of luck.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00644_GraveRobberAnnihilation/32017-06.html b/trunk/dist/game/data/scripts/quests/Q00644_GraveRobberAnnihilation/32017-06.html
deleted file mode 100644
index eef4bb46d5..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00644_GraveRobberAnnihilation/32017-06.html
+++ /dev/null
@@ -1,9 +0,0 @@
-Karuda:
-Yes, I certify that these are all of the stolen items. I shall reward you for your hard work as best I can. I don't have much to give you, but I can give you your choice of:
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00644_GraveRobberAnnihilation/32017-07.html b/trunk/dist/game/data/scripts/quests/Q00644_GraveRobberAnnihilation/32017-07.html
deleted file mode 100644
index d1e21f3d3a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00644_GraveRobberAnnihilation/32017-07.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Karuda:
-Here, and may Pa'agrio bless and protect you!
-Perhaps we will meet again, if it is His will.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00644_GraveRobberAnnihilation/Q00644_GraveRobberAnnihilation.java b/trunk/dist/game/data/scripts/quests/Q00644_GraveRobberAnnihilation/Q00644_GraveRobberAnnihilation.java
deleted file mode 100644
index d549736338..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00644_GraveRobberAnnihilation/Q00644_GraveRobberAnnihilation.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00644_GraveRobberAnnihilation;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.holders.ItemHolder;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-
-/**
- * Grave Robber Annihilation (644)
- * @author netvirus
- */
-public final class Q00644_GraveRobberAnnihilation extends Quest
-{
- // NPC
- private static final int KARUDA = 32017;
- // Item
- private static final int ORC_GOODS = 8088;
- // Misc
- private static final int MIN_LVL = 20;
- private static final int ORC_GOODS_REQUIRED_COUNT = 120;
- // Monsters
- private static final Map MONSTER_DROP_CHANCES = new HashMap<>();
- // Rewards
- private static final Map REWARDS = new HashMap<>();
-
- static
- {
- MONSTER_DROP_CHANCES.put(22003, 0.714); // Grave Robber Scout
- MONSTER_DROP_CHANCES.put(22004, 0.841); // Grave Robber Lookout
- MONSTER_DROP_CHANCES.put(22005, 0.778); // Grave Robber Ranger
- MONSTER_DROP_CHANCES.put(22006, 0.746); // Grave Robber Guard
- MONSTER_DROP_CHANCES.put(22008, 0.810); // Grave Robber Fighter
-
- REWARDS.put("varnish", new ItemHolder(1865, 30)); // Varnish
- REWARDS.put("animalskin", new ItemHolder(1867, 40)); // Animal Skin
- REWARDS.put("animalbone", new ItemHolder(1872, 40)); // Animal Bone
- REWARDS.put("charcoal", new ItemHolder(1871, 30)); // Charcoal
- REWARDS.put("coal", new ItemHolder(1870, 30)); // Coal
- REWARDS.put("ironore", new ItemHolder(1869, 30)); // Iron Ore
- }
-
- public Q00644_GraveRobberAnnihilation()
- {
- super(644, Q00644_GraveRobberAnnihilation.class.getSimpleName(), "Grave Robber Annihilation");
- addStartNpc(KARUDA);
- addTalkId(KARUDA);
- addKillId(MONSTER_DROP_CHANCES.keySet());
- registerQuestItems(ORC_GOODS);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, false);
- String htmltext = null;
- if (st == null)
- {
- return htmltext;
- }
-
- switch (event)
- {
- case "32017-03.htm":
- {
- if (st.isCreated())
- {
- st.startQuest();
- htmltext = event;
- }
- break;
- }
- case "32017-06.html":
- {
- if (st.isCond(2) && (st.getQuestItemsCount(ORC_GOODS) >= ORC_GOODS_REQUIRED_COUNT))
- {
- htmltext = event;
- }
- break;
- }
- case "varnish":
- case "animalskin":
- case "animalbone":
- case "charcoal":
- case "coal":
- case "ironore":
- {
- if (st.isCond(2))
- {
- final ItemHolder reward = REWARDS.get(event);
- st.rewardItems(reward.getId(), reward.getCount());
- st.exitQuest(true, true);
- htmltext = "32017-07.html";
- }
- break;
- }
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
- {
- final QuestState qs = getRandomPartyMemberState(killer, 1, 3, npc);
- if ((qs != null) && qs.giveItemRandomly(npc, ORC_GOODS, 1, ORC_GOODS_REQUIRED_COUNT, MONSTER_DROP_CHANCES.get(npc.getId()), true))
- {
- qs.setCond(2, true);
- }
- return super.onKill(npc, killer, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, true);
- String htmltext = getNoQuestMsg(player);
- if (st == null)
- {
- return htmltext;
- }
-
- switch (st.getState())
- {
- case State.CREATED:
- {
- htmltext = ((player.getLevel() >= MIN_LVL) ? "32017-01.htm" : "32017-02.htm");
- break;
- }
- case State.STARTED:
- {
- if (st.isCond(2) && (st.getQuestItemsCount(ORC_GOODS) >= ORC_GOODS_REQUIRED_COUNT))
- {
- htmltext = "32017-04.html";
- }
- else
- {
- htmltext = "32017-05.html";
- }
- break;
- }
- }
- return htmltext;
- }
-}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00646_SignsOfRevolt/32016-01.html b/trunk/dist/game/data/scripts/quests/Q00646_SignsOfRevolt/32016-01.html
deleted file mode 100644
index 445dcb1cb8..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00646_SignsOfRevolt/32016-01.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Beacon Tower Manager Torrant:
-Are you the reinforcements we asked for? You're certainly more powerful than I anticipated!
-Unfortunately, though, the situation here has deteriorated and the original mission is invalid. Perhaps we could still put your skills to good use. Are you up for a new mission? If so, speak with Chairen.
-(It is no longer possible to pursue this quest because the hunting field levels have been changed.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00646_SignsOfRevolt/32016-02.html b/trunk/dist/game/data/scripts/quests/Q00646_SignsOfRevolt/32016-02.html
deleted file mode 100644
index 9684ccedb7..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00646_SignsOfRevolt/32016-02.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Beacon Tower Manager Torrant:
-Are you the reinforcements we asked for? Well, you came too late.
-The Ragna Orcs around here have grown tremendously in strength thanks to the power of Kasha, the spirit that Baranka summoned. There is nothing you can do now...
-(It is no longer possible to pursue this quest because the hunting field levels have been changed.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00649_ALooterAndARailroadMan/32052-01.htm b/trunk/dist/game/data/scripts/quests/Q00649_ALooterAndARailroadMan/32052-01.htm
deleted file mode 100644
index 3c84225fe6..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00649_ALooterAndARailroadMan/32052-01.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Railroad Worker Obi:
-This area has gone to hell lately! The security was never that great, but once there were merchants and warehouses, security guards and adventurers... But that was a long time ago....
-Now they're all gone! All that's left is this old, worn-out railroad station and the Bandits who rob anyone foolish enough to come here!
-How would you like a job?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00649_ALooterAndARailroadMan/32052-02.htm b/trunk/dist/game/data/scripts/quests/Q00649_ALooterAndARailroadMan/32052-02.htm
deleted file mode 100644
index 59bcbeeb0d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00649_ALooterAndARailroadMan/32052-02.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Railroad Worker Obi:
-The Bandits around here are known as Rayito's Bandits. They're not very strong but they're tenacious!
-Honestly, friend, I don't think you're ready to take these fellows on!
-Come back when you've had more experience.
-(Characters must have achieved at least level 30 to undertake this quest.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00649_ALooterAndARailroadMan/32052-03.htm b/trunk/dist/game/data/scripts/quests/Q00649_ALooterAndARailroadMan/32052-03.htm
deleted file mode 100644
index edb716fd2d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00649_ALooterAndARailroadMan/32052-03.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Railroad Worker Obi:
-The Bandits around these parts are known as Rayito's Bandits. They're not very strong but they're tenacious like bugs at a picnic.
- They survive by hunting the wild beasts around here. They use the beasts' teeth to decorate themselves! Nasty! Bring me proof that you killed 200 Bandits and I will give you reward.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00649_ALooterAndARailroadMan/32052-04.html b/trunk/dist/game/data/scripts/quests/Q00649_ALooterAndARailroadMan/32052-04.html
deleted file mode 100644
index f69283ecd3..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00649_ALooterAndARailroadMan/32052-04.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Railroad Worker Obi:
-Do you have 200 proofs from the Bandits?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00649_ALooterAndARailroadMan/32052-05.html b/trunk/dist/game/data/scripts/quests/Q00649_ALooterAndARailroadMan/32052-05.html
deleted file mode 100644
index 716c4fa972..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00649_ALooterAndARailroadMan/32052-05.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Railroad Worker Obi:
-Defeat the Bandits and bring me 200 proofs.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00649_ALooterAndARailroadMan/32052-06.html b/trunk/dist/game/data/scripts/quests/Q00649_ALooterAndARailroadMan/32052-06.html
deleted file mode 100644
index 6057ae99eb..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00649_ALooterAndARailroadMan/32052-06.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Railroad Worker Obi:
-You brought 200 Bandit proofs. That's great!
-We can rest easily for a while now.
-Please accept this token of our gratitude. It's not much, but please accept it.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00649_ALooterAndARailroadMan/Q00649_ALooterAndARailroadMan.java b/trunk/dist/game/data/scripts/quests/Q00649_ALooterAndARailroadMan/Q00649_ALooterAndARailroadMan.java
deleted file mode 100644
index ee0ba81f27..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00649_ALooterAndARailroadMan/Q00649_ALooterAndARailroadMan.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00649_ALooterAndARailroadMan;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.l2jserver.gameserver.enums.QuestSound;
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-import com.l2jserver.gameserver.util.Util;
-
-/**
- * A Looter And A Railroad Man (649)
- * @author netvirus
- */
-public final class Q00649_ALooterAndARailroadMan extends Quest
-{
- // Npc
- private static final int RAILMAN_OBI = 32052;
- // Item
- private static final int THIEF_GUILD_MARK = 8099;
- // Misc
- private static final int MIN_LVL = 30;
- // Monsters
- private static final Map MONSTERS = new HashMap<>();
-
- static
- {
- MONSTERS.put(22017, 529); // Bandit Sweeper
- MONSTERS.put(22018, 452); // Bandit Hound
- MONSTERS.put(22019, 606); // Bandit Watchman
- MONSTERS.put(22021, 615); // Bandit Undertaker
- MONSTERS.put(22022, 721); // Bandit Assassin
- MONSTERS.put(22023, 827); // Bandit Warrior
- MONSTERS.put(22024, 779); // Bandit Inspector
- MONSTERS.put(22026, 1000); // Bandit Captain
- }
-
- public Q00649_ALooterAndARailroadMan()
- {
- super(649, Q00649_ALooterAndARailroadMan.class.getSimpleName(), "A Looter and a Railroad Man");
- addStartNpc(RAILMAN_OBI);
- addTalkId(RAILMAN_OBI);
- addKillId(MONSTERS.keySet());
- registerQuestItems(THIEF_GUILD_MARK);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return null;
- }
-
- String htmltext = null;
- switch (event)
- {
- case "32052-03.htm":
- {
- if (st.isCreated())
- {
- st.startQuest();
- htmltext = event;
- }
- break;
- }
- case "32052-06.html":
- {
- if (st.isCond(2) && st.hasQuestItems(THIEF_GUILD_MARK))
- {
- st.giveAdena(21698, true);
- st.exitQuest(true, true);
- htmltext = event;
- }
- }
- }
- return htmltext;
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, true);
- String htmltext = getNoQuestMsg(player);
- if (st == null)
- {
- return htmltext;
- }
-
- switch (st.getState())
- {
- case State.CREATED:
- {
- htmltext = (player.getLevel() >= MIN_LVL) ? "32052-01.htm" : "32052-02.htm";
- break;
- }
- case State.STARTED:
- {
- htmltext = (st.getQuestItemsCount(THIEF_GUILD_MARK) == 200) ? "32052-04.html" : "32052-05.html";
- break;
- }
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
- {
- final QuestState st = getQuestState(killer, false);
- if ((st != null) && st.isCond(1) && Util.checkIfInRange(1500, npc, killer, false) && (getRandom(1000) < MONSTERS.get(npc.getId())))
- {
- st.giveItems(THIEF_GUILD_MARK, 1);
- if (st.getQuestItemsCount(THIEF_GUILD_MARK) == 200)
- {
- st.setCond(2, true);
- }
- else
- {
- st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
- }
- }
- return super.onKill(npc, killer, isSummon);
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00651_RunawayYouth/31989-01.html b/trunk/dist/game/data/scripts/quests/Q00651_RunawayYouth/31989-01.html
deleted file mode 100644
index e09b55dd94..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00651_RunawayYouth/31989-01.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Fishing Guild Member Batidae:
-Oh, thank you so much! My son has returned to me and started learning to fish! Please, accept this token of my gratitude. I wish I could give you more... I'm just a poor fisherman, and I don't catch as many fish as I used to... I don't blame my son for wanting to run away from home, but what can I do... People will always need fish!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00651_RunawayYouth/32014-01.htm b/trunk/dist/game/data/scripts/quests/Q00651_RunawayYouth/32014-01.htm
deleted file mode 100644
index b977d2a944..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00651_RunawayYouth/32014-01.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Ivan:
-Oh, you're an adventurer, aren't you? Phew... I'm Ivan. I'm a fisherman like my father! But to tell you the truth, I hate the smell of fish! So I left home... I've been wandering around this dangerous place, and now I'm thinking that maybe my father was right after all! I wish I could go back home... Please help me!!
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00651_RunawayYouth/32014-01a.htm b/trunk/dist/game/data/scripts/quests/Q00651_RunawayYouth/32014-01a.htm
deleted file mode 100644
index 32acb5ad50..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00651_RunawayYouth/32014-01a.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Ivan:
-The boy appears not to trust you.
-He doesn't want to talk to you.
-(Only characters level 26 and above are permitted to take on this quest.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00651_RunawayYouth/32014-02.html b/trunk/dist/game/data/scripts/quests/Q00651_RunawayYouth/32014-02.html
deleted file mode 100644
index f4a80cd73c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00651_RunawayYouth/32014-02.html
+++ /dev/null
@@ -1,6 +0,0 @@
-Ivan:
-Thanks to you, I can get home safely. Thank you again!
-My father is Batidae, a Fishing Guild Member of the Town of Schuttgart.
-If you go there, please look for my father. He'll reward you.
-I'm leaving now... Good luck!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00651_RunawayYouth/32014-03.html b/trunk/dist/game/data/scripts/quests/Q00651_RunawayYouth/32014-03.html
deleted file mode 100644
index 8a71401091..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00651_RunawayYouth/32014-03.html
+++ /dev/null
@@ -1,3 +0,0 @@
-Ivan:
-You're such a cold person... I never should've left home.... If I die out here, I will curse you and haunt you forever!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00651_RunawayYouth/32014-04.htm b/trunk/dist/game/data/scripts/quests/Q00651_RunawayYouth/32014-04.htm
deleted file mode 100644
index c96e2e2e2e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00651_RunawayYouth/32014-04.htm
+++ /dev/null
@@ -1,6 +0,0 @@
-Ivan:
-Thank you so much! Now I can now get home safely. Again, thank you.
-My father is Batidae, a Fishing Guild Member of the Town of Schuttgart.
-If you go there, please look for my father. He'll reward you.
-I'm leaving now... Good luck!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00651_RunawayYouth/32014-05.htm b/trunk/dist/game/data/scripts/quests/Q00651_RunawayYouth/32014-05.htm
deleted file mode 100644
index 22ae90b33a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00651_RunawayYouth/32014-05.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Ivan:
-You don't have the Scroll of Escape... If you ever meet someone who has one, please ask them to help me! By all that is Holy, I beg you!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00651_RunawayYouth/Q00651_RunawayYouth.java b/trunk/dist/game/data/scripts/quests/Q00651_RunawayYouth/Q00651_RunawayYouth.java
deleted file mode 100644
index ea72ae899f..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00651_RunawayYouth/Q00651_RunawayYouth.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00651_RunawayYouth;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-
-/**
- * Runaway Youth (651)
- * @author malyelfik
- */
-public class Q00651_RunawayYouth extends Quest
-{
- // NPCs
- private static final int BATIDAE = 31989;
- private static final int IVAN = 32014;
- // Item
- private static final int SOE = 736;
- // Misc
- private static final int MIN_LEVEL = 26;
-
- public Q00651_RunawayYouth()
- {
- super(651, Q00651_RunawayYouth.class.getSimpleName(), "Runaway Youth");
- addStartNpc(IVAN);
- addTalkId(BATIDAE, IVAN);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return null;
- }
-
- String htmltext = null;
- if (event.equals("32014-03.html"))
- {
- htmltext = event;
- }
- else if (event.equals("32014-04.htm"))
- {
- if (!st.hasQuestItems(SOE))
- {
- return "32014-05.htm";
- }
- st.startQuest();
- st.takeItems(SOE, 1);
- npc.deleteMe();
- htmltext = event;
- }
- return htmltext;
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- String htmltext = getNoQuestMsg(player);
- final QuestState st = getQuestState(player, true);
- if (st == null)
- {
- return htmltext;
- }
-
- switch (npc.getId())
- {
- case IVAN:
- switch (st.getState())
- {
- case State.CREATED:
- htmltext = (player.getLevel() >= MIN_LEVEL) ? "32014-01.htm" : "32014-01a.htm";
- break;
- case State.STARTED:
- htmltext = "32014-02.html";
- break;
- }
- break;
- case BATIDAE:
- if (st.isStarted())
- {
- st.giveAdena(2883, true);
- st.exitQuest(true, true);
- htmltext = "31989-01.html";
- }
- break;
- }
- return htmltext;
- }
-}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00653_WildMaiden/30181-01.html b/trunk/dist/game/data/scripts/quests/Q00653_WildMaiden/30181-01.html
deleted file mode 100644
index 378958c1af..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00653_WildMaiden/30181-01.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Galibredo:
-Thank you so much! Thanks to you, my daughter made it home safely. I certainly gave her a good talking-to! I swear, I don't know what I'm going to do with that girl! I'm afraid something terrible will happen to her someday... Humph! By the way, Take this! It's not much, but think of it as a small token of my appreciation. Thank you again.
-What's a father to do...
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00653_WildMaiden/32013-01.htm b/trunk/dist/game/data/scripts/quests/Q00653_WildMaiden/32013-01.htm
deleted file mode 100644
index 0b4a6c4f25..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00653_WildMaiden/32013-01.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Suki:
-Good heavens! Oh, my ... ... You're an adventurer, aren't you? You certainly surprised me. Who am I? My name's Suki! What am I doing here? Honestly, I fell in love with a wonderful Warrior who came to our town not too long ago. A dark face with a melancholy shadow... Sinewy hands held his sword tight... He admired my pure heart and then he... he kissed my... Oh my! Some things are better left unsaid... Anyway, when he left, he wouldn't let me go with him, saying that it was too dangerous for me... Although I knew the danger well, I secretly followed him! I got lost and wound up here... The days have been hard here. My skin has grown rough and I haven't eaten in days! I would give anything just to get back home!
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00653_WildMaiden/32013-01a.htm b/trunk/dist/game/data/scripts/quests/Q00653_WildMaiden/32013-01a.htm
deleted file mode 100644
index beb94f3466..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00653_WildMaiden/32013-01a.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Suki:
-It seems that Suki doesn't trust you.
-There's nothing you can do for her at this time.
-(Only characters of level 36 and above may undertake this quest.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00653_WildMaiden/32013-02.htm b/trunk/dist/game/data/scripts/quests/Q00653_WildMaiden/32013-02.htm
deleted file mode 100644
index e1df656079..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00653_WildMaiden/32013-02.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Suki:
-You're the adventurer who helped me! Thank you so much! Now I can return home safely. If you're ever in the Town of Oren, speak with Galibredo. He's my father, and he'll reward you for your kindness.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00653_WildMaiden/32013-03.html b/trunk/dist/game/data/scripts/quests/Q00653_WildMaiden/32013-03.html
deleted file mode 100644
index ce4a01b5c4..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00653_WildMaiden/32013-03.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Suki:
-Humph! Oh yeah? If I die out here, it'll be all your fault!
-Humph!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00653_WildMaiden/32013-04.htm b/trunk/dist/game/data/scripts/quests/Q00653_WildMaiden/32013-04.htm
deleted file mode 100644
index 6381a4b272..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00653_WildMaiden/32013-04.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Suki:
-Oh, thank you so much! Thanks to you, I can now go back home safely. Thank you. By the way... Are you seeing anybody? .... Oh, never mind...Hehehe.. If you're ever in the Town of Oren, speak with Galibredo. He's my father, and he'll reward your kindness. I have to go now. So long, handsome! Good luck!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00653_WildMaiden/32013-04a.htm b/trunk/dist/game/data/scripts/quests/Q00653_WildMaiden/32013-04a.htm
deleted file mode 100644
index 5c670d247d..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00653_WildMaiden/32013-04a.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Suki:
-Oh, thank you so much! I can now go home safely! By the way... You have such smooth skin and great body tone... Not to mention that fine looking face! What's your secret? Oh, never mind... If you're ever in the Town of Oren, speak with Galibredo. He's my father, and he'll reward your kindness. Well, I should be going... Goodbye and Good luck!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00653_WildMaiden/32013-05.htm b/trunk/dist/game/data/scripts/quests/Q00653_WildMaiden/32013-05.htm
deleted file mode 100644
index 7ada33e2cf..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00653_WildMaiden/32013-05.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-Suki:
-Ah, you don't have the Scroll of Escape, huh? Well, if you meet someone who has one, please tell them that about this innocent, fragile and pitiful girl in trouble that desperately needs their help...
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00653_WildMaiden/Q00653_WildMaiden.java b/trunk/dist/game/data/scripts/quests/Q00653_WildMaiden/Q00653_WildMaiden.java
deleted file mode 100644
index 351674185a..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00653_WildMaiden/Q00653_WildMaiden.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00653_WildMaiden;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.quest.State;
-
-/**
- * Wild Maiden (653)
- * @author malyelfik
- */
-public class Q00653_WildMaiden extends Quest
-{
- // NPCs
- private static final int GALIBREDO = 30181;
- private static final int SUKI = 32013;
- // Item
- private static final int SOE = 736;
- // Misc
- private static final int MIN_LEVEL = 36;
-
- public Q00653_WildMaiden()
- {
- super(653, Q00653_WildMaiden.class.getSimpleName(), "Wild Maiden");
- addStartNpc(SUKI);
- addTalkId(GALIBREDO, SUKI);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return null;
- }
-
- String htmltext = null;
- if (event.equals("32013-03.html"))
- {
- htmltext = event;
- }
- else if (event.equals("32013-04.htm"))
- {
- if (!st.hasQuestItems(SOE))
- {
- return "32013-05.htm";
- }
- st.startQuest();
- st.takeItems(SOE, 1);
- npc.deleteMe();
- htmltext = (getRandom(2) == 0) ? event : "32013-04a.htm";
- }
- return htmltext;
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- String htmltext = getNoQuestMsg(player);
- final QuestState st = getQuestState(player, true);
- if (st == null)
- {
- return htmltext;
- }
-
- switch (npc.getId())
- {
- case SUKI:
- switch (st.getState())
- {
- case State.CREATED:
- htmltext = (player.getLevel() >= MIN_LEVEL) ? "32013-01.htm" : "32013-01a.htm";
- break;
- case State.STARTED:
- htmltext = "32013-02.htm";
- break;
- }
- break;
- case GALIBREDO:
- if (st.isStarted())
- {
- st.giveAdena(2553, true);
- st.exitQuest(true, true);
- htmltext = "30181-01.html";
- }
- break;
- }
- return htmltext;
- }
-}
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00654_JourneyToASettlement/31453-01.htm b/trunk/dist/game/data/scripts/quests/Q00654_JourneyToASettlement/31453-01.htm
deleted file mode 100644
index 9b2a2c92bb..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00654_JourneyToASettlement/31453-01.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Nameless Spirit:
-Oh, hello again! Yes, I spoke with Wigoth, and he assures me that this song is the one! We can now pass through the force field. It brings us one step closer to him, eh? By the way, could you help me put Frintezza to sleep? As I said, we can't eliminate Frintezza completely with our power at its current level... But we can wait until he wakes up and then put him back to sleep before he can act!
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00654_JourneyToASettlement/31453-02.htm b/trunk/dist/game/data/scripts/quests/Q00654_JourneyToASettlement/31453-02.htm
deleted file mode 100644
index d3c75168f6..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00654_JourneyToASettlement/31453-02.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-Nameless Spirit:
-Yes, thank you! Now I'll help you and your friends pass through the force field. By the way, where are your friends? Surely you don't intend to take Frintezza on all by yourself, do you? You should take up to four parties with you. Frintezza's evil power won't be easily defeated! More than 5 parties cannot enter due to the size of the space.
-You and your friends will need a magic scroll that can temporarily disable the force field so you can pass through. Since you got the password, creating the scroll should be no problem! That is, unless...
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00654_JourneyToASettlement/31453-03.html b/trunk/dist/game/data/scripts/quests/Q00654_JourneyToASettlement/31453-03.html
deleted file mode 100644
index 5e86d43d89..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00654_JourneyToASettlement/31453-03.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Nameless Spirit:
-Well... I need a parchment to write the spell on. Go to the Wall of Argos and slaughter the Canyon Antelope or the Canyon Antelope Slave and bring me the Skin of the Antelope! It'll make a lovely parchment!
-Ah! By the way, once you pass through the force field, only the Command Channel Leader in command of all the parties needs the scroll. Therefore, only one skin is needed.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00654_JourneyToASettlement/31453-04.htm b/trunk/dist/game/data/scripts/quests/Q00654_JourneyToASettlement/31453-04.htm
deleted file mode 100644
index ad8de140ce..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00654_JourneyToASettlement/31453-04.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Nameless Spirit:
-What do you want? I have nothing to say to you.
-(Characters must have achieved at least level 74 and completed the "Last Imperial Prince" quest before undertaking this quest.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00654_JourneyToASettlement/31453-05.html b/trunk/dist/game/data/scripts/quests/Q00654_JourneyToASettlement/31453-05.html
deleted file mode 100644
index 6da56338e5..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00654_JourneyToASettlement/31453-05.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Nameless Spirit:
-Go to the Wall of Argos and slaughter the Canyon Antelope or the Canyon Antelope Slave and bring back the Skin of the Antelope? It will make a wonderful parchment.
-Ah! by the way, when you pass through the force field, only the Command Channel Leader in command of all the parties needs the scroll. Therefore, only one scroll is needed.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00654_JourneyToASettlement/31453-06.html b/trunk/dist/game/data/scripts/quests/Q00654_JourneyToASettlement/31453-06.html
deleted file mode 100644
index 8ab9505071..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00654_JourneyToASettlement/31453-06.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Nameless Spirit:
-Excellent! Now, could you please smooth out the skin? Remove the hair, and smooth out the skin so that it's thin and soft. Just enough for me to write the spell down...
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00654_JourneyToASettlement/31453-07.html b/trunk/dist/game/data/scripts/quests/Q00654_JourneyToASettlement/31453-07.html
deleted file mode 100644
index d1f130ab2c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00654_JourneyToASettlement/31453-07.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Nameless Spirit:
-Good job... Now to write down the spell... ....Light turns darkness away, and shines upon the hidden door. All obstacles will disappear and the path to truth will become clear...
-Alright, it's done. Now, you and your friends go and meet the Imperial Tomb Guide near the entrance of the Imperial Tomb. He'll take you to Frintezza...
-(Make sure the Command Channel Leader has Frintezza's Magic Force Field Removal Scroll when you meet the Imperial Tomb Guide.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00654_JourneyToASettlement/Q00654_JourneyToASettlement.java b/trunk/dist/game/data/scripts/quests/Q00654_JourneyToASettlement/Q00654_JourneyToASettlement.java
deleted file mode 100644
index 0bb810cf1c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00654_JourneyToASettlement/Q00654_JourneyToASettlement.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00654_JourneyToASettlement;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import quests.Q00119_LastImperialPrince.Q00119_LastImperialPrince;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-
-/**
- * Journey to a Settlement (654)
- * @author Adry_85
- */
-public final class Q00654_JourneyToASettlement extends Quest
-{
- // NPC
- private static final int NAMELESS_SPIRIT = 31453;
- // Items
- private static final int ANTELOPE_SKIN = 8072;
- private static final int FRINTEZZAS_SCROLL = 8073;
- // Misc
- private static final int MIN_LEVEL = 74;
-
- private static final Map MOBS_SKIN = new HashMap<>();
- static
- {
- MOBS_SKIN.put(21294, 0.840); // Canyon Antelope
- MOBS_SKIN.put(21295, 0.893); // Canyon Antelope Slave
- }
-
- public Q00654_JourneyToASettlement()
- {
- super(654, Q00654_JourneyToASettlement.class.getSimpleName(), "Journey to a Settlement");
- addStartNpc(NAMELESS_SPIRIT);
- addTalkId(NAMELESS_SPIRIT);
- addKillId(MOBS_SKIN.keySet());
- registerQuestItems(ANTELOPE_SKIN);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return null;
- }
-
- String htmltext = null;
- switch (event)
- {
- case "31453-02.htm":
- {
- st.startQuest();
- st.setMemoState(1);
- htmltext = event;
- break;
- }
- case "31453-03.html":
- {
- if (st.isMemoState(1))
- {
- st.setMemoState(2);
- st.setCond(2, true);
- htmltext = event;
- }
- }
- case "31453-07.html":
- {
- if (st.isMemoState(2) && st.hasQuestItems(ANTELOPE_SKIN))
- {
- giveItems(player, FRINTEZZAS_SCROLL, 1);
- st.exitQuest(true, true);
- htmltext = event;
- }
- }
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
- {
- final QuestState st = getRandomPartyMemberState(player, 2, 3, npc);
- if ((st != null) && giveItemRandomly(st.getPlayer(), npc, ANTELOPE_SKIN, 1, 1, MOBS_SKIN.get(npc.getId()), true))
- {
- st.setCond(3);
- }
- return super.onKill(npc, player, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- QuestState st = getQuestState(player, true);
- String htmltext = getNoQuestMsg(player);
- if (st.isCreated())
- {
- st = player.getQuestState(Q00119_LastImperialPrince.class.getSimpleName());
- htmltext = ((player.getLevel() >= MIN_LEVEL) && (st != null) && (st.isCompleted())) ? "31453-01.htm" : "31453-04.htm";
- }
- else if (st.isStarted())
- {
- if (st.isMemoState(1))
- {
- st.setMemoState(2);
- st.setCond(2, true);
- htmltext = "31453-03.html";
- }
- else if (st.isMemoState(2))
- {
- htmltext = (hasQuestItems(player, ANTELOPE_SKIN) ? "31453-06.html" : "31453-05.html");
- }
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00659_IdRatherBeCollectingFairyBreath/30634-01.htm b/trunk/dist/game/data/scripts/quests/Q00659_IdRatherBeCollectingFairyBreath/30634-01.htm
deleted file mode 100644
index 651e6dd5c9..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00659_IdRatherBeCollectingFairyBreath/30634-01.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-High Summoner Galatea:
-Long ago, Gludio was consumed in the Burning War when the forces of the Ivory Tower confronted the bastard demon Beleth. Beleth's evil permanently scarred the land, leaving nothing but desolation and waste.
-I've been researching ways to restore Gludio to its former beauty. Will you help me?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00659_IdRatherBeCollectingFairyBreath/30634-02.htm b/trunk/dist/game/data/scripts/quests/Q00659_IdRatherBeCollectingFairyBreath/30634-02.htm
deleted file mode 100644
index 1fc2ffc893..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00659_IdRatherBeCollectingFairyBreath/30634-02.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-High Summoner Galatea:
-Oh, thank you! My investigation is finally going somewhere! It seems to me that there's a connection between the devastation in southern Gludio and the Sylphs... you know, those insane Wind Spirits in Windy Hill...
-Unfortunately, that's as far as I've gotten with my research. Could you bring me Fairy Breath from those pesky vermin in Windy Hill? Hunt the Sobbing Wind, Babbling Wind and Giggling Wind and then find what is known as the Container of Fairy Breath and bring those to me. The breath of a Sylph is quite an odd thing I know... but you'll know what I'm talking about when you get there...
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00659_IdRatherBeCollectingFairyBreath/30634-03.html b/trunk/dist/game/data/scripts/quests/Q00659_IdRatherBeCollectingFairyBreath/30634-03.html
deleted file mode 100644
index 4ea7d52560..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00659_IdRatherBeCollectingFairyBreath/30634-03.html
+++ /dev/null
@@ -1,4 +0,0 @@
-High Summoner Galatea:
-Long ago, Gludio was consumed in the Burning War when the forces of the Ivory Tower confronted the bastard demon Beleth. Beleth's evil permanently scarred the land, leaving nothing but desolation and waste.
-I've been researching ways to restore Gludio to its former beauty. Will you come back and help me when you've increased in your abilities? (Characters must have achieved level 26 or higher to undertake this quest.)
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00659_IdRatherBeCollectingFairyBreath/30634-04.html b/trunk/dist/game/data/scripts/quests/Q00659_IdRatherBeCollectingFairyBreath/30634-04.html
deleted file mode 100644
index a70c052254..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00659_IdRatherBeCollectingFairyBreath/30634-04.html
+++ /dev/null
@@ -1,4 +0,0 @@
-High Summoner Galatea:
-Wonderful! You've brought me some Fairy Breath! The more I have, the better!
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00659_IdRatherBeCollectingFairyBreath/30634-05.html b/trunk/dist/game/data/scripts/quests/Q00659_IdRatherBeCollectingFairyBreath/30634-05.html
deleted file mode 100644
index 017e50af6c..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00659_IdRatherBeCollectingFairyBreath/30634-05.html
+++ /dev/null
@@ -1,5 +0,0 @@
-High Summoner Galatea:
-Your help has been invaluable to my research! Unfortunately, the job isn't finished yet. Would you consider staying on and continuing to help me for a while?
-
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00659_IdRatherBeCollectingFairyBreath/30634-06.html b/trunk/dist/game/data/scripts/quests/Q00659_IdRatherBeCollectingFairyBreath/30634-06.html
deleted file mode 100644
index 7481d4c7e7..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00659_IdRatherBeCollectingFairyBreath/30634-06.html
+++ /dev/null
@@ -1,3 +0,0 @@
-High Summoner Galatea:
-Please go to Windy Hill and find Fairy Breath Containers. They're essential to my research as well!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00659_IdRatherBeCollectingFairyBreath/30634-07.html b/trunk/dist/game/data/scripts/quests/Q00659_IdRatherBeCollectingFairyBreath/30634-07.html
deleted file mode 100644
index cc0a9abcfb..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00659_IdRatherBeCollectingFairyBreath/30634-07.html
+++ /dev/null
@@ -1,3 +0,0 @@
-High Summoner Galatea:
-Marvelous! Please continue to bring me more Fairy Breath.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00659_IdRatherBeCollectingFairyBreath/30634-08.html b/trunk/dist/game/data/scripts/quests/Q00659_IdRatherBeCollectingFairyBreath/30634-08.html
deleted file mode 100644
index d6d74be8a5..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00659_IdRatherBeCollectingFairyBreath/30634-08.html
+++ /dev/null
@@ -1,3 +0,0 @@
-High Summoner Galatea:
-Well, I suppose you're ready to move on to another adventure. Good luck, my child.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00659_IdRatherBeCollectingFairyBreath/30634-09.html b/trunk/dist/game/data/scripts/quests/Q00659_IdRatherBeCollectingFairyBreath/30634-09.html
deleted file mode 100644
index ca925eea32..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00659_IdRatherBeCollectingFairyBreath/30634-09.html
+++ /dev/null
@@ -1,3 +0,0 @@
-High Summoner Galatea:
-Please go to Windy Hill and collect Fairy Breath. It's essential to my research!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00659_IdRatherBeCollectingFairyBreath/Q00659_IdRatherBeCollectingFairyBreath.java b/trunk/dist/game/data/scripts/quests/Q00659_IdRatherBeCollectingFairyBreath/Q00659_IdRatherBeCollectingFairyBreath.java
deleted file mode 100644
index 9c4ef39913..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00659_IdRatherBeCollectingFairyBreath/Q00659_IdRatherBeCollectingFairyBreath.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package quests.Q00659_IdRatherBeCollectingFairyBreath;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.l2jserver.gameserver.model.actor.L2Npc;
-import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
-
-/**
- * I'd Rather Be Collecting Fairy Breath (659)
- * @author Adry_85
- */
-public final class Q00659_IdRatherBeCollectingFairyBreath extends Quest
-{
- // NPC
- private static final int GALATEA = 30634;
- // Item
- private static final int FAIRY_BREATH = 8286;
- // Misc
- private static final int MIN_LEVEL = 26;
- // Mobs
- private static final Map MOBS = new HashMap<>();
- static
- {
- MOBS.put(20078, 0.98); // whispering_wind
- MOBS.put(21023, 0.82); // sobing_wind
- MOBS.put(21024, 0.86); // babbleing_wind
- MOBS.put(21025, 0.90); // giggleing_wind
- MOBS.put(21026, 0.96); // singing_wind
- }
-
- public Q00659_IdRatherBeCollectingFairyBreath()
- {
- super(659, Q00659_IdRatherBeCollectingFairyBreath.class.getSimpleName(), "I'd Rather Be Collecting Fairy Breath");
- addStartNpc(GALATEA);
- addTalkId(GALATEA);
- addKillId(MOBS.keySet());
- registerQuestItems(FAIRY_BREATH);
- }
-
- @Override
- public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, false);
- if (st == null)
- {
- return null;
- }
-
- String htmltext = null;
- switch (event)
- {
- case "30634-02.htm":
- {
- st.startQuest();
- htmltext = event;
- break;
- }
- case "REWARD":
- {
- if (hasQuestItems(player, FAIRY_BREATH))
- {
- final long count = getQuestItemsCount(player, FAIRY_BREATH);
- final long bonus = ((count >= 10) ? 5365 : 0);
- st.takeItems(FAIRY_BREATH, -1);
- st.giveAdena((count * 50) + bonus, true);
- htmltext = "30634-05.html";
- }
- else
- {
- htmltext = "30634-06.html";
- }
- break;
- }
- case "30634-07.html":
- {
- htmltext = event;
- break;
- }
- case "30634-08.html":
- {
- st.exitQuest(true, true);
- htmltext = event;
- break;
- }
- }
- return htmltext;
- }
-
- @Override
- public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
- {
- final QuestState st = getRandomPartyMemberState(player, -1, 3, npc);
- if (st != null)
- {
- st.giveItemRandomly(npc, FAIRY_BREATH, 1, 0, MOBS.get(npc.getId()), true);
- }
- return super.onKill(npc, player, isSummon);
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- final QuestState st = getQuestState(player, true);
- String htmltext = getNoQuestMsg(player);
- if (st == null)
- {
- return htmltext;
- }
-
- if (st.isCreated())
- {
- htmltext = ((player.getLevel() >= MIN_LEVEL) ? "30634-01.htm" : "30634-03.html");
- }
- else if (st.isStarted())
- {
- htmltext = (hasQuestItems(player, FAIRY_BREATH) ? "30634-04.html" : "30634-09.html");
- }
- return htmltext;
- }
-}
diff --git a/trunk/dist/game/data/scripts/quests/Q00660_AidingTheFloranVillage/30291-01.htm b/trunk/dist/game/data/scripts/quests/Q00660_AidingTheFloranVillage/30291-01.htm
deleted file mode 100644
index 47970c4375..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00660_AidingTheFloranVillage/30291-01.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Captain Alex:
-We've been having problems in Floran with monsters violating our perimeter. There have been a few skirmishes with our militia, but even worse than that, some monsters have gotten past our sentries and attacked citizens. I'm embarrassed to admit that - it's our job to keep this community safe, but we're just spread too darn thin! Reports indicate the monsters are targeting farmers out plowing their fields. I'm telling you this because I'd like your help in dealing with these monsters. If we can stop them, it'd go a long way toward restoring peace and order in Floran Village. Will you help us?
-
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00660_AidingTheFloranVillage/30291-02.htm b/trunk/dist/game/data/scripts/quests/Q00660_AidingTheFloranVillage/30291-02.htm
deleted file mode 100644
index 9265f25ab1..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00660_AidingTheFloranVillage/30291-02.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Captain Alex:
-Hrm. Harrumph. That's awfully generous of you youngsters, and it absolutely shows the right spirit, but I just can't accept your help in good conscience. These monsters are far too much for our militia to handle, and honestly I can't see you succeeding where my men have failed. Maybe a more experienced band could do the job, but I fear you'd just be throwing your lives away.
-Now don't be offended. My men haven't exactly been up to the challenge either. But who knows? You may see more action in the future and come back twice as capable as before! If that happens, and if we're still stuck with this problem, then I'll gladly accept your help.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00660_AidingTheFloranVillage/30291-03.htm b/trunk/dist/game/data/scripts/quests/Q00660_AidingTheFloranVillage/30291-03.htm
deleted file mode 100644
index cec2070fa9..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00660_AidingTheFloranVillage/30291-03.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-Captain Alex:
-Ha! I'll be honest - I was hoping for someone of your caliber to step forward. Here's the situation: we have a major problem with monster incursions in the Floran Agricultural Area. They've been killing innocent citizens, and we can't have that. I'll need proof of your kills, of course. No offense, but I can't pay out a reward unless I'm sure it's done. Bring me the Watching Eyes, a Golem Shard and a Delu Lizardman Scale, and I'll gladly pay you.
-Good hunting! We're counting on you.
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00660_AidingTheFloranVillage/30291-04.html b/trunk/dist/game/data/scripts/quests/Q00660_AidingTheFloranVillage/30291-04.html
deleted file mode 100644
index df27556e0e..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00660_AidingTheFloranVillage/30291-04.html
+++ /dev/null
@@ -1,4 +0,0 @@
-Captain Alex:
-Maria sent you, you say? Hrmph. Unfortunate business, that. Is she doing better?
-In any event, I'm glad to see you. We're having a problem with monster incursions, and the militia's spread too thin to handle it. Most of the attacks have been on farmers trying to reclaim and cultivate nearby abandoned land. I'll wager you're just the type of adventurer we need to fight this problem, and there's a reward in it. Just bring me the Watching Eyes, a Golem Shard and a Delu Lizardman Scale to prove your kills. Good hunting!
-
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q00660_AidingTheFloranVillage/30291-05.html b/trunk/dist/game/data/scripts/quests/Q00660_AidingTheFloranVillage/30291-05.html
deleted file mode 100644
index 52f879ab83..0000000000
--- a/trunk/dist/game/data/scripts/quests/Q00660_AidingTheFloranVillage/30291-05.html
+++ /dev/null
@@ -1,5 +0,0 @@
-Captain Alex:
-Ha! You've done it. Fine work! I knew you had it in you. And here is the proof I asked for - a sight for sore eyes, if I do say so myself! Well, I spoke of a reward, and a reward you shall have!
-