From 2a1610b69d3c617fdaec4ed3fe7f16f6434f897e Mon Sep 17 00:00:00 2001 From: mobius <8391001+MobiusDevelopment@users.noreply.github.com> Date: Sun, 22 Feb 2015 01:57:25 +0000 Subject: [PATCH] Kekropus Quests 40-75. Contributed by Neanrakyr. --- trunk/dist/game/data/html/default/33845.htm | 4 + trunk/dist/game/data/html/default/33846.htm | 4 + trunk/dist/game/data/html/default/33847.htm | 8 + trunk/dist/game/data/html/default/33858.htm | 4 + trunk/dist/game/data/html/default/33862.htm | 5 + trunk/dist/game/data/html/default/33867.htm | 5 + .../Q10390_KekropusLetter/30332-01.html | 5 + .../Q10390_KekropusLetter/30332-02.html | 4 + .../Q10390_KekropusLetter/30332-03.html | 3 + .../Q10390_KekropusLetter/30332-04.html | 7 + .../Q10390_KekropusLetter/30332-05.html | 4 + .../quests/Q10390_KekropusLetter/30505-01.htm | 4 + .../quests/Q10390_KekropusLetter/30505-02.htm | 6 + .../Q10390_KekropusLetter/30505-03.html | 5 + .../30505-noErtheia.html | 3 + .../Q10390_KekropusLetter/30505-noLevel.html | 3 + .../Q10390_KekropusLetter/30916-01.html | 4 + .../Q10390_KekropusLetter/30916-02.html | 4 + .../Q10390_KekropusLetter/30916-03.html | 4 + .../Q10390_KekropusLetter/33858-01.html | 4 + .../Q10390_KekropusLetter/33858-02.html | 7 + .../Q10390_KekropusLetter/Announce.html | 7 + .../Q10390_KekropusLetter.java | 287 ++++++++++++++++++ .../30677-01.htm | 5 + .../30677-02.html | 9 + .../30677-03.html | 7 + .../30677-noErtheia.html | 3 + .../30677-noLevel.html | 3 + .../33862-01.html | 5 + .../33862-02.html | 7 + .../Announce.html | 7 + .../Q10393_KekropusLetter_AClueCompleted.java | 212 +++++++++++++ .../30196-01.htm | 5 + .../30196-02.htm | 6 + .../30196-03.html | 6 + .../30196-noErtheia.html | 3 + .../30196-noLevel.html | 3 + .../33845-01.html | 5 + .../33845-02.html | 7 + .../Announce.html | 7 + ...10397_KekropusLetter_ASuspiciousBadge.java | 217 +++++++++++++ .../33864-01.htm | 5 + .../33864-02.htm | 5 + .../33864-03.html | 7 + .../33864-noErtheia.html | 3 + .../33864-noLevel.html | 3 + .../33865-01.html | 5 + .../33865-02.html | 7 + .../Announce.html | 8 + ...10401_KekropusLetter_DecodingTheBadge.java | 217 +++++++++++++ .../33864-01.htm | 5 + .../33864-02.htm | 7 + .../33864-03.html | 8 + .../33864-noErtheia.html | 3 + .../33864-noLevel.html | 3 + .../33867-01.html | 5 + .../33867-02.html | 7 + .../Announce.html | 8 + .../Q10404_KekropusLetter_AHiddenMeaning.java | 218 +++++++++++++ .../31340-01.htm | 5 + .../31340-02.htm | 5 + .../31340-03.html | 4 + .../31340-noErtheia.html | 3 + .../31340-noLevel.html | 3 + .../31340-noMage.html | 3 + .../33847-01.html | 5 + .../33847-02.html | 7 + .../Announce.html | 8 + ...10408_KekropusLetter_TheSwampOfScream.java | 222 ++++++++++++++ .../31340-01.htm | 5 + .../31340-02.htm | 5 + .../31340-03.html | 5 + .../31340-noErtheia.html | 3 + .../31340-noLevel.html | 3 + .../31340-noWarrior.html | 3 + .../33849-01.html | 5 + .../33849-02.html | 7 + .../Announce.html | 8 + ...411_KekropusLetter_TheForestOfTheDead.java | 226 ++++++++++++++ .../31292-01.htm | 5 + .../31292-02.htm | 5 + .../31292-03.html | 4 + .../31292-noErtheia.html | 3 + .../31292-noLevel.html | 3 + .../31292-noMage.html | 3 + .../33851-01.html | 5 + .../33851-02.html | 7 + .../Announce.html | 8 + .../Q10414_KekropusLetter_WithCourage.java | 222 ++++++++++++++ .../31292-01.htm | 5 + .../31292-02.htm | 5 + .../31292-03.html | 4 + .../31292-noErtheia.html | 3 + .../31292-noLevel.html | 3 + .../31292-noMage.html | 3 + .../33851-01.html | 5 + .../33851-02.html | 7 + .../Announce.html | 8 + .../Q10415_KekropusLetter_WithWisdom.java | 223 ++++++++++++++ .../scripts/quests/QuestMasterHandler.java | 18 ++ 100 files changed, 2516 insertions(+) create mode 100644 trunk/dist/game/data/html/default/33845.htm create mode 100644 trunk/dist/game/data/html/default/33846.htm create mode 100644 trunk/dist/game/data/html/default/33847.htm create mode 100644 trunk/dist/game/data/html/default/33858.htm create mode 100644 trunk/dist/game/data/html/default/33862.htm create mode 100644 trunk/dist/game/data/html/default/33867.htm create mode 100644 trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30332-01.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30332-02.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30332-03.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30332-04.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30332-05.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30505-01.htm create mode 100644 trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30505-02.htm create mode 100644 trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30505-03.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30505-noErtheia.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30505-noLevel.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30916-01.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30916-02.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30916-03.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/33858-01.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/33858-02.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/Announce.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/Q10390_KekropusLetter.java create mode 100644 trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/30677-01.htm create mode 100644 trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/30677-02.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/30677-03.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/30677-noErtheia.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/30677-noLevel.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/33862-01.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/33862-02.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/Announce.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/Q10393_KekropusLetter_AClueCompleted.java create mode 100644 trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/30196-01.htm create mode 100644 trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/30196-02.htm create mode 100644 trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/30196-03.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/30196-noErtheia.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/30196-noLevel.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/33845-01.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/33845-02.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/Announce.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/Q10397_KekropusLetter_ASuspiciousBadge.java create mode 100644 trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/33864-01.htm create mode 100644 trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/33864-02.htm create mode 100644 trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/33864-03.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/33864-noErtheia.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/33864-noLevel.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/33865-01.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/33865-02.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/Announce.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/Q10401_KekropusLetter_DecodingTheBadge.java create mode 100644 trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/33864-01.htm create mode 100644 trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/33864-02.htm create mode 100644 trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/33864-03.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/33864-noErtheia.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/33864-noLevel.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/33867-01.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/33867-02.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/Announce.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/Q10404_KekropusLetter_AHiddenMeaning.java create mode 100644 trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/31340-01.htm create mode 100644 trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/31340-02.htm create mode 100644 trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/31340-03.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/31340-noErtheia.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/31340-noLevel.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/31340-noMage.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/33847-01.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/33847-02.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/Announce.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/Q10408_KekropusLetter_TheSwampOfScream.java create mode 100644 trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/31340-01.htm create mode 100644 trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/31340-02.htm create mode 100644 trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/31340-03.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/31340-noErtheia.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/31340-noLevel.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/31340-noWarrior.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/33849-01.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/33849-02.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/Announce.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/Q10411_KekropusLetter_TheForestOfTheDead.java create mode 100644 trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/31292-01.htm create mode 100644 trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/31292-02.htm create mode 100644 trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/31292-03.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/31292-noErtheia.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/31292-noLevel.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/31292-noMage.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/33851-01.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/33851-02.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/Announce.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/Q10414_KekropusLetter_WithCourage.java create mode 100644 trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/31292-01.htm create mode 100644 trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/31292-02.htm create mode 100644 trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/31292-03.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/31292-noErtheia.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/31292-noLevel.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/31292-noMage.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/33851-01.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/33851-02.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/Announce.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/Q10415_KekropusLetter_WithWisdom.java diff --git a/trunk/dist/game/data/html/default/33845.htm b/trunk/dist/game/data/html/default/33845.htm new file mode 100644 index 0000000000..5826e47daa --- /dev/null +++ b/trunk/dist/game/data/html/default/33845.htm @@ -0,0 +1,4 @@ +Andy the Patrol:
+What can I do for you?
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/html/default/33846.htm b/trunk/dist/game/data/html/default/33846.htm new file mode 100644 index 0000000000..e282a86a95 --- /dev/null +++ b/trunk/dist/game/data/html/default/33846.htm @@ -0,0 +1,4 @@ +Paterson's Disciple Bacon:
+This dangerous place... you treat it like your living room. You're my kind of crazy.
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/html/default/33847.htm b/trunk/dist/game/data/html/default/33847.htm new file mode 100644 index 0000000000..83e7783a60 --- /dev/null +++ b/trunk/dist/game/data/html/default/33847.htm @@ -0,0 +1,8 @@ + + +Tracker Dokara: +
+What's your business here?
+ + + \ No newline at end of file diff --git a/trunk/dist/game/data/html/default/33858.htm b/trunk/dist/game/data/html/default/33858.htm new file mode 100644 index 0000000000..a0a6aae9c3 --- /dev/null +++ b/trunk/dist/game/data/html/default/33858.htm @@ -0,0 +1,4 @@ +Baron's Personal Escort Eli
+Hush! Stay quiet and still. We don't want to get caught.
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/html/default/33862.htm b/trunk/dist/game/data/html/default/33862.htm new file mode 100644 index 0000000000..e7f7942d9c --- /dev/null +++ b/trunk/dist/game/data/html/default/33862.htm @@ -0,0 +1,5 @@ +Guard Kelios:
+Everything is fine around here, thanks for asking. I mean, It's normal to have Outlaws swarming everywhere, yes? +
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/html/default/33867.htm b/trunk/dist/game/data/html/default/33867.htm new file mode 100644 index 0000000000..f91e46b172 --- /dev/null +++ b/trunk/dist/game/data/html/default/33867.htm @@ -0,0 +1,5 @@ +Shuvann:
+It's sad to see history repeat it self in the Fields of Massacre.
+We can only pray it's not too late to avoid the worst.
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30332-01.html b/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30332-01.html new file mode 100644 index 0000000000..90b232f26e --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30332-01.html @@ -0,0 +1,5 @@ +Captain Bathis:
+Ah, you've arrived. I've heard that High Prefect Drikus is paying a lot of attention to you. I'm not surprised. You're the reason for our success.
+You probably know already, but that's why I'm giving you this letter. Here is it.
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30332-02.html b/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30332-02.html new file mode 100644 index 0000000000..18973e36ca --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30332-02.html @@ -0,0 +1,4 @@ +Captain Bathis:
+What are you waiting for? Go ahead and read the letter.
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30332-03.html b/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30332-03.html new file mode 100644 index 0000000000..5c48d7010e --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30332-03.html @@ -0,0 +1,3 @@ +Kekropus' Letter:
+A secret organization called Embryo is trying to resurrect monsters from the Giant Age. Go to Captain Bathis in the Town of Gludio and get the detail from him.
+ \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30332-04.html b/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30332-04.html new file mode 100644 index 0000000000..76b00cb343 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30332-04.html @@ -0,0 +1,7 @@ +Captain Bathis:
+Are you done reading? If you continue to help us with our missions, Kekropus will regularly send you letters. Also, from now on, I'll enclose a Scroll of Escape in the envelope. It'll help you get to places easier. +
+Does that sound agreeable?
+ + + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30332-05.html b/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30332-05.html new file mode 100644 index 0000000000..e854717304 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30332-05.html @@ -0,0 +1,4 @@ +Captain Bathis:
+I've got another mission for you, a rather important one actually. I know you'll do your best. Let's get you to the mission Area.
+Go to Heine and talk to Guard Captain Gosta about the mission. You'll find the scroll very useful. Good luck. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30505-01.htm b/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30505-01.htm new file mode 100644 index 0000000000..35b0624ab9 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30505-01.htm @@ -0,0 +1,4 @@ +High Prefect Drikus:
+Do you feel stronger after the class transfer? Good, but now is not time to be complacent. There is something you must do in order to resolve the crisis in Aden.
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30505-02.htm b/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30505-02.htm new file mode 100644 index 0000000000..665a4e9d5f --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30505-02.htm @@ -0,0 +1,6 @@ +High Prefect Drikus:
+As you know, the advent of Shilen was a disaster for every life. So, every race's leaders promised to work together, getting over their past feuding. Now, they can meet any impending threat.
+Kekropus, the Great Hierarch of Kamaels gave me informations about the great threat of all and asked me to recommend a trustworthy person to him.
+You've always done a great job for us, so the task is yours. Will you accept it?
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30505-03.html b/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30505-03.html new file mode 100644 index 0000000000..caffcf468d --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30505-03.html @@ -0,0 +1,5 @@ +High Prefect Drikus:
+Good decision.
+What you need to do is very simple. Go to Captain Bathis in the Town of Gludio first. He has a letter for you. Read it and he will tell you what to do next.
+May the Flames of Pa'agrio illuminate your future! + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30505-noErtheia.html b/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30505-noErtheia.html new file mode 100644 index 0000000000..2d8fe687ec --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30505-noErtheia.html @@ -0,0 +1,3 @@ +High Prefect Drikus:
+No you are Ertheia, this quest is not for you. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30505-noLevel.html b/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30505-noLevel.html new file mode 100644 index 0000000000..15482155c9 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30505-noLevel.html @@ -0,0 +1,3 @@ +High Prefect Drikus:
+Your level is wrong for this quest. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30916-01.html b/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30916-01.html new file mode 100644 index 0000000000..670de3a5b6 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30916-01.html @@ -0,0 +1,4 @@ +Captain Gosta:
+What brings you here?
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30916-02.html b/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30916-02.html new file mode 100644 index 0000000000..87b8fba6e8 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30916-02.html @@ -0,0 +1,4 @@ +Captain Gosta:
+Ah, I see. Kekropus spread the word to each territory that an organization called Embryo is trying to grow monsters from the seeds of this race. So just about everybody, including us, was looking out for anything suspicious.
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30916-03.html b/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30916-03.html new file mode 100644 index 0000000000..2c1fb5a3b4 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/30916-03.html @@ -0,0 +1,4 @@ +Captain Gosta:
+Not too long ago, we spotted a group of people with some strange equipment near Alligator Island. We sent several people over there to investigate. Still, + they could use your help. Meet Baron's Personal Escort Eli, but do so secretly. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/33858-01.html b/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/33858-01.html new file mode 100644 index 0000000000..7738cbc67a --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/33858-01.html @@ -0,0 +1,4 @@ +Baron's Personal Escort Eli:
+Who are you? Who has sent you? You'd better give me a good answer.
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/33858-02.html b/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/33858-02.html new file mode 100644 index 0000000000..905983745f --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/33858-02.html @@ -0,0 +1,7 @@ +Baron's Personal Escort Eli:
+So you're the one who's supposed to help me? +Good, good. Let's have you hide first, shall we?
+ +- Note: You can develop yourself through quests and hunting at the hunting ground on Alligator Island. You can get the next item, Kekropus' Letter, at Lv. 46. + + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/Announce.html b/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/Announce.html new file mode 100644 index 0000000000..9537ea8bc9 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/Announce.html @@ -0,0 +1,7 @@ +The Kekropus's Letter
+Remember the fragment you discovered last time?
+Trace the delegation's steps-to Gludio Village. +For details, go to High Priest Drikus in the Town of Gludio.
+
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/Q10390_KekropusLetter.java b/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/Q10390_KekropusLetter.java new file mode 100644 index 0000000000..0ba4ba731c --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10390_KekropusLetter/Q10390_KekropusLetter.java @@ -0,0 +1,287 @@ +/* + * 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.Q10390_KekropusLetter; + +import com.l2jserver.gameserver.ai.CtrlIntention; +import com.l2jserver.gameserver.cache.HtmCache; +import com.l2jserver.gameserver.enums.Race; +import com.l2jserver.gameserver.handler.BypassHandler; +import com.l2jserver.gameserver.handler.IBypassHandler; +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.events.EventType; +import com.l2jserver.gameserver.model.events.ListenerRegisterType; +import com.l2jserver.gameserver.model.events.annotations.RegisterEvent; +import com.l2jserver.gameserver.model.events.annotations.RegisterType; +import com.l2jserver.gameserver.model.events.impl.character.player.OnPlayerLevelChanged; +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.serverpackets.ExShowScreenMessage; +import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage; + +/** + * @author Neanrakyr + */ +public class Q10390_KekropusLetter extends Quest implements IBypassHandler +{ + // NPCs + private static final int DRIKUS = 30505; + private static final int BATHIS = 30332; + private static final int GOSTA = 30916; + private static final int ELI = 33858; + // Items + private static final ItemHolder ENCHANT_WEAPON_C = new ItemHolder(951, 3); + private static final ItemHolder SCROLL_OF_ESCAPE_ALIGATOR_ISLAND = new ItemHolder(37025, 1); + private static final ItemHolder STEEL_DOOR_GUILD = new ItemHolder(37045, 21); + // Level Condition + private static final int MIN_LEVEL = 40; + private static final int MAX_LEVEL = 45; + // Others + private static final Location TELE_LOCATION = new Location(-12712, 124902, -3133); + private static final String[] COMMAND = + { + "Q10390_Teleport" + }; + + public Q10390_KekropusLetter() + { + super(10390, Q10390_KekropusLetter.class.getSimpleName(), "Kekropus Letter"); + addStartNpc(DRIKUS); + addTalkId(DRIKUS, BATHIS, GOSTA, ELI); + addCondLevel(MIN_LEVEL, MAX_LEVEL, "30505-noLevel.html"); + BypassHandler.getInstance().registerHandler(this); + } + + @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 "30505-03.html": + { + qs.startQuest(); + htmltext = event; + break; + } + case "30332-03.html": + { + if (qs.isCond(1)) + { + qs.setCond(2); + htmltext = event; + } + break; + } + case "30332-05.html": + { + if (qs.isCond(2)) + { + qs.setCond(3); + htmltext = event; + } + break; + } + case "30916-03.html": + { + if (qs.isCond(3)) + { + qs.setCond(4); + giveItems(player, SCROLL_OF_ESCAPE_ALIGATOR_ISLAND); + htmltext = event; + } + break; + } + case "33858-02.html": + { + if (qs.isCond(4)) + { + giveItems(player, ENCHANT_WEAPON_C); + giveItems(player, STEEL_DOOR_GUILD); + addExpAndSp(player, 370440, 88); + showOnScreenMsg(player, NpcStringId.GROW_STRONGER_HERE_UNTIL_YOU_RECEIVE_THE_NEXT_LETTER_FROM_KEKROPUS_AT_LV_46, ExShowScreenMessage.TOP_CENTER, 4500); + qs.exitQuest(false, true); + htmltext = event; + } + break; + } + case "30505-02.htm": + case "30332-02.html": + case "30916-02.html": + { + 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.isCompleted()) + { + return getAlreadyCompletedMsg(player); + } + if (player.getRace() == Race.ERTHEIA) + { + return "30505-noErtheia.html"; + } + + switch (npc.getId()) + { + case DRIKUS: + { + if (qs.isCreated()) + { + htmltext = "30505-01.htm"; + } + else if (qs.isStarted()) + { + htmltext = "30505-03.html"; + } + break; + } + case BATHIS: + { + switch (qs.getCond()) + { + case 1: + { + htmltext = "30332-01.html"; + break; + } + case 2: + { + htmltext = "30332-04.html"; + break; + } + case 3: + { + htmltext = "30332-05.html"; + break; + } + } + break; + } + case GOSTA: + { + switch (qs.getCond()) + { + case 3: + { + htmltext = "30916-01.html"; + break; + } + case 4: + { + htmltext = "30916-03.html"; + break; + } + } + break; + } + case ELI: + { + if (qs.isCond(4)) + { + htmltext = "33858-01.html"; + } + break; + } + } + return htmltext; + } + + @RegisterEvent(EventType.ON_PLAYER_LEVEL_CHANGED) + @RegisterType(ListenerRegisterType.GLOBAL) + public void OnPlayerLevelChanged(OnPlayerLevelChanged event) + { + final L2PcInstance player = event.getActiveChar(); + final int oldLevel = event.getOldLevel(); + final int newLevel = event.getNewLevel(); + + if (((oldLevel == (newLevel - 1)) && (player.getLevel() >= MIN_LEVEL)) && (player.getLevel() <= MAX_LEVEL) && !(player.getRace() == Race.ERTHEIA)) + { + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + final NpcHtmlMessage html = new NpcHtmlMessage(0, 0); + html.setHtml(HtmCache.getInstance().getHtm(player.getHtmlPrefix(), "data/scripts/quests/Q10390_KekropusLetter/Announce.html")); + player.sendPacket(html); + } + return; + } + } + + @Override + public boolean useBypass(String command, L2PcInstance player, L2Character bypassOrigin) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) || (player.getLevel() < MIN_LEVEL) || (player.getLevel() > MAX_LEVEL) || (player.getRace() == Race.ERTHEIA)) + { + return false; + } + + if (player.isInParty()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in party.", 5000)); + } + else if (player.isInCombat()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in combat.", 5000)); + } + else if (player.isInDuel()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in a duel.", 5000)); + } + else if (player.isInOlympiadMode()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in Olympiad.", 5000)); + } + else if (player.isInVehicle()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in any vehicle or mount.", 5000)); + } + else + { + player.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); + player.teleToLocation(TELE_LOCATION); + } + return true; + } + + @Override + public String[] getBypassList() + { + return COMMAND; + } +} \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/30677-01.htm b/trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/30677-01.htm new file mode 100644 index 0000000000..ccdcdd6bca --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/30677-01.htm @@ -0,0 +1,5 @@ +Head Blacksmith FLutter:
+What's with you? You look so serious. +
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/30677-02.html b/trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/30677-02.html new file mode 100644 index 0000000000..ff94da89c0 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/30677-02.html @@ -0,0 +1,9 @@ +Head Blacksmith FLutter:
+You'll help? Well, who can say no to such an offer? HaHa! Tell you what. Since you offered to help, I'll try putting together some of those fragments for you. +
+First, go to +Guard Kelios +in +Outlaw Forest +and get the details. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/30677-03.html b/trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/30677-03.html new file mode 100644 index 0000000000..e832ab8151 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/30677-03.html @@ -0,0 +1,7 @@ +Head Blacksmith FLutter:
+It will just take a moment, sorry for the wait. +
+ +- Note: You can develop yourself through quests and hunting at the hunting ground on Outlaw Forest. You can get the next item, Kekropus' Letter, at Lv. 52. + + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/30677-noErtheia.html b/trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/30677-noErtheia.html new file mode 100644 index 0000000000..8d987c80c9 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/30677-noErtheia.html @@ -0,0 +1,3 @@ +Head Blacksmith FLutter:
+No you are Ertheia, this quest is not for you. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/30677-noLevel.html b/trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/30677-noLevel.html new file mode 100644 index 0000000000..0c80ff0b63 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/30677-noLevel.html @@ -0,0 +1,3 @@ +Head Blacksmith FLutter:
+Your level is wrong for this quest. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/33862-01.html b/trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/33862-01.html new file mode 100644 index 0000000000..ded278a5dc --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/33862-01.html @@ -0,0 +1,5 @@ +Guard Kelios:
+What brings you here? +
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/33862-02.html b/trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/33862-02.html new file mode 100644 index 0000000000..1b8c48c0fe --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/33862-02.html @@ -0,0 +1,7 @@ +Giant Minion Eblune:
+I knew it! Not that it matters. I really don't care if you're a Patrol Member or not. I just need an extra hand. I've got a mission for you. +
+ +- Note: You can develop yourself through quests and hunting at the hunting ground on Forsaken Plains. You can get the next item, Kekropus' Letter, at Lv. 61. + + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/Announce.html b/trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/Announce.html new file mode 100644 index 0000000000..075eb98c88 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/Announce.html @@ -0,0 +1,7 @@ +The Kekropus's Letter
+Innadril is in danger from Iason Heine. Go to the Town of Oren and ask Head Blacksmith Flutter to combine Fragments. Thank you in advance. +
+(A Scroll of Escape is enclosed. If you want to go now, use it to travel immediately.) +
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/Q10393_KekropusLetter_AClueCompleted.java b/trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/Q10393_KekropusLetter_AClueCompleted.java new file mode 100644 index 0000000000..afc7b93261 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/Q10393_KekropusLetter_AClueCompleted.java @@ -0,0 +1,212 @@ +/* + * 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.Q10393_KekropusLetter_AClueCompleted; + +import com.l2jserver.gameserver.ai.CtrlIntention; +import com.l2jserver.gameserver.cache.HtmCache; +import com.l2jserver.gameserver.enums.Race; +import com.l2jserver.gameserver.handler.BypassHandler; +import com.l2jserver.gameserver.handler.IBypassHandler; +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.events.EventType; +import com.l2jserver.gameserver.model.events.ListenerRegisterType; +import com.l2jserver.gameserver.model.events.annotations.RegisterEvent; +import com.l2jserver.gameserver.model.events.annotations.RegisterType; +import com.l2jserver.gameserver.model.events.impl.character.player.OnPlayerLevelChanged; +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.serverpackets.ExShowScreenMessage; +import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage; + +/** + * @author Neanrakyr + */ +public class Q10393_KekropusLetter_AClueCompleted extends Quest implements IBypassHandler +{ + // Npcs + private static final int FLUTTER = 30677; + private static final int KELIOS = 33862; + // Items + private static final ItemHolder SCROLL_OF_ESCAPE_OUTLAW_FOREST = new ItemHolder(37026, 1); + private static final ItemHolder STEEL_DOOR_GUILD = new ItemHolder(37045, 15); + private static final ItemHolder ENCHANT_ARMOR_C = new ItemHolder(952, 4); + // Level Condition + private static final int MIN_LEVEL = 46; + private static final int MAX_LEVEL = 51; + // Other + private static final Location TELE_LOCATION = new Location(83697, 55446, -1512); + private static final String[] COMMAND = + { + "Q10393_Teleport" + }; + + public Q10393_KekropusLetter_AClueCompleted() + { + super(10393, Q10393_KekropusLetter_AClueCompleted.class.getSimpleName(), "Krekopus Letter: A Clue Completed"); + addStartNpc(FLUTTER); + addTalkId(FLUTTER, KELIOS); + addCondLevel(MIN_LEVEL, MAX_LEVEL, "30677-noLevel.html"); + BypassHandler.getInstance().registerHandler(this); + } + + @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 "30677-02.html": + { + qs.startQuest(); + giveItems(player, SCROLL_OF_ESCAPE_OUTLAW_FOREST); + htmltext = event; + break; + } + case "33862-02.html": + { + if (qs.isCond(1)) + { + giveItems(player, STEEL_DOOR_GUILD); + giveItems(player, ENCHANT_ARMOR_C); + addExpAndSp(player, 483840, 116); + showOnScreenMsg(player, NpcStringId.GROW_STRONGER_HERE_UNTIL_YOU_RECEIVE_THE_NEXT_LETTER_FROM_KEKROPUS_AT_LV_52, ExShowScreenMessage.TOP_CENTER, 4500); + qs.exitQuest(false, true); + 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.isCompleted()) + { + return getAlreadyCompletedMsg(player); + } + if (player.getRace() == Race.ERTHEIA) + { + return "30677-noErtheia.html"; + } + + switch (npc.getId()) + { + case FLUTTER: + { + if (qs.isCreated()) + { + htmltext = "30677-01.htm"; + } + else if (qs.isStarted()) + { + htmltext = "30677-03.html"; + } + break; + } + case KELIOS: + { + if (qs.isCond(1)) + { + htmltext = "33862-01.html"; + } + break; + } + } + return htmltext; + } + + @RegisterEvent(EventType.ON_PLAYER_LEVEL_CHANGED) + @RegisterType(ListenerRegisterType.GLOBAL) + public void OnPlayerLevelChanged(OnPlayerLevelChanged event) + { + final L2PcInstance player = event.getActiveChar(); + final int oldLevel = event.getOldLevel(); + final int newLevel = event.getNewLevel(); + + if (((oldLevel == (newLevel - 1)) && (player.getLevel() >= MIN_LEVEL)) && (player.getLevel() <= MAX_LEVEL) && !(player.getRace() == Race.ERTHEIA)) + { + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + final NpcHtmlMessage html = new NpcHtmlMessage(0, 0); + html.setHtml(HtmCache.getInstance().getHtm(player.getHtmlPrefix(), "data/scripts/quests/Q10393_KekropusLetter_AClueCompleted/Announce.html")); + player.sendPacket(html); + } + return; + } + } + + @Override + public boolean useBypass(String command, L2PcInstance player, L2Character bypassOrigin) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) || (player.getLevel() < MIN_LEVEL) || (player.getLevel() > MAX_LEVEL) || (player.getRace() == Race.ERTHEIA)) + { + return false; + } + + if (player.isInParty()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in party.", 5000)); + } + else if (player.isInCombat()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in combat.", 5000)); + } + else if (player.isInDuel()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in a duel.", 5000)); + } + else if (player.isInOlympiadMode()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in Olympiad.", 5000)); + } + else if (player.isInVehicle()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in any vehicle or mount.", 5000)); + } + else + { + player.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); + player.teleToLocation(TELE_LOCATION); + } + return true; + } + + @Override + public String[] getBypassList() + { + return COMMAND; + } +} \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/30196-01.htm b/trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/30196-01.htm new file mode 100644 index 0000000000..4b74e478b6 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/30196-01.htm @@ -0,0 +1,5 @@ +Captain Mouen:
+Good to see you again. I guess you came here because you got a letter from Kekropus. +
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/30196-02.htm b/trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/30196-02.htm new file mode 100644 index 0000000000..c3dc5687c3 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/30196-02.htm @@ -0,0 +1,6 @@ +Captain Mouen:
+You probably got the gist from Kekropus's Letter but the Sea of Spores is where you have to go. +We've dispatched soldiers to tighten security, but I don't think that is enough. +
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/30196-03.html b/trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/30196-03.html new file mode 100644 index 0000000000..c308cc774f --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/30196-03.html @@ -0,0 +1,6 @@ +Captain Mouen:
+For more information, go to talk to Andy the Patrol at the Sea of Spores. Good luck then. +
+To reach the Sea of Spores, use this Scroll of Escape: Sea of Spores, or ask a Gatekeeper for help. +
+ \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/30196-noErtheia.html b/trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/30196-noErtheia.html new file mode 100644 index 0000000000..0dcde5a652 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/30196-noErtheia.html @@ -0,0 +1,3 @@ +Captain Mouen:
+No you are Ertheia, this quest is not for you. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/30196-noLevel.html b/trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/30196-noLevel.html new file mode 100644 index 0000000000..442dd678cb --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/30196-noLevel.html @@ -0,0 +1,3 @@ +Captain Mouen:
+Your level is wrong for this quest. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/33845-01.html b/trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/33845-01.html new file mode 100644 index 0000000000..c354149cac --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/33845-01.html @@ -0,0 +1,5 @@ +Patrol Andy:
+Here in the Sea of Spores, we're dependent upon a force field built by the Ivory Tower wizards. +
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/33845-02.html b/trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/33845-02.html new file mode 100644 index 0000000000..a90c5b2a3f --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/33845-02.html @@ -0,0 +1,7 @@ +Patrol Andy:
+I appreciate you coming all the way out here. Hopefully you can get to the botton of this. +
+ +- Note: You can develop yourself through quests and hunting at the hunting ground on Sea of Spores. You can get the next item, Kekropus' Letter, at Lv. 58. + + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/Announce.html b/trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/Announce.html new file mode 100644 index 0000000000..64d4ee9cbb --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/Announce.html @@ -0,0 +1,7 @@ +The Kekropus's Letter
+A Suspicious Badge was discovered in the Sea of Spores. Go to Captain Mouen in the Town of Oren for details. +
+(A Scroll of Escape is enclosed. If you want to go now, use it to travel immediately.) +
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/Q10397_KekropusLetter_ASuspiciousBadge.java b/trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/Q10397_KekropusLetter_ASuspiciousBadge.java new file mode 100644 index 0000000000..38c1b78b06 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/Q10397_KekropusLetter_ASuspiciousBadge.java @@ -0,0 +1,217 @@ +/* + * 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.Q10397_KekropusLetter_ASuspiciousBadge; + +import com.l2jserver.gameserver.ai.CtrlIntention; +import com.l2jserver.gameserver.cache.HtmCache; +import com.l2jserver.gameserver.enums.Race; +import com.l2jserver.gameserver.handler.BypassHandler; +import com.l2jserver.gameserver.handler.IBypassHandler; +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.events.EventType; +import com.l2jserver.gameserver.model.events.ListenerRegisterType; +import com.l2jserver.gameserver.model.events.annotations.RegisterEvent; +import com.l2jserver.gameserver.model.events.annotations.RegisterType; +import com.l2jserver.gameserver.model.events.impl.character.player.OnPlayerLevelChanged; +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.serverpackets.ExShowScreenMessage; +import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage; + +/** + * @author Neanrakyr + */ +public class Q10397_KekropusLetter_ASuspiciousBadge extends Quest implements IBypassHandler +{ + // Npcs + private static final int MOUEN = 30196; + private static final int ANDY = 33845; + // Items + private static final ItemHolder SCROLL_OF_ESCAPE_SEA_OF_SPORES = new ItemHolder(37027, 1); + private static final ItemHolder STEEL_DOOR_GUILD = new ItemHolder(37045, 20); + private static final ItemHolder ENCHANT_WEAPON_B = new ItemHolder(947, 2); + // Level Condition + private static final int MIN_LEVEL = 52; + private static final int MAX_LEVEL = 57; + // Others + private static final Location TELE_LOCATION = new Location(80951, 56382, -1552); + private static final String[] COMMAND = + { + "Q10397_Teleport" + }; + + public Q10397_KekropusLetter_ASuspiciousBadge() + { + super(10397, Q10397_KekropusLetter_ASuspiciousBadge.class.getSimpleName(), "Kekropus Letter: A Suspicious Badge"); + addStartNpc(MOUEN); + addTalkId(MOUEN, ANDY); + addCondLevel(MIN_LEVEL, MAX_LEVEL, "30196-noLevel.html"); + BypassHandler.getInstance().registerHandler(this); + } + + @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 "30196-03.html": + { + qs.startQuest(); + giveItems(player, SCROLL_OF_ESCAPE_SEA_OF_SPORES); + htmltext = event; + break; + } + case "33845-02.html": + { + if (qs.isCond(1)) + { + giveItems(player, STEEL_DOOR_GUILD); + giveItems(player, ENCHANT_WEAPON_B); + addExpAndSp(player, 635250, 152); + showOnScreenMsg(player, NpcStringId.GROW_STRONGER_HERE_UNTIL_YOU_RECEIVE_THE_NEXT_LETTER_FROM_KEKROPUS_AT_LV_58, ExShowScreenMessage.TOP_CENTER, 4500); + qs.exitQuest(false, true); + htmltext = event; + } + break; + } + case "30196-02.htm": + { + 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.isCompleted()) + { + return getAlreadyCompletedMsg(player); + } + if (player.getRace() == Race.ERTHEIA) + { + return "30196-noErtheia.html"; + } + + switch (npc.getId()) + { + case MOUEN: + { + if (qs.isCreated()) + { + htmltext = "30196-01.htm"; + } + else if (qs.isStarted()) + { + htmltext = "30196-03.html"; + } + break; + } + case ANDY: + { + if (qs.isCond(1)) + { + htmltext = "33845-01.html"; + } + break; + } + } + return htmltext; + } + + @RegisterEvent(EventType.ON_PLAYER_LEVEL_CHANGED) + @RegisterType(ListenerRegisterType.GLOBAL) + public void OnPlayerLevelChanged(OnPlayerLevelChanged event) + { + final L2PcInstance player = event.getActiveChar(); + final int oldLevel = event.getOldLevel(); + final int newLevel = event.getNewLevel(); + + if (((oldLevel == (newLevel - 1)) && (player.getLevel() >= MIN_LEVEL)) && (player.getLevel() <= MAX_LEVEL) && !(player.getRace() == Race.ERTHEIA)) + { + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + final NpcHtmlMessage html = new NpcHtmlMessage(0, 0); + html.setHtml(HtmCache.getInstance().getHtm(player.getHtmlPrefix(), "data/scripts/quests/Q10397_KekropusLetter_ASuspiciousBadge/Announce.html")); + player.sendPacket(html); + } + return; + } + } + + @Override + public boolean useBypass(String command, L2PcInstance player, L2Character bypassOrigin) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) || (player.getLevel() < MIN_LEVEL) || (player.getLevel() > MAX_LEVEL) || (player.getRace() == Race.ERTHEIA)) + { + return false; + } + + if (player.isInParty()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in party.", 5000)); + } + else if (player.isInCombat()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in combat.", 5000)); + } + else if (player.isInDuel()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in a duel.", 5000)); + } + else if (player.isInOlympiadMode()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in Olympiad.", 5000)); + } + else if (player.isInVehicle()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in any vehicle or mount.", 5000)); + } + else + { + player.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); + player.teleToLocation(TELE_LOCATION); + } + return true; + } + + @Override + public String[] getBypassList() + { + return COMMAND; + } +} \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/33864-01.htm b/trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/33864-01.htm new file mode 100644 index 0000000000..197b61d8f7 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/33864-01.htm @@ -0,0 +1,5 @@ +Paterson:
+Eh, are you looking for spiritual help? I may be in a place like this, but I am no priest. +
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/33864-02.htm b/trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/33864-02.htm new file mode 100644 index 0000000000..f7479368c8 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/33864-02.htm @@ -0,0 +1,5 @@ +Paterson:
+As, I see. I am a rune scholar who helps out the Giant's minions. From what they sent over, I've found something called Inverted Ewaz, an ancient text which can harness the power of Gaints.
+I'm not sure, but I suspect this was some kind of spell to suppress the Giants' powers. I'd like to find out more.... will you help me?
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/33864-03.html b/trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/33864-03.html new file mode 100644 index 0000000000..26fbd39b84 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/33864-03.html @@ -0,0 +1,7 @@ +Paterson:
+Giant's Minion Eblune is in the +Forsaken Plains. I'll need her assistance to complete my research. +
+Let me give you a Scroll of Escape. It will help you get to your next destination easily. + + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/33864-noErtheia.html b/trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/33864-noErtheia.html new file mode 100644 index 0000000000..4711287ac4 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/33864-noErtheia.html @@ -0,0 +1,3 @@ +Paterson:
+No you are Ertheia, this quest is not for you. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/33864-noLevel.html b/trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/33864-noLevel.html new file mode 100644 index 0000000000..7b40a6f016 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/33864-noLevel.html @@ -0,0 +1,3 @@ +Paterson:
+Your level is wrong for this quest. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/33865-01.html b/trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/33865-01.html new file mode 100644 index 0000000000..1ab51dfde7 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/33865-01.html @@ -0,0 +1,5 @@ +Giant Minion Eblune:
+Are you part of the patrol team? Why are you so late? Why did you come alone? You don't look like a Patrol Member to me... +
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/33865-02.html b/trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/33865-02.html new file mode 100644 index 0000000000..1b8c48c0fe --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/33865-02.html @@ -0,0 +1,7 @@ +Giant Minion Eblune:
+I knew it! Not that it matters. I really don't care if you're a Patrol Member or not. I just need an extra hand. I've got a mission for you. +
+ +- Note: You can develop yourself through quests and hunting at the hunting ground on Forsaken Plains. You can get the next item, Kekropus' Letter, at Lv. 61. + + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/Announce.html b/trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/Announce.html new file mode 100644 index 0000000000..2cfa63ab35 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/Announce.html @@ -0,0 +1,8 @@ +The Kekropus's Letter
+I've asked Paterson to decipher marks inscribed on monsters. His scholarly expertise includes written Rune. +Visit him in the Town of Aden. +
+(A Scroll of Escape is enclosed. If you want to go now, use it to travel immediately.) +
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/Q10401_KekropusLetter_DecodingTheBadge.java b/trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/Q10401_KekropusLetter_DecodingTheBadge.java new file mode 100644 index 0000000000..f4869f91b2 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/Q10401_KekropusLetter_DecodingTheBadge.java @@ -0,0 +1,217 @@ +/* + * 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.Q10401_KekropusLetter_DecodingTheBadge; + +import com.l2jserver.gameserver.ai.CtrlIntention; +import com.l2jserver.gameserver.cache.HtmCache; +import com.l2jserver.gameserver.enums.Race; +import com.l2jserver.gameserver.handler.BypassHandler; +import com.l2jserver.gameserver.handler.IBypassHandler; +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.events.EventType; +import com.l2jserver.gameserver.model.events.ListenerRegisterType; +import com.l2jserver.gameserver.model.events.annotations.RegisterEvent; +import com.l2jserver.gameserver.model.events.annotations.RegisterType; +import com.l2jserver.gameserver.model.events.impl.character.player.OnPlayerLevelChanged; +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.serverpackets.ExShowScreenMessage; +import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage; + +/** + * @author Neanrakyr + */ +public class Q10401_KekropusLetter_DecodingTheBadge extends Quest implements IBypassHandler +{ + // Npcs + private static final int PATERSON = 33864; + private static final int EBLUNE = 33865; + // Items + private static final ItemHolder SCROLL_OF_ESCAPE_FORSAKEN_PLAINS = new ItemHolder(37028, 1); + private static final ItemHolder STEEL_DOOR_GUILD = new ItemHolder(37045, 30); + private static final ItemHolder ENCHANT_ARMOR_B = new ItemHolder(948, 5); + // Level Condition + private static final int MIN_LEVEL = 58; + private static final int MAX_LEVEL = 60; + // Others + private static final Location TELE_LOCATION = new Location(147619, 24681, -1984); + private static final String[] COMMAND = + { + "Q10401_Teleport" + }; + + public Q10401_KekropusLetter_DecodingTheBadge() + { + super(10401, Q10401_KekropusLetter_DecodingTheBadge.class.getSimpleName(), "Kekropus Letter: Decoding The Badge"); + addStartNpc(PATERSON); + addTalkId(PATERSON, EBLUNE); + addCondLevel(MIN_LEVEL, MAX_LEVEL, "33864-noLevel.html"); + BypassHandler.getInstance().registerHandler(this); + } + + @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 "33864-03.html": + { + qs.startQuest(); + giveItems(player, SCROLL_OF_ESCAPE_FORSAKEN_PLAINS); + htmltext = event; + break; + } + case "33865-02.html": + { + if (qs.isCond(1)) + { + giveItems(player, STEEL_DOOR_GUILD); + giveItems(player, ENCHANT_ARMOR_B); + addExpAndSp(player, 731010, 175); + showOnScreenMsg(player, NpcStringId.GROW_STRONGER_HERE_UNTIL_YOU_RECEIVE_THE_NEXT_LETTER_FROM_KEKROPUS_AT_LV_61, ExShowScreenMessage.TOP_CENTER, 4500); + qs.exitQuest(false, true); + htmltext = event; + } + break; + } + case "33864-02.htm": + { + 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.isCompleted()) + { + return getAlreadyCompletedMsg(player); + } + if (player.getRace() == Race.ERTHEIA) + { + return "33864-noErtheia.html"; + } + + switch (npc.getId()) + { + case PATERSON: + { + if (qs.isCreated()) + { + htmltext = "33864-01.htm"; + } + else if (qs.isStarted()) + { + htmltext = "33864-03.html"; + } + break; + } + case EBLUNE: + { + if (qs.isCond(1)) + { + htmltext = "33865-01.html"; + } + break; + } + } + return htmltext; + } + + @RegisterEvent(EventType.ON_PLAYER_LEVEL_CHANGED) + @RegisterType(ListenerRegisterType.GLOBAL) + public void OnPlayerLevelChanged(OnPlayerLevelChanged event) + { + final L2PcInstance player = event.getActiveChar(); + final int oldLevel = event.getOldLevel(); + final int newLevel = event.getNewLevel(); + + if (((oldLevel == (newLevel - 1)) && (player.getLevel() >= MIN_LEVEL)) && (player.getLevel() <= MAX_LEVEL) && !(player.getRace() == Race.ERTHEIA)) + { + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + final NpcHtmlMessage html = new NpcHtmlMessage(0, 0); + html.setHtml(HtmCache.getInstance().getHtm(player.getHtmlPrefix(), "data/scripts/quests/Q10401_KekropusLetter_DecodingTheBadge/Announce.html")); + player.sendPacket(html); + } + return; + } + } + + @Override + public boolean useBypass(String command, L2PcInstance player, L2Character bypassOrigin) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) || (player.getLevel() < MIN_LEVEL) || (player.getLevel() > MAX_LEVEL) || (player.getRace() == Race.ERTHEIA)) + { + return false; + } + + if (player.isInParty()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in party.", 5000)); + } + else if (player.isInCombat()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in combat.", 5000)); + } + else if (player.isInDuel()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in a duel.", 5000)); + } + else if (player.isInOlympiadMode()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in Olympiad.", 5000)); + } + else if (player.isInVehicle()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in any vehicle or mount.", 5000)); + } + else + { + player.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); + player.teleToLocation(TELE_LOCATION); + } + return true; + } + + @Override + public String[] getBypassList() + { + return COMMAND; + } +} diff --git a/trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/33864-01.htm b/trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/33864-01.htm new file mode 100644 index 0000000000..d275d9fb53 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/33864-01.htm @@ -0,0 +1,5 @@ +Paterson:
+What do you want? Oh, sorry, of course I know you. You helped me with research. Wait, you're not? Sorry, I'm a bit confused right now. I've been so busy with my research lately... +
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/33864-02.htm b/trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/33864-02.htm new file mode 100644 index 0000000000..7b77f33eba --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/33864-02.htm @@ -0,0 +1,7 @@ +Paterson:
+Kekropus... Kekropus. SOunds familiar, But since you're here, I could use some help. From the clues and evidence I've assembled, I found out that Embryo neither works for Shilien not uses her power. What they want is... the power of Giants! +
+I am now convinced that we will soon find some complicated plan that explains all of this. But for now we need some answers in order to stop Embryo +
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/33864-03.html b/trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/33864-03.html new file mode 100644 index 0000000000..d9b7e9675c --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/33864-03.html @@ -0,0 +1,8 @@ +Paterson:
+If you go to the +Field of Massacre, you'll find +Shuvann. He' not a great fighter, but has more knowledge about that place than anybody. I we are going to stop Embryo, you must help him. If you use the enclosed +Scroll of Escape, +You'll get there much quicker. + + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/33864-noErtheia.html b/trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/33864-noErtheia.html new file mode 100644 index 0000000000..4711287ac4 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/33864-noErtheia.html @@ -0,0 +1,3 @@ +Paterson:
+No you are Ertheia, this quest is not for you. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/33864-noLevel.html b/trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/33864-noLevel.html new file mode 100644 index 0000000000..7b40a6f016 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/33864-noLevel.html @@ -0,0 +1,3 @@ +Paterson:
+Your level is wrong for this quest. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/33867-01.html b/trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/33867-01.html new file mode 100644 index 0000000000..de551942cd --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/33867-01.html @@ -0,0 +1,5 @@ +Shuvann:
+Did Paterson send you? I can't think of any other reason anyone would talk to me. +
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/33867-02.html b/trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/33867-02.html new file mode 100644 index 0000000000..ed85023d30 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/33867-02.html @@ -0,0 +1,7 @@ +Shuvann:
+Without so many adventurers passing through, this area would be unlivable. Let's take a short break before we talk about your mission. +
+ +- Note: You can develop yourself through quests and hunting at the hunting ground on Field of Massacre. You can get the next item, Kekropus' Letter, at Lv. 65. + + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/Announce.html b/trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/Announce.html new file mode 100644 index 0000000000..2da734cd82 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/Announce.html @@ -0,0 +1,8 @@ +The Kekropus's Letter
+Rumor has it the inverted Ewaz -- the Rune language!-- was discovered inside Karum's Core. Embryo must be involved. +Please hurry to Paterson in the Town of Aden. +
+(A Scroll of Escape is enclosed. If you want to go now, use it to travel immediately.) +
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/Q10404_KekropusLetter_AHiddenMeaning.java b/trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/Q10404_KekropusLetter_AHiddenMeaning.java new file mode 100644 index 0000000000..760466ca5a --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/Q10404_KekropusLetter_AHiddenMeaning.java @@ -0,0 +1,218 @@ +/* + * 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.Q10404_KekropusLetter_AHiddenMeaning; + +import com.l2jserver.gameserver.ai.CtrlIntention; +import com.l2jserver.gameserver.cache.HtmCache; +import com.l2jserver.gameserver.enums.Race; +import com.l2jserver.gameserver.handler.BypassHandler; +import com.l2jserver.gameserver.handler.IBypassHandler; +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.events.EventType; +import com.l2jserver.gameserver.model.events.ListenerRegisterType; +import com.l2jserver.gameserver.model.events.annotations.RegisterEvent; +import com.l2jserver.gameserver.model.events.annotations.RegisterType; +import com.l2jserver.gameserver.model.events.impl.character.player.OnPlayerLevelChanged; +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.serverpackets.ExShowScreenMessage; +import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage; + +/** + * @author Neanrakyr + */ +public class Q10404_KekropusLetter_AHiddenMeaning extends Quest implements IBypassHandler +{ + // Npcs + private static final int PATERSON = 33864; + private static final int SHUVANN = 33867; + // Items + private static final ItemHolder SCROLL_OF_ESCAPE_FIELDS_OF_MASSACRE = new ItemHolder(37029, 1); + private static final ItemHolder STEEL_DOOR_GUILD = new ItemHolder(37045, 71); + private static final ItemHolder ENCHANT_WEAPON_A = new ItemHolder(729, 1); + // Level Condition + private static final int MIN_LEVEL = 61; + private static final int MAX_LEVEL = 64; + // Others + private static final Location TELE_LOCATION = new Location(147619, 24681, -1984); + private static final String[] COMMAND = + { + "Q10404_Teleport" + }; + + public Q10404_KekropusLetter_AHiddenMeaning() + { + super(10404, Q10404_KekropusLetter_AHiddenMeaning.class.getSimpleName(), "Kekropus Letter: A Hidden Meaning"); + addStartNpc(PATERSON); + addTalkId(PATERSON, SHUVANN); + addCondLevel(MIN_LEVEL, MAX_LEVEL, "33864-noLevel.html"); + BypassHandler.getInstance().registerHandler(this); + } + + @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 "33864-03.html": + { + qs.startQuest(); + giveItems(player, SCROLL_OF_ESCAPE_FIELDS_OF_MASSACRE); + htmltext = event; + break; + } + case "33867-02.html": + { + if (qs.isCond(1)) + { + giveItems(player, STEEL_DOOR_GUILD); + giveItems(player, ENCHANT_WEAPON_A); + addExpAndSp(player, 807240, 193); + showOnScreenMsg(player, NpcStringId.GROW_STRONGER_HERE_UNTIL_YOU_RECEIVE_THE_NEXT_LETTER_FROM_KEKROPUS_AT_LV_65, ExShowScreenMessage.TOP_CENTER, 4500); + qs.exitQuest(false, true); + htmltext = event; + } + break; + } + case "33864-02.htm": + { + 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.isCompleted()) + { + return getAlreadyCompletedMsg(player); + } + if (player.getRace() == Race.ERTHEIA) + { + return "33864-noErtheia.html"; + } + + switch (npc.getId()) + { + case PATERSON: + { + if (qs.isCreated()) + { + htmltext = "33864-01.htm"; + } + else if (qs.isStarted()) + { + htmltext = "33864-03.html"; + } + break; + } + case SHUVANN: + { + if (qs.isCond(1)) + { + htmltext = "33867-01.html"; + } + break; + } + } + return htmltext; + } + + @RegisterEvent(EventType.ON_PLAYER_LEVEL_CHANGED) + @RegisterType(ListenerRegisterType.GLOBAL) + public void OnPlayerLevelChanged(OnPlayerLevelChanged event) + { + final L2PcInstance player = event.getActiveChar(); + final int oldLevel = event.getOldLevel(); + final int newLevel = event.getNewLevel(); + + if (((oldLevel == (newLevel - 1)) && (player.getLevel() >= MIN_LEVEL)) && (player.getLevel() <= MAX_LEVEL) && !(player.getRace() == Race.ERTHEIA)) + { + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + final NpcHtmlMessage html = new NpcHtmlMessage(0, 0); + html.setHtml(HtmCache.getInstance().getHtm(player.getHtmlPrefix(), "data/scripts/quests/Q10404_KekropusLetter_AHiddenMeaning/Announce.html")); + player.sendPacket(html); + } + return; + + } + } + + @Override + public boolean useBypass(String command, L2PcInstance player, L2Character bypassOrigin) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) || (player.getLevel() < MIN_LEVEL) || (player.getLevel() > MAX_LEVEL) || (player.getRace() == Race.ERTHEIA)) + { + return false; + } + + if (player.isInParty()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in party.", 5000)); + } + else if (player.isInCombat()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in combat.", 5000)); + } + else if (player.isInDuel()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in a duel.", 5000)); + } + else if (player.isInOlympiadMode()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in Olympiad.", 5000)); + } + else if (player.isInVehicle()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in any vehicle or mount.", 5000)); + } + else + { + player.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); + player.teleToLocation(TELE_LOCATION); + } + return true; + } + + @Override + public String[] getBypassList() + { + return COMMAND; + } +} diff --git a/trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/31340-01.htm b/trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/31340-01.htm new file mode 100644 index 0000000000..9d0e01b3b0 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/31340-01.htm @@ -0,0 +1,5 @@ +Captain Mathias:
+Nice to meet you. Kekropus promised me that he would send me someone trustworthy. I guess he kept his word. You probably know what is going on after reading Kekropus letter, but let me tell you more details. +
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/31340-02.htm b/trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/31340-02.htm new file mode 100644 index 0000000000..63f99d59f4 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/31340-02.htm @@ -0,0 +1,5 @@ +Captain Mathias:
+Orc Trackers were chasing after a suspicious group when they split up toward the Swamp of Scream and the Forest of the Dead. The Orc Trackers also divided into two groups and chased after them separately. But now they are asking for help. I think both of the groups have run into problems. +
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/31340-03.html b/trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/31340-03.html new file mode 100644 index 0000000000..3aadd64fe9 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/31340-03.html @@ -0,0 +1,4 @@ +Captain Mathias:
+You're a brave one, aren't you? Go to the Swamp of Scream and meet Tracker Dokara + Get the details from him and help him with whatever he needs. I look forward to hearing the result. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/31340-noErtheia.html b/trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/31340-noErtheia.html new file mode 100644 index 0000000000..fe5e421801 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/31340-noErtheia.html @@ -0,0 +1,3 @@ +Captain Mathias:
+No you are Ertheia, this quest is not for you. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/31340-noLevel.html b/trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/31340-noLevel.html new file mode 100644 index 0000000000..c34a06c622 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/31340-noLevel.html @@ -0,0 +1,3 @@ +Captain Mathias:
+Your level is wrong for this quest. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/31340-noMage.html b/trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/31340-noMage.html new file mode 100644 index 0000000000..4d939cfa12 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/31340-noMage.html @@ -0,0 +1,3 @@ +Captain Mathias:
+Sorry, you are a Mage, this quest is not for you. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/33847-01.html b/trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/33847-01.html new file mode 100644 index 0000000000..11b711690b --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/33847-01.html @@ -0,0 +1,5 @@ +Tracker Dokara:
+Me? I'm Dokara. An Orc Tracker. Since Shilen and her followees ruined the world, I have been chasing them. For revenge! +
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/33847-02.html b/trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/33847-02.html new file mode 100644 index 0000000000..79b0075806 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/33847-02.html @@ -0,0 +1,7 @@ +Tracker Dokara:
+It was a trap! But no more. The Suspicious Vagabond will never harm another. Not if you go after him +
+ +- Note: You can develop yourself through quests and hunting at the hunting ground on Swamp of Scream. You can get the next item, Kekropus' Letter, at Lv. 70. + + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/Announce.html b/trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/Announce.html new file mode 100644 index 0000000000..f3d853d784 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/Announce.html @@ -0,0 +1,8 @@ +The Kekropus's Letter
+A group of suspicious people were seen in the +Swamp of Scream, a part of the Rune territory. Go to Captain Mathias in the Town of Rune for details. +
+(A Scroll of Escape is enclosed. If you want to go now, use it to travel immediately.) +
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/Q10408_KekropusLetter_TheSwampOfScream.java b/trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/Q10408_KekropusLetter_TheSwampOfScream.java new file mode 100644 index 0000000000..4971a60bfd --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/Q10408_KekropusLetter_TheSwampOfScream.java @@ -0,0 +1,222 @@ +/* + * 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.Q10408_KekropusLetter_TheSwampOfScream; + +import com.l2jserver.gameserver.ai.CtrlIntention; +import com.l2jserver.gameserver.cache.HtmCache; +import com.l2jserver.gameserver.enums.Race; +import com.l2jserver.gameserver.handler.BypassHandler; +import com.l2jserver.gameserver.handler.IBypassHandler; +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.events.EventType; +import com.l2jserver.gameserver.model.events.ListenerRegisterType; +import com.l2jserver.gameserver.model.events.annotations.RegisterEvent; +import com.l2jserver.gameserver.model.events.annotations.RegisterType; +import com.l2jserver.gameserver.model.events.impl.character.player.OnPlayerLevelChanged; +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.serverpackets.ExShowScreenMessage; +import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage; + +/** + * @author Neanrakyr + */ +public class Q10408_KekropusLetter_TheSwampOfScream extends Quest implements IBypassHandler +{ + // Npcs + private static final int MATHIAS = 31340; + private static final int DOKARA = 33847; + // Items + private static final ItemHolder SCROLL_OF_ESCAPE_SEA_OF_SPORES = new ItemHolder(37027, 1); + private static final ItemHolder STEEL_DOOR_GUILD = new ItemHolder(37045, 91); + private static final ItemHolder ENCHANT_WEAPON_A = new ItemHolder(729, 2); + // Level Condition + private static final int MIN_LEVEL = 65; + private static final int MAX_LEVEL = 69; + // Others + private static final Location TELE_LOCATION = new Location(42713, -48068, -801); + private static final String[] COMMAND = + { + "Q10408_Teleport" + }; + + public Q10408_KekropusLetter_TheSwampOfScream() + { + super(10408, Q10408_KekropusLetter_TheSwampOfScream.class.getSimpleName(), "Kekropus Letter: The Swamp Of Scream"); + addStartNpc(MATHIAS); + addTalkId(MATHIAS, DOKARA); + addCondLevel(MIN_LEVEL, MAX_LEVEL, "31340-noLevel.html"); + BypassHandler.getInstance().registerHandler(this); + } + + @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 "31340-03.html": + { + qs.startQuest(); + giveItems(player, SCROLL_OF_ESCAPE_SEA_OF_SPORES); + htmltext = event; + break; + } + case "33847-02.html": + { + if (qs.isCond(1)) + { + giveItems(player, STEEL_DOOR_GUILD); + giveItems(player, ENCHANT_WEAPON_A); + addExpAndSp(player, 942690, 226); + showOnScreenMsg(player, NpcStringId.GROW_STRONGER_HERE_UNTIL_YOU_RECEIVE_THE_NEXT_LETTER_FROM_KEKROPUS_AT_LV_70, ExShowScreenMessage.TOP_CENTER, 4500); + qs.exitQuest(false, true); + htmltext = event; + } + break; + } + case "31340-02.htm": + { + 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.isCompleted()) + { + return getAlreadyCompletedMsg(player); + } + if (player.getRace() == Race.ERTHEIA) + { + return "31340-noErtheia.html"; + } + if (player.isMageClass()) + { + return "31340-noMage.html"; + } + + switch (npc.getId()) + { + case MATHIAS: + { + if (qs.isCreated()) + { + htmltext = "31340-01.htm"; + } + else if (qs.isStarted()) + { + htmltext = "31340-03.html"; + } + break; + } + case DOKARA: + { + if (qs.isCond(1)) + { + htmltext = "33847-01.html"; + } + break; + } + } + return htmltext; + } + + @RegisterEvent(EventType.ON_PLAYER_LEVEL_CHANGED) + @RegisterType(ListenerRegisterType.GLOBAL) + public void OnPlayerLevelChanged(OnPlayerLevelChanged event) + { + final L2PcInstance player = event.getActiveChar(); + final int oldLevel = event.getOldLevel(); + final int newLevel = event.getNewLevel(); + + if (((oldLevel == (newLevel - 1)) && (player.getLevel() >= MIN_LEVEL)) && (player.getLevel() <= MAX_LEVEL) && !(player.getRace() == Race.ERTHEIA) && !player.isMageClass()) + { + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + final NpcHtmlMessage html = new NpcHtmlMessage(0, 0); + html.setHtml(HtmCache.getInstance().getHtm(player.getHtmlPrefix(), "data/scripts/quests/Q10408_KekropusLetter_TheSwampOfScream/Announce.html")); + player.sendPacket(html); + } + return; + + } + } + + @Override + public boolean useBypass(String command, L2PcInstance player, L2Character bypassOrigin) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) || (player.getLevel() < MIN_LEVEL) || (player.getLevel() > MAX_LEVEL) || (player.getRace() == Race.ERTHEIA)) + { + return false; + } + + if (player.isInParty()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in party.", 5000)); + } + else if (player.isInCombat()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in combat.", 5000)); + } + else if (player.isInDuel()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in a duel.", 5000)); + } + else if (player.isInOlympiadMode()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in Olympiad.", 5000)); + } + else if (player.isInVehicle()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in any vehicle or mount.", 5000)); + } + else + { + player.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); + player.teleToLocation(TELE_LOCATION); + } + return true; + } + + @Override + public String[] getBypassList() + { + return COMMAND; + } +} diff --git a/trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/31340-01.htm b/trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/31340-01.htm new file mode 100644 index 0000000000..64acabcee3 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/31340-01.htm @@ -0,0 +1,5 @@ +Captain Mathias:
+[TODO: NO DIALOGUE] +
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/31340-02.htm b/trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/31340-02.htm new file mode 100644 index 0000000000..1f7432c969 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/31340-02.htm @@ -0,0 +1,5 @@ +Captain Mathias:
+[TODO: NO DIALOGUE] +
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/31340-03.html b/trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/31340-03.html new file mode 100644 index 0000000000..c2c02e0742 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/31340-03.html @@ -0,0 +1,5 @@ +Captain Mathias:
+[TODO: NO DIALOGUE]
+You're a brave one, aren't you? Go to the The Forest Of The Dead and meet Tracker Hutaba + Get the details from him and help him with whatever he needs. I look forward to hearing the result. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/31340-noErtheia.html b/trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/31340-noErtheia.html new file mode 100644 index 0000000000..fe5e421801 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/31340-noErtheia.html @@ -0,0 +1,3 @@ +Captain Mathias:
+No you are Ertheia, this quest is not for you. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/31340-noLevel.html b/trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/31340-noLevel.html new file mode 100644 index 0000000000..c34a06c622 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/31340-noLevel.html @@ -0,0 +1,3 @@ +Captain Mathias:
+Your level is wrong for this quest. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/31340-noWarrior.html b/trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/31340-noWarrior.html new file mode 100644 index 0000000000..9ee50b1527 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/31340-noWarrior.html @@ -0,0 +1,3 @@ +Captain Mathias:
+Sorry, you are a Warrior, this quest is not for you. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/33849-01.html b/trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/33849-01.html new file mode 100644 index 0000000000..2bb2e32c1a --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/33849-01.html @@ -0,0 +1,5 @@ +Tracker Hutaba:
+[TODO: NO DIALOGUE] +
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/33849-02.html b/trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/33849-02.html new file mode 100644 index 0000000000..fcdfd536cc --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/33849-02.html @@ -0,0 +1,7 @@ +Tracker Hutaba:
+[TODO: NO DIALOGUE] +
+ +- Note: You can develop yourself through quests and hunting at the hunting ground on The Forest Of The Dead. You can get the next item, Kekropus' Letter, at Lv. 70. + + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/Announce.html b/trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/Announce.html new file mode 100644 index 0000000000..03aa2418d4 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/Announce.html @@ -0,0 +1,8 @@ +The Kekropus's Letter
+A group of suspicious people were seen in the +The Forest Of The Dead, a part of the Rune territory. Go to Captain Mathias in the Town of Rune for details. +
+(A Scroll of Escape is enclosed. If you want to go now, use it to travel immediately.) +
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/Q10411_KekropusLetter_TheForestOfTheDead.java b/trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/Q10411_KekropusLetter_TheForestOfTheDead.java new file mode 100644 index 0000000000..8c4db9e6c4 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/Q10411_KekropusLetter_TheForestOfTheDead.java @@ -0,0 +1,226 @@ +/* + * 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.Q10411_KekropusLetter_TheForestOfTheDead; + +import com.l2jserver.gameserver.ai.CtrlIntention; +import com.l2jserver.gameserver.cache.HtmCache; +import com.l2jserver.gameserver.enums.Race; +import com.l2jserver.gameserver.handler.BypassHandler; +import com.l2jserver.gameserver.handler.IBypassHandler; +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.events.EventType; +import com.l2jserver.gameserver.model.events.ListenerRegisterType; +import com.l2jserver.gameserver.model.events.annotations.RegisterEvent; +import com.l2jserver.gameserver.model.events.annotations.RegisterType; +import com.l2jserver.gameserver.model.events.impl.character.player.OnPlayerLevelChanged; +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.serverpackets.ExShowScreenMessage; +import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage; + +/** + * @author Neanrakyr + */ +public class Q10411_KekropusLetter_TheForestOfTheDead extends Quest implements IBypassHandler +{ + // Npcs + private static final int MATHIAS = 31340; + private static final int HUTABA = 33849; + // Items + private static final ItemHolder SCROLL_OF_ESCAPE_THE_FOREST_OF_THE_DEAD = new ItemHolder(37031, 1); + private static final ItemHolder STEEL_DOOR_GUILD = new ItemHolder(37045, 91); + private static final ItemHolder ENCHANT_WEAPON_A = new ItemHolder(729, 2); + // Level Condition + private static final int MIN_LEVEL = 65; + private static final int MAX_LEVEL = 69; + // Others + private static final Location TELE_LOCATION = new Location(42713, -48068, -801); + private static final String[] COMMAND = + { + "Q10411_Teleport" + }; + + public Q10411_KekropusLetter_TheForestOfTheDead() + { + super(10411, Q10411_KekropusLetter_TheForestOfTheDead.class.getSimpleName(), "Kekropus Letter: The Forest of The Dead"); + addStartNpc(MATHIAS); + addTalkId(MATHIAS, HUTABA); + addCondLevel(MIN_LEVEL, MAX_LEVEL, "31340-noLevel.html"); + BypassHandler.getInstance().registerHandler(this); + } + + @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 "31340-03.html": + { + qs.startQuest(); + giveItems(player, SCROLL_OF_ESCAPE_THE_FOREST_OF_THE_DEAD); + htmltext = event; + break; + } + case "33849-02.html": + { + if (qs.isCond(1)) + { + giveItems(player, STEEL_DOOR_GUILD); + giveItems(player, ENCHANT_WEAPON_A); + addExpAndSp(player, 942690, 226); + showOnScreenMsg(player, NpcStringId.GROW_STRONGER_HERE_UNTIL_YOU_RECEIVE_THE_NEXT_LETTER_FROM_KEKROPUS_AT_LV_70, ExShowScreenMessage.TOP_CENTER, 4500); + qs.exitQuest(false, true); + htmltext = event; + } + break; + } + case "31340-02.htm": + { + 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.isCompleted()) + { + return getAlreadyCompletedMsg(player); + } + if (player.getRace() == Race.ERTHEIA) + { + return "31340-noErtheia.html"; + } + if (!player.isMageClass()) + { + return "31340-noWarrior.html"; + } + + switch (npc.getId()) + { + case MATHIAS: + { + if (qs.isCreated()) + { + htmltext = "31340-01.htm"; + } + else if (qs.isStarted()) + { + htmltext = "31340-03.html"; + } + break; + } + case HUTABA: + { + switch (qs.getCond()) + { + case 1: + { + htmltext = "33849-01.html"; + break; + } + } + break; + } + } + return htmltext; + } + + @RegisterEvent(EventType.ON_PLAYER_LEVEL_CHANGED) + @RegisterType(ListenerRegisterType.GLOBAL) + public void OnPlayerLevelChanged(OnPlayerLevelChanged event) + { + final L2PcInstance player = event.getActiveChar(); + final int oldLevel = event.getOldLevel(); + final int newLevel = event.getNewLevel(); + + if (((oldLevel == (newLevel - 1)) && (player.getLevel() >= MIN_LEVEL)) && (player.getLevel() <= MAX_LEVEL) && !(player.getRace() == Race.ERTHEIA) && player.isMageClass()) + { + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + final NpcHtmlMessage html = new NpcHtmlMessage(0, 0); + html.setHtml(HtmCache.getInstance().getHtm(player.getHtmlPrefix(), "data/scripts/quests/Q10411_KekropusLetter_TheForestOfTheDead/Announce.html")); + player.sendPacket(html); + } + return; + + } + } + + @Override + public boolean useBypass(String command, L2PcInstance player, L2Character bypassOrigin) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) || (player.getLevel() < MIN_LEVEL) || (player.getLevel() > MAX_LEVEL) || (player.getRace() == Race.ERTHEIA)) + { + return false; + } + + if (player.isInParty()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in party.", 5000)); + } + else if (player.isInCombat()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in combat.", 5000)); + } + else if (player.isInDuel()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in a duel.", 5000)); + } + else if (player.isInOlympiadMode()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in Olympiad.", 5000)); + } + else if (player.isInVehicle()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in any vehicle or mount.", 5000)); + } + else + { + player.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); + player.teleToLocation(TELE_LOCATION); + } + return true; + } + + @Override + public String[] getBypassList() + { + return COMMAND; + } +} \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/31292-01.htm b/trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/31292-01.htm new file mode 100644 index 0000000000..1b0d02a7de --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/31292-01.htm @@ -0,0 +1,5 @@ +Captain Andrei:
+Nice to meet you. Kekropus promised me that he would send me someone trustworthy. I guess he kept his word. You probably know what is going on after reading Kekropus letter, but let me tell you more details. +
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/31292-02.htm b/trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/31292-02.htm new file mode 100644 index 0000000000..f06d36cd2c --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/31292-02.htm @@ -0,0 +1,5 @@ +Captain Andrei:
+Orc Trackers were chasing after a suspicious group when they split up toward the Wall of Argos. The Orc Trackers also divided into two groups and chased after them separately. But now they are asking for help. I think both of the groups have run into problems. +
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/31292-03.html b/trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/31292-03.html new file mode 100644 index 0000000000..51552c52c0 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/31292-03.html @@ -0,0 +1,4 @@ +Captain Andrei:
+You're a brave one, aren't you? Go to the Wall of Argos and meet Janitt + Get the details from him and help him with whatever he needs. I look forward to hearing the result. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/31292-noErtheia.html b/trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/31292-noErtheia.html new file mode 100644 index 0000000000..d08ca92f52 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/31292-noErtheia.html @@ -0,0 +1,3 @@ +Captain Andrei:
+No you are Ertheia, this quest is not for you. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/31292-noLevel.html b/trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/31292-noLevel.html new file mode 100644 index 0000000000..315a470c0c --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/31292-noLevel.html @@ -0,0 +1,3 @@ +Captain Andrei:
+Your level is wrong for this quest. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/31292-noMage.html b/trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/31292-noMage.html new file mode 100644 index 0000000000..6b5bf5b668 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/31292-noMage.html @@ -0,0 +1,3 @@ +Captain Andrei:
+Sorry, you are a Mage, this quest is not for you. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/33851-01.html b/trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/33851-01.html new file mode 100644 index 0000000000..d731d30f8b --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/33851-01.html @@ -0,0 +1,5 @@ +Giant's Minion Janitt:
+Me? I'm Janitt. The Giant's Minion. Since Shilen and her followees ruined the world, I have been chasing them. For revenge! +
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/33851-02.html b/trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/33851-02.html new file mode 100644 index 0000000000..2318d748b4 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/33851-02.html @@ -0,0 +1,7 @@ +Giant's Minion Janitt:
+It was a trap! But no more. The Suspicious Vagabond will never harm another. Not if you go after him +
+ +- Note: You can develop yourself through quests and hunting at the hunting ground on Wall of Argos. You can get the next item, Kekropus' Letter, at Lv. 76. + + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/Announce.html b/trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/Announce.html new file mode 100644 index 0000000000..5a322bf442 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/Announce.html @@ -0,0 +1,8 @@ +The Kekropus's Letter
+A group of suspicious people were seen in the +Wall of Argos, a part of the Goddard territory. Go to Captain Andrei in the Town of Goddard for details. +
+(A Scroll of Escape is enclosed. If you want to go now, use it to travel immediately.) +
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/Q10414_KekropusLetter_WithCourage.java b/trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/Q10414_KekropusLetter_WithCourage.java new file mode 100644 index 0000000000..66e15094c6 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10414_KekropusLetter_WithCourage/Q10414_KekropusLetter_WithCourage.java @@ -0,0 +1,222 @@ +/* + * 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.Q10414_KekropusLetter_WithCourage; + +import com.l2jserver.gameserver.ai.CtrlIntention; +import com.l2jserver.gameserver.cache.HtmCache; +import com.l2jserver.gameserver.enums.Race; +import com.l2jserver.gameserver.handler.BypassHandler; +import com.l2jserver.gameserver.handler.IBypassHandler; +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.events.EventType; +import com.l2jserver.gameserver.model.events.ListenerRegisterType; +import com.l2jserver.gameserver.model.events.annotations.RegisterEvent; +import com.l2jserver.gameserver.model.events.annotations.RegisterType; +import com.l2jserver.gameserver.model.events.impl.character.player.OnPlayerLevelChanged; +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.serverpackets.ExShowScreenMessage; +import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage; + +/** + * @author Neanrakyr + */ +public class Q10414_KekropusLetter_WithCourage extends Quest implements IBypassHandler +{ + // Npcs + private static final int ANDREI = 31292; + private static final int JANITT = 33851; + // Items + private static final ItemHolder SCROLL_OF_ESCAPE_WALL_OF_ARGOS = new ItemHolder(37032, 1); + private static final ItemHolder STEEL_DOOR_GUILD = new ItemHolder(37045, 123); + private static final ItemHolder ENCHANT_ARMOR_A = new ItemHolder(730, 5); + // Level Condition + private static final int MIN_LEVEL = 70; + private static final int MAX_LEVEL = 75; + // Others + private static final Location TELE_LOCATION = new Location(147404, -56707, -2784); + private static final String[] COMMAND = + { + "Q10414_Teleport" + }; + + public Q10414_KekropusLetter_WithCourage() + { + super(10414, Q10414_KekropusLetter_WithCourage.class.getSimpleName(), "Kekropus Letter: With Courage"); + addStartNpc(ANDREI); + addTalkId(ANDREI, JANITT); + addCondLevel(MIN_LEVEL, MAX_LEVEL, "31292-noLevel.html"); + BypassHandler.getInstance().registerHandler(this); + } + + @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 "31292-03.html": + { + qs.startQuest(); + giveItems(player, SCROLL_OF_ESCAPE_WALL_OF_ARGOS); + htmltext = event; + break; + } + case "33851-02.html": + { + if (qs.getCond() == 1) + { + giveItems(player, STEEL_DOOR_GUILD); + giveItems(player, ENCHANT_ARMOR_A); + addExpAndSp(player, 1088640, 261); + showOnScreenMsg(player, NpcStringId.GROW_STRONGER_HERE_UNTIL_YOU_RECEIVE_THE_NEXT_LETTER_FROM_KEKROPUS_AT_LV_76, ExShowScreenMessage.TOP_CENTER, 4500); + qs.exitQuest(false, true); + htmltext = event; + } + break; + } + case "31292-02.htm": + { + 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.isCompleted()) + { + return getAlreadyCompletedMsg(player); + } + if (player.getRace() == Race.ERTHEIA) + { + return "31292-noErtheia.html"; + } + if (player.isMageClass()) + { + return "31292-noMage.html"; + } + + switch (npc.getId()) + { + case ANDREI: + { + if (qs.isCreated()) + { + htmltext = "31292-01.htm"; + } + else if (qs.isStarted()) + { + htmltext = "31292-03.html"; + } + break; + } + case JANITT: + { + if (qs.isCond(1)) + { + htmltext = "33851-01.html"; + } + break; + } + } + return htmltext; + } + + @RegisterEvent(EventType.ON_PLAYER_LEVEL_CHANGED) + @RegisterType(ListenerRegisterType.GLOBAL) + public void OnPlayerLevelChanged(OnPlayerLevelChanged event) + { + final L2PcInstance player = event.getActiveChar(); + final int oldLevel = event.getOldLevel(); + final int newLevel = event.getNewLevel(); + + if (((oldLevel == (newLevel - 1)) && (player.getLevel() >= MIN_LEVEL)) && (player.getLevel() <= MAX_LEVEL) && !(player.getRace() == Race.ERTHEIA) && !player.isMageClass()) + { + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + final NpcHtmlMessage html = new NpcHtmlMessage(0, 0); + html.setHtml(HtmCache.getInstance().getHtm(player.getHtmlPrefix(), "data/scripts/quests/Q10414_KekropusLetter_WithCourage/Announce.html")); + player.sendPacket(html); + } + return; + + } + } + + @Override + public boolean useBypass(String command, L2PcInstance player, L2Character bypassOrigin) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) || (player.getLevel() < MIN_LEVEL) || (player.getLevel() > MAX_LEVEL) || (player.getRace() == Race.ERTHEIA)) + { + return false; + } + + if (player.isInParty()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in party.", 5000)); + } + else if (player.isInCombat()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in combat.", 5000)); + } + else if (player.isInDuel()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in a duel.", 5000)); + } + else if (player.isInOlympiadMode()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in Olympiad.", 5000)); + } + else if (player.isInVehicle()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in any vehicle or mount.", 5000)); + } + else + { + player.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); + player.teleToLocation(TELE_LOCATION); + } + return true; + } + + @Override + public String[] getBypassList() + { + return COMMAND; + } +} diff --git a/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/31292-01.htm b/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/31292-01.htm new file mode 100644 index 0000000000..cf108ed47d --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/31292-01.htm @@ -0,0 +1,5 @@ +Captain Andrei:
+Nice to meet you. Kekropus promised me that he would send me someone trustworthy. I guess he kept his word. You probably know what is going on after reading Kekropus letter, but let me tell you more details. +
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/31292-02.htm b/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/31292-02.htm new file mode 100644 index 0000000000..e36cf8d66f --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/31292-02.htm @@ -0,0 +1,5 @@ +Captain Andrei:
+Orc Trackers were chasing after a suspicious group when they split up toward the Wall of Argos. The Orc Trackers also divided into two groups and chased after them separately. But now they are asking for help. I think both of the groups have run into problems. +
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/31292-03.html b/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/31292-03.html new file mode 100644 index 0000000000..51552c52c0 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/31292-03.html @@ -0,0 +1,4 @@ +Captain Andrei:
+You're a brave one, aren't you? Go to the Wall of Argos and meet Janitt + Get the details from him and help him with whatever he needs. I look forward to hearing the result. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/31292-noErtheia.html b/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/31292-noErtheia.html new file mode 100644 index 0000000000..d08ca92f52 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/31292-noErtheia.html @@ -0,0 +1,3 @@ +Captain Andrei:
+No you are Ertheia, this quest is not for you. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/31292-noLevel.html b/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/31292-noLevel.html new file mode 100644 index 0000000000..315a470c0c --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/31292-noLevel.html @@ -0,0 +1,3 @@ +Captain Andrei:
+Your level is wrong for this quest. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/31292-noMage.html b/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/31292-noMage.html new file mode 100644 index 0000000000..6b5bf5b668 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/31292-noMage.html @@ -0,0 +1,3 @@ +Captain Andrei:
+Sorry, you are a Mage, this quest is not for you. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/33851-01.html b/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/33851-01.html new file mode 100644 index 0000000000..e4cb746b9f --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/33851-01.html @@ -0,0 +1,5 @@ +Giant's Minion Janitt:
+Me? I'm Janitt. The Giant's Minion. Since Shilen and her followees ruined the world, I have been chasing them. For revenge! +
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/33851-02.html b/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/33851-02.html new file mode 100644 index 0000000000..2318d748b4 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/33851-02.html @@ -0,0 +1,7 @@ +Giant's Minion Janitt:
+It was a trap! But no more. The Suspicious Vagabond will never harm another. Not if you go after him +
+ +- Note: You can develop yourself through quests and hunting at the hunting ground on Wall of Argos. You can get the next item, Kekropus' Letter, at Lv. 76. + + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/Announce.html b/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/Announce.html new file mode 100644 index 0000000000..1bcd7801ea --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/Announce.html @@ -0,0 +1,8 @@ +The Kekropus's Letter
+A group of suspicious people were seen in the +Wall of Argos, a part of the Goddard territory. Go to Captain Andrei in the Town of Goddard for details. +
+(A Scroll of Escape is enclosed. If you want to go now, use it to travel immediately.) +
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/Q10415_KekropusLetter_WithWisdom.java b/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/Q10415_KekropusLetter_WithWisdom.java new file mode 100644 index 0000000000..487ae10652 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetter_WithWisdom/Q10415_KekropusLetter_WithWisdom.java @@ -0,0 +1,223 @@ +/* + * 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.Q10415_KekropusLetter_WithWisdom; + +import com.l2jserver.gameserver.ai.CtrlIntention; +import com.l2jserver.gameserver.cache.HtmCache; +import com.l2jserver.gameserver.enums.Race; +import com.l2jserver.gameserver.handler.BypassHandler; +import com.l2jserver.gameserver.handler.IBypassHandler; +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.events.EventType; +import com.l2jserver.gameserver.model.events.ListenerRegisterType; +import com.l2jserver.gameserver.model.events.annotations.RegisterEvent; +import com.l2jserver.gameserver.model.events.annotations.RegisterType; +import com.l2jserver.gameserver.model.events.impl.character.player.OnPlayerLevelChanged; +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.serverpackets.ExShowScreenMessage; +import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage; + +/** + * @author Neanrakyr + */ +public class Q10415_KekropusLetter_WithWisdom extends Quest implements IBypassHandler +{ + // Npcs + private static final int ANDREI = 31292; + private static final int JANITT = 33851; + // Items + private static final ItemHolder SCROLL_OF_ESCAPE_WALL_OF_ARGOS = new ItemHolder(37032, 1); + private static final ItemHolder STEEL_DOOR_GUILD = new ItemHolder(37045, 123); + private static final ItemHolder ENCHANT_ARMOR_A = new ItemHolder(730, 5); + // Level Condition + private static final int MIN_LEVEL = 70; + private static final int MAX_LEVEL = 75; + // Others + private static final Location TELE_LOCATION = new Location(147404, -56707, -2784); + private static final String[] COMMAND = + { + "Q10415_Teleport" + }; + + public Q10415_KekropusLetter_WithWisdom() + { + super(10415, Q10415_KekropusLetter_WithWisdom.class.getSimpleName(), "Kekropus Letter: With Wisdom"); + addStartNpc(ANDREI); + addTalkId(ANDREI, JANITT); + addCondLevel(MIN_LEVEL, MAX_LEVEL, "31292-noLevel.html"); + BypassHandler.getInstance().registerHandler(this); + } + + @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 "31292-03.html": + { + qs.startQuest(); + giveItems(player, SCROLL_OF_ESCAPE_WALL_OF_ARGOS); + htmltext = event; + break; + } + case "33851-02.html": + { + if (qs.isCond(1)) + { + giveItems(player, STEEL_DOOR_GUILD); + giveItems(player, ENCHANT_ARMOR_A); + addExpAndSp(player, 1088640, 261); + showOnScreenMsg(player, NpcStringId.GROW_STRONGER_HERE_UNTIL_YOU_RECEIVE_THE_NEXT_LETTER_FROM_KEKROPUS_AT_LV_76, ExShowScreenMessage.TOP_CENTER, 4500); + qs.exitQuest(false, true); + htmltext = event; + } + break; + } + case "31292-02.htm": + { + 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.isCompleted()) + { + return getAlreadyCompletedMsg(player); + } + if (player.getRace() == Race.ERTHEIA) + { + return "31292-noErtheia.html"; + } + if (player.isMageClass()) + { + return "31292-noMage.html"; + } + + switch (npc.getId()) + { + case ANDREI: + { + if (qs.isCreated()) + { + htmltext = "31292-01.htm"; + } + else if (qs.isStarted()) + { + htmltext = "31292-03.html"; + } + break; + } + case JANITT: + { + if (qs.isCond(1)) + { + htmltext = "33851-01.html"; + break; + } + break; + } + } + return htmltext; + } + + @RegisterEvent(EventType.ON_PLAYER_LEVEL_CHANGED) + @RegisterType(ListenerRegisterType.GLOBAL) + public void OnPlayerLevelChanged(OnPlayerLevelChanged event) + { + final L2PcInstance player = event.getActiveChar(); + final int oldLevel = event.getOldLevel(); + final int newLevel = event.getNewLevel(); + + if (((oldLevel == (newLevel - 1)) && (player.getLevel() >= MIN_LEVEL)) && (player.getLevel() <= MAX_LEVEL) && !(player.getRace() == Race.ERTHEIA) && !player.isMageClass()) + { + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + final NpcHtmlMessage html = new NpcHtmlMessage(0, 0); + html.setHtml(HtmCache.getInstance().getHtm(player.getHtmlPrefix(), "data/scripts/quests/Q10415_KekropusLetter_WithWisdom/Announce.html")); + player.sendPacket(html); + } + return; + + } + } + + @Override + public boolean useBypass(String command, L2PcInstance player, L2Character bypassOrigin) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) || (player.getLevel() < MIN_LEVEL) || (player.getLevel() > MAX_LEVEL) || (player.getRace() == Race.ERTHEIA)) + { + return false; + } + + if (player.isInParty()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in party.", 5000)); + } + else if (player.isInCombat()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in combat.", 5000)); + } + else if (player.isInDuel()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in a duel.", 5000)); + } + else if (player.isInOlympiadMode()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in Olympiad.", 5000)); + } + else if (player.isInVehicle()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in any vehicle or mount.", 5000)); + } + else + { + player.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); + player.teleToLocation(TELE_LOCATION); + } + return true; + } + + @Override + public String[] getBypassList() + { + return COMMAND; + } +} diff --git a/trunk/dist/game/data/scripts/quests/QuestMasterHandler.java b/trunk/dist/game/data/scripts/quests/QuestMasterHandler.java index 6117495649..ecf2ada066 100644 --- a/trunk/dist/game/data/scripts/quests/QuestMasterHandler.java +++ b/trunk/dist/game/data/scripts/quests/QuestMasterHandler.java @@ -190,6 +190,15 @@ import quests.Q10325_SearchingForNewPower.Q10325_SearchingForNewPower; import quests.Q10326_RespectYourElders.Q10326_RespectYourElders; import quests.Q10331_StartOfFate.Q10331_StartOfFate; import quests.Q10338_SeizeYourDestiny.Q10338_SeizeYourDestiny; +import quests.Q10390_KekropusLetter.Q10390_KekropusLetter; +import quests.Q10393_KekropusLetter_AClueCompleted.Q10393_KekropusLetter_AClueCompleted; +import quests.Q10397_KekropusLetter_ASuspiciousBadge.Q10397_KekropusLetter_ASuspiciousBadge; +import quests.Q10401_KekropusLetter_DecodingTheBadge.Q10401_KekropusLetter_DecodingTheBadge; +import quests.Q10404_KekropusLetter_AHiddenMeaning.Q10404_KekropusLetter_AHiddenMeaning; +import quests.Q10408_KekropusLetter_TheSwampOfScream.Q10408_KekropusLetter_TheSwampOfScream; +import quests.Q10411_KekropusLetter_TheForestOfTheDead.Q10411_KekropusLetter_TheForestOfTheDead; +import quests.Q10414_KekropusLetter_WithCourage.Q10414_KekropusLetter_WithCourage; +import quests.Q10415_KekropusLetter_WithWisdom.Q10415_KekropusLetter_WithWisdom; import quests.Q10501_ZakenEmbroideredSoulCloak.Q10501_ZakenEmbroideredSoulCloak; import quests.Q10502_FreyaEmbroideredSoulCloak.Q10502_FreyaEmbroideredSoulCloak; import quests.Q10503_FrintezzaEmbroideredSoulCloak.Q10503_FrintezzaEmbroideredSoulCloak; @@ -389,6 +398,15 @@ public class QuestMasterHandler Q10326_RespectYourElders.class, Q10331_StartOfFate.class, Q10338_SeizeYourDestiny.class, + Q10390_KekropusLetter.class, + Q10393_KekropusLetter_AClueCompleted.class, + Q10397_KekropusLetter_ASuspiciousBadge.class, + Q10401_KekropusLetter_DecodingTheBadge.class, + Q10404_KekropusLetter_AHiddenMeaning.class, + Q10408_KekropusLetter_TheSwampOfScream.class, + Q10411_KekropusLetter_TheForestOfTheDead.class, + Q10414_KekropusLetter_WithCourage.class, + Q10415_KekropusLetter_WithWisdom.class, Q10501_ZakenEmbroideredSoulCloak.class, Q10502_FreyaEmbroideredSoulCloak.class, Q10503_FrintezzaEmbroideredSoulCloak.class,