Sync with L2JServer Jan 24th 2015.
This commit is contained in:
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-01.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-01.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Innocentin:<br>
|
||||
You've been a great help to me in the past, and I'd like to thank you again for bringing me that report! There's one more thing... Could you help me out again?<br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart ACCEPT">"OK, whatever."</a>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-01a.html
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-01a.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Innocentin:<br>
|
||||
This is something you can get started on immediately!<br>
|
||||
There's a vast conspiracy afoot in the Rune Township and the Forest of the Dead!<br>
|
||||
The roots of this conspiracy lie in that forest, and you should seek the truth there.<br>
|
||||
(This quest may only be undertaken by a character of level 64 or above who has completed the Hidden Truth and Tragedy of Hellmann Forest quests.)
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-02.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-02.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Innocentin:<br>
|
||||
You look tired, my friend! Why don't you take a break, improve your ability and then come back! This next mission is much more challenging than the last one...<br>
|
||||
(This quest may only be undertaken by a character of level 64 or above who has completed the Tragedy of Hellmann Forest quest.)
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-03.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-03.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Innocentin:<br>
|
||||
Here's the Map and key he left behind. Take them and find out what he was searching for.<br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31328-05.html">"Tell me more about the Map and key."</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-04.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-04.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Innocentin:<br>
|
||||
He probably drew this Map while exploring the Forest of the Dead. As for the key... I'm not sure. The only clue I've found is the Silver Spear engraved upon it.<br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31328-06.html">"Tell me more about the Silver Spear."</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-05.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-05.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Innocentin:<br>
|
||||
He probably drew this Map while exploring the Forest of the Dead. As for the key... I'm not sure. The only clue I've found is the Silver Spear engraved upon it.<br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31328-06.html">"Tell me more about the Silver Spear."</a>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-06.html
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-06.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Innocentin:<br>
|
||||
According to a custom from the Elmoreden period, a Silver Spear was the symbol of the family responsible for guarding the royal family.<br>
|
||||
An ancient proverb says, <font color="LEVEL">"A jeweled scepter for the mighty King of Elmore and two Silver Spears for his protectors"</font>.<br>
|
||||
I'll wager that somewhere is a lock that matches this key...<br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31328-07.html">"Who holds the spear now?"</a>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-07.html
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-07.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>High Priestess Innocentin:<br>
|
||||
Today's silver spears are dedicated to the people who worked hard to suppress the rebellion. One is for the protectors of the royal family, who captured and punished the rebels, and one is for those who fought against the undead and captured the demon's followers... and it will therefore be a dedication that upholds the false accusations against our former priests.<br>
|
||||
The one responsible for all this is staying at the temple in Rune Castle Town.<br>
|
||||
Please don't ask any more questions. Just take the records that he left behind, and find out where that key fits.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-08.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-08.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Innocentin:<br>
|
||||
You must find the lock that matches that key! It would probably be in the possession of a family worthy of the spear!
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-09.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-09.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Innocentin:<br>
|
||||
So, did you find anything?<br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31328-10.html">"Here is the diary and the hairpin."</a>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-10.html
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-10.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Innocentin:<br>
|
||||
Please! Put those things away...Please!<br>
|
||||
I'm sorry, but the power of darkness contained in them is overpowering! I can't even look at them...<br>
|
||||
How about you? Are you okay?<br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31328-11.html">"I'm fine."</a>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-11.html
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-11.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Innocentin:<br>
|
||||
Really? Have you read it?<br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31328-13.html">"Yes, I read it."</a><br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31328-12.html">"No, I haven't read it."</a>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-12.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-12.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Innocentin:<br>
|
||||
Read it and come back to me... I have many questions!
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-13.html
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-13.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Innocentin:<br>
|
||||
Then answer me... What is it?<br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31328-16.html">"Lidia's Diary."</a><br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31328-21.html">"Alfred's Diary."</a>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-14.html
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-14.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Innocentin:<br>
|
||||
Have you read the document?<br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31328-13.html">"Yes, I read it."</a><br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31328-12.html">No, I didn't read it."</a>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-15.html
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-15.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Innocentin:<br>
|
||||
Then answer me... What is it?<br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31328-16.html">"Lidia's Diary."</a><br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31328-21.html">"Alfred's Diary."</a>
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-16.html
vendored
Normal file
7
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-16.html
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Innocentin:<br>
|
||||
Lidia's Diary?<br>
|
||||
Lidia was dear Alfred's precious daughter... They led an idyllic life, until that tragic day...<br>
|
||||
Does her diary cover the period after she became lord of the forest?<br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31328-17.html">"Yes, it does."</a><br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31328-21.html">"No, it doesn't."</a>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-17.html
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-17.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Innocentin:<br>
|
||||
What did you learn from the diary?<br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31328-21.html">"Lidia was bitten by a vampire."</a><br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31328-18.html">"Lidia signed some sort of contract."</a>
|
||||
</body></html>
|
8
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-18.html
vendored
Normal file
8
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-18.html
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
<html><body>Innocentin:<br>
|
||||
A contract?!<br>
|
||||
I'll bet that rascal Nidrah was behind this! Was he involved?<br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31328-21.html">"Yes, he forced her to sign the contract."</a><br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31328-19.html">"Lidia approached Nidrah."</a><br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31328-21.html">"Nidrah wasn't involved."</a><br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31328-21.html">"As I said before, Lidia was bitten by a vampire! Don't you get it?"</a>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-19.html
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-19.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Innocentin:<br>
|
||||
Oh really? Then let me ask you one more question. Have you ever heard the expression <font color="LEVEL">"Owner of a Moon Face Flower"</font>?<br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31328-20.html">"It's the Lord of the Forest of the Dead."</a><br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31328-20.html">"It's Lidia von Hellmann."</a>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-20.html
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-20.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Innocentin:<br>
|
||||
Ah ha! Then that hairpin must belong to Lidia!<br>
|
||||
Now I remember it! She used to wear it in her hair! Sigh... She was so beautiful then...<br>
|
||||
Thank you for your help! I suppose our business is done now, but your journey continues...<br>
|
||||
I'll always be here for you if you have any questions.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-21.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-21.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>
|
||||
The moment the words leave your lips, you feel an electric current shoot through your head, buzzing like 5000 wyverns in flight! Deep within your heart wells an emotion, small but growing more intense by the moment... It's remorse! Lidia must have been angered by your answer!
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-22.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31328-22.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Innocentin:<br>
|
||||
I don't think your journey's over yet. Someone close to her wants to see you. He'll show you the path that leads to your next adventure.
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31386-01.html
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31386-01.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Violet:<br>
|
||||
Oh, the key? That's right! That's the key that Duke Adolph von Hellmann asked me to keep for him! That was a very long time ago! He told me that it guards the highest honor his family received from the King!<br>
|
||||
But I can't go there. I can't leave this village.<br>
|
||||
Go towards the northern part of the village. You'll find a box near the center of the Forest of the Dead. This key opens the padlock on the box.<br>
|
||||
Bring me the object you find inside the box.
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31386-02.html
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31386-02.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Violet:<br>
|
||||
I can't go there. I can't leave this village!<br>
|
||||
Go towards the northern part of the village, you'll find a box near the center of the Forest of the Dead. This key opens the padlock on the box.<br>
|
||||
Bring me the object you find inside the box.
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31386-03.html
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31386-03.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Violet:<br>
|
||||
This is the very Silver Spear that King Astaire Van Halter bestowed upon Duke Adolph! It's the treasured heirloom of the Hellmann family! The lord will be overjoyed! The long lost honor of his family name is restored, and it's all because of you!<br>
|
||||
Thank you. Please accept this small token of our gratitude! I only wish that we could have you over to the castle and give you a more formal recognition...<br>
|
||||
I probably have to express our gratitude to the lord through another person, not me. Please talk with the village people.
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31386-04.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31386-04.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Violet:<br>
|
||||
Find someone among the villagers to express your gratitude to the lord.<br>
|
||||
Have you visited Doriun yet?
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31523-01.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31523-01.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Tombstone:<br>
|
||||
<font color="LEVEL">One jeweled scepter for the King and two Silver Spears for the von Hellmann family who protects him.</font><br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31523-02.html">Wait a while.</a>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31523-02.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31523-02.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Tombstone:<br>
|
||||
After a while, a white ghost appears.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31523-03.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31523-03.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Tombstone:<br>
|
||||
The ghost was beside you all along!
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31523-04.html
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31523-04.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Tombstone:<br>
|
||||
There is a tablet engraved with familiar characters.<br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31523-06.html">Dig</a><br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31523-02.html">Recall the ghost</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31523-05.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31523-05.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Tombstone:<br>
|
||||
There is a tablet engraved with familiar characters.<br>
|
||||
It appears that something else has been crudely etched into the tablet.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31523-06.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31523-06.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Tombstone:<br>
|
||||
You find a key engraved with a silver spear.
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31524-01.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31524-01.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Ghost of von Hellmann:<br>
|
||||
Who has summoned me here? Why can't I sleep?<br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31524-02.html">"Let me tell you about Lidia von Hellmann."</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31524-02.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31524-02.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Ghost of von Hellmann:<br>
|
||||
Oh, the horror! The von Hellmann's are dead and Lidia is a demon? Her curse upon this land is depriving me of my rest!<br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31524-03.html">"It's the truth."</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31524-03.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31524-03.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Ghost of von Hellmann:<br>
|
||||
How did she become the Lord of the Dead?<br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31524-04.html">"Here's her diary."</a>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31524-04.html
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31524-04.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Ghost of von Hellmann:<br>
|
||||
This concerns Lidia's Diary? Is that right? Oh, I see! Dear traveler! For whatever little time I have left, I'll read this diary and go over the past again and again in my mind!<br>
|
||||
Traveler, I shall reward you well for this diary! Dig underneath this tombstone and you will find my key!<br>
|
||||
Take that key to the Chamberlain of the Hellmann Family! You'll find him <font color="LEVEL">in the village hidden in the middle of this forest</font>!
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31524-05.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31524-05.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Ghost of von Hellmann:<br>
|
||||
<font color="LEVEL">Dig under this monument for the key and take it to the von Hellmann's page.</font><br>
|
||||
He's in the hidden village in the center of the forest.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31524-06.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31524-06.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Ghost of von Hellmann:<br>
|
||||
Take the key to von Hellmann's page, He's in <font color="LEVEL">the hidden village in the center of the forest</font>.
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-01.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-01.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Broken Desk:<br>
|
||||
The chest is secured with a padlock which bears the mark of the Hellmann family.<br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31526-02.html">Use a Silver Spear key</a>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-02.html
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-02.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Broken Desk:<br>
|
||||
The chest opens with a creak.<br>
|
||||
Inside, you find an old hairpin and a book tied with a leather string.<br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31526-04.html">Examine the hair pin.</a><br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31526-07a.html">Examine the book.</a>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-03.html
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-03.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Broken Bookshelf:<br>
|
||||
The chest opens with a creak. Inside, you find an old hairpin and a book tied with a leather string.<br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31526-04.html">Examine the hair pin.</a><br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31526-07a.html">Examine the book.</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-04.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-04.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Broken Bookshelf:<br>
|
||||
The hair pin is a type once used by aristocratic ladies. It's engraved with the image of a Moon Face Flower, and was probably used by a unattached young lady.<br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31526-05.html">"I wonder what that design means?"</a>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-05.html
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-05.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Broken Bookshelf:<br>
|
||||
According to legend, the Moon Face Flower only blooms on moonlit nights.<br>
|
||||
It's very shy, and shows its face only to its future husband. This legend made it quite popular among young, single, aristocratic ladies.<br>
|
||||
I wonder who might have owned this one?<br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31526-06.html">Take the hairpin.</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-06.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-06.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Broken Bookshelf:<br>
|
||||
You took the hairpin.<br>
|
||||
Check the bookshelf. You may find something else.
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-07.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-07.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Broken Bookshelf:<br>
|
||||
In the locker where you found the hairpin, you also find a book tied with a leather string.<br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31526-07a.html">Examine the book.</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-07a.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-07a.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Broken Bookshelf:<br>
|
||||
A book tied with a leather string. It's tied very tight, and doesn't seem like it could easily be cut.<br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31526-08.html">Try to cut the string.</a>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-08.html
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-08.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Broken Bookshelf:<br>
|
||||
When you cut the string, it falls to the floor and you hear a faint sigh.<br>
|
||||
Shall you read the book?<br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31526-09.html">Read the book.</a>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-09.html
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-09.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Broken Bookshelf:<br>
|
||||
"Month of Shilen, 15th day.<br>
|
||||
Lately, Father spends all his days with Nidrah! He doesn't take care of the manor like he should. What makes him so angry?<br>
|
||||
What's this?!<br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31526-10.html">"It's Lidia's Diary!"</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-10.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-10.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Broken Bookshelf:<br>
|
||||
It's a journal that belonged to Lidia von Hellmann. It probably has a lot of useful information in it!<br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31526-11.html">Pick up the journal.</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-11.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-11.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Broken Bookshelf:<br>
|
||||
You've found Lidia's Diary!<br>
|
||||
Check the bookshelf again. You may find something else.
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-12.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-12.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Broken Bookshelf:<br>
|
||||
In the chest where you found the book, you also find a hairpin shaped like a Moon Face Flower.<br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31526-04.html">Examine the hairpin.</a>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-13.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31526-13.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Broken Bookshelf:<br>
|
||||
The locker is empty.
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31530-01.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31530-01.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Box:<br>
|
||||
It's an antique box with the von Hellmann family seal on the lock.<br>
|
||||
<a action="bypass -h Quest Q00023_LidiasHeart 31530-02.html">Use the Silver Spear key.</a>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31530-02.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31530-02.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Box:<br>
|
||||
The box opens.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31530-03.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/31530-03.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Box:<br>
|
||||
It's empty.
|
||||
</body></html>
|
509
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/Q00023_LidiasHeart.java
vendored
Normal file
509
trunk/dist/game/data/scripts/quests/Q00023_LidiasHeart/Q00023_LidiasHeart.java
vendored
Normal file
@@ -0,0 +1,509 @@
|
||||
/*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package quests.Q00023_LidiasHeart;
|
||||
|
||||
import quests.Q00024_InhabitantsOfTheForestOfTheDead.Q00024_InhabitantsOfTheForestOfTheDead;
|
||||
|
||||
import com.l2jserver.gameserver.enums.QuestSound;
|
||||
import com.l2jserver.gameserver.model.Location;
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.quest.Quest;
|
||||
import com.l2jserver.gameserver.model.quest.QuestState;
|
||||
import com.l2jserver.gameserver.network.NpcStringId;
|
||||
import com.l2jserver.gameserver.network.clientpackets.Say2;
|
||||
import com.l2jserver.gameserver.network.serverpackets.NpcSay;
|
||||
|
||||
/**
|
||||
* Lidia's Heart (23)
|
||||
* @author ivantotov
|
||||
*/
|
||||
public final class Q00023_LidiasHeart extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int HIGH_PRIEST_INNOCENTIN = 31328;
|
||||
private static final int TRADER_VIOLET = 31386;
|
||||
private static final int TOMBSTONE = 31523;
|
||||
private static final int GHOST_OF_VON_HELLMANN = 31524;
|
||||
private static final int BROKEN_BOOKSHELF = 31526;
|
||||
private static final int BOX = 31530;
|
||||
// Items
|
||||
private static final int LIDIAS_DIARY = 7064;
|
||||
private static final int SILVER_KEY = 7149;
|
||||
private static final int SILVER_SPEAR = 7150;
|
||||
// Reward
|
||||
private static final int MAP_FOREST_OF_THE_DEAD = 7063;
|
||||
private static final int LIDIAS_HAIRPIN = 7148;
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 64;
|
||||
// Locations
|
||||
private static final Location GHOST_SPAWN = new Location(51432, -54570, -3136);
|
||||
|
||||
public Q00023_LidiasHeart()
|
||||
{
|
||||
super(23, Q00023_LidiasHeart.class.getSimpleName(), "Lidia's Heart");
|
||||
addStartNpc(HIGH_PRIEST_INNOCENTIN);
|
||||
addTalkId(HIGH_PRIEST_INNOCENTIN, TRADER_VIOLET, TOMBSTONE, GHOST_OF_VON_HELLMANN, BROKEN_BOOKSHELF, BOX);
|
||||
addSpawnId(GHOST_OF_VON_HELLMANN);
|
||||
registerQuestItems(LIDIAS_DIARY, SILVER_KEY, SILVER_SPEAR);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
if ("DESPAWN".equals(event))
|
||||
{
|
||||
final L2Npc npc0 = npc.getVariables().getObject("npc0", L2Npc.class);
|
||||
if (npc0 != null)
|
||||
{
|
||||
npc0.getVariables().set("SPAWNED", false);
|
||||
}
|
||||
npc.deleteMe();
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if (qs == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
String htmltext = null;
|
||||
switch (event)
|
||||
{
|
||||
case "ACCEPT":
|
||||
{
|
||||
if (player.getLevel() < MIN_LEVEL)
|
||||
{
|
||||
htmltext = "31328-02.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!hasQuestItems(player, MAP_FOREST_OF_THE_DEAD))
|
||||
{
|
||||
giveItems(player, MAP_FOREST_OF_THE_DEAD, 1);
|
||||
}
|
||||
giveItems(player, SILVER_KEY, 1);
|
||||
qs.startQuest();
|
||||
qs.setMemoState(1);
|
||||
htmltext = "31328-03.htm";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "31328-05.html":
|
||||
case "31328-06.html":
|
||||
case "31328-10.html":
|
||||
case "31328-11.html":
|
||||
case "31328-16.html":
|
||||
case "31328-17.html":
|
||||
case "31328-18.html":
|
||||
case "31524-03.html":
|
||||
case "31526-04.html":
|
||||
case "31526-05.html":
|
||||
case "31526-07a.html":
|
||||
case "31526-09.html":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "31328-07.html":
|
||||
{
|
||||
if (qs.isMemoState(1))
|
||||
{
|
||||
qs.setMemoState(2);
|
||||
qs.setCond(2, true);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "31328-12.html":
|
||||
{
|
||||
if (qs.isMemoState(5) || qs.isMemoState(6))
|
||||
{
|
||||
qs.setMemoState(6);
|
||||
qs.setCond(5);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "31328-13.html":
|
||||
{
|
||||
if (qs.isMemoState(5) || qs.isMemoState(6))
|
||||
{
|
||||
qs.setMemoState(7);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "31328-19.html":
|
||||
{
|
||||
playSound(player, QuestSound.AMBSOUND_MT_CREAK);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "31328-20.html":
|
||||
{
|
||||
if (qs.isMemoState(7))
|
||||
{
|
||||
qs.setMemoState(8);
|
||||
qs.setCond(6);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "31328-21.html":
|
||||
{
|
||||
qs.setCond(5);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "31523-02.html":
|
||||
{
|
||||
if (qs.isMemoState(8) || qs.isMemoState(9))
|
||||
{
|
||||
playSound(player, QuestSound.SKILLSOUND_HORROR_02);
|
||||
if (!npc.getVariables().getBoolean("SPAWNED", false))
|
||||
{
|
||||
npc.getVariables().set("SPAWNED", true);
|
||||
final L2Npc ghost = addSpawn(npc, GHOST_OF_VON_HELLMANN, GHOST_SPAWN, false, 0);
|
||||
ghost.getVariables().set("npc0", npc);
|
||||
htmltext = event;
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "31523-03.html";
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "31523-06.html":
|
||||
{
|
||||
if (qs.isMemoState(9))
|
||||
{
|
||||
giveItems(player, SILVER_KEY, 1);
|
||||
qs.setMemoState(10);
|
||||
qs.setCond(8);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "31524-02.html":
|
||||
{
|
||||
playSound(player, QuestSound.CHRSOUND_MHFIGHTER_CRY);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "31524-04.html":
|
||||
{
|
||||
if (qs.isMemoState(8))
|
||||
{
|
||||
takeItems(player, LIDIAS_DIARY, 1);
|
||||
qs.setMemoState(9);
|
||||
qs.setCond(7);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "31526-02.html":
|
||||
{
|
||||
if (qs.isMemoState(2) && hasQuestItems(player, SILVER_KEY))
|
||||
{
|
||||
takeItems(player, SILVER_KEY, -1);
|
||||
qs.setMemoState(3);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "31526-06.html":
|
||||
{
|
||||
if (!hasQuestItems(player, LIDIAS_HAIRPIN))
|
||||
{
|
||||
giveItems(player, LIDIAS_HAIRPIN, 1);
|
||||
}
|
||||
qs.setMemoState(qs.getMemoState() + 1);
|
||||
if (hasQuestItems(player, LIDIAS_DIARY))
|
||||
{
|
||||
qs.setCond(4);
|
||||
}
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "31526-08.html":
|
||||
{
|
||||
playSound(player, QuestSound.ITEMSOUND_ARMOR_LEATHER);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "31526-10.html":
|
||||
{
|
||||
playSound(player, QuestSound.AMBSOUND_EG_DRON);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "31526-11.html":
|
||||
{
|
||||
giveItems(player, LIDIAS_DIARY, 1);
|
||||
qs.setMemoState(qs.getMemoState() + 1);
|
||||
if (hasQuestItems(player, LIDIAS_HAIRPIN))
|
||||
{
|
||||
qs.setCond(4);
|
||||
}
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "31530-02.html":
|
||||
{
|
||||
if (qs.isMemoState(11) && hasQuestItems(player, SILVER_KEY))
|
||||
{
|
||||
giveItems(player, SILVER_SPEAR, 1);
|
||||
takeItems(player, SILVER_KEY, -1);
|
||||
playSound(player, QuestSound.ITEMSOUND_WEAPON_SPEAR);
|
||||
qs.setCond(10);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
if (qs.isCreated())
|
||||
{
|
||||
if (npc.getId() == HIGH_PRIEST_INNOCENTIN)
|
||||
{
|
||||
final QuestState q22 = player.getQuestState("22_TragedyInVonHellmannForest");
|
||||
if ((q22 != null) && q22.isCompleted())
|
||||
{
|
||||
htmltext = "31328-01.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "31328-01a.html";
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (qs.isStarted())
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case HIGH_PRIEST_INNOCENTIN:
|
||||
{
|
||||
switch (qs.getMemoState())
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
htmltext = "31328-04.html";
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
htmltext = "31328-08.html";
|
||||
break;
|
||||
}
|
||||
case 5:
|
||||
{
|
||||
htmltext = "31328-09.html";
|
||||
break;
|
||||
}
|
||||
case 6:
|
||||
{
|
||||
htmltext = "31328-14.html";
|
||||
break;
|
||||
}
|
||||
case 7:
|
||||
{
|
||||
htmltext = "31328-15.html";
|
||||
break;
|
||||
}
|
||||
case 8:
|
||||
{
|
||||
qs.setCond(6, true);
|
||||
htmltext = "31328-22.html";
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case TRADER_VIOLET:
|
||||
{
|
||||
switch (qs.getMemoState())
|
||||
{
|
||||
case 10:
|
||||
{
|
||||
if (hasQuestItems(player, SILVER_KEY))
|
||||
{
|
||||
qs.setMemoState(11);
|
||||
qs.setCond(9, true);
|
||||
htmltext = "31386-01.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 11:
|
||||
{
|
||||
if (!hasQuestItems(player, SILVER_SPEAR))
|
||||
{
|
||||
htmltext = "31386-02.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
giveAdena(player, 350000, true);
|
||||
addExpAndSp(player, 456893, 42112);
|
||||
qs.exitQuest(false, true);
|
||||
htmltext = "31386-03.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case TOMBSTONE:
|
||||
{
|
||||
switch (qs.getMemoState())
|
||||
{
|
||||
case 8:
|
||||
{
|
||||
htmltext = "31523-01.html";
|
||||
break;
|
||||
}
|
||||
case 9:
|
||||
{
|
||||
htmltext = "31523-04.html";
|
||||
break;
|
||||
}
|
||||
case 10:
|
||||
{
|
||||
htmltext = "31523-05.html";
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case GHOST_OF_VON_HELLMANN:
|
||||
{
|
||||
final int memoState = qs.getMemoState();
|
||||
if (memoState == 8)
|
||||
{
|
||||
htmltext = "31524-01.html";
|
||||
}
|
||||
else if (memoState == 9)
|
||||
{
|
||||
if (!hasQuestItems(player, SILVER_KEY))
|
||||
{
|
||||
htmltext = "31524-05.html";
|
||||
}
|
||||
}
|
||||
else if ((memoState == 9) || (memoState == 10))
|
||||
{
|
||||
if (hasQuestItems(player, SILVER_KEY))
|
||||
{
|
||||
qs.setMemoState(10);
|
||||
htmltext = "31524-06.html";
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case BROKEN_BOOKSHELF:
|
||||
{
|
||||
switch (qs.getMemoState())
|
||||
{
|
||||
case 2:
|
||||
{
|
||||
if (hasQuestItems(player, SILVER_KEY))
|
||||
{
|
||||
qs.setCond(3, true);
|
||||
htmltext = "31526-01.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
htmltext = "31526-03.html";
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
if (hasQuestItems(player, LIDIAS_HAIRPIN))
|
||||
{
|
||||
htmltext = "31526-07.html";
|
||||
}
|
||||
else if (hasQuestItems(player, LIDIAS_DIARY))
|
||||
{
|
||||
htmltext = "31526-12.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 5:
|
||||
{
|
||||
if (hasQuestItems(player, LIDIAS_HAIRPIN, LIDIAS_DIARY))
|
||||
{
|
||||
htmltext = "31526-13.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case BOX:
|
||||
{
|
||||
if (qs.getMemoState() == 11)
|
||||
{
|
||||
if (hasQuestItems(player, SILVER_KEY))
|
||||
{
|
||||
htmltext = "31530-01.html";
|
||||
}
|
||||
else if (hasQuestItems(player, SILVER_SPEAR))
|
||||
{
|
||||
htmltext = "31530-03.html";
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (qs.isCompleted())
|
||||
{
|
||||
if (npc.getId() == HIGH_PRIEST_INNOCENTIN)
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
}
|
||||
else if (npc.getId() == TRADER_VIOLET)
|
||||
{
|
||||
final QuestState q24 = player.getQuestState(Q00024_InhabitantsOfTheForestOfTheDead.class.getSimpleName());
|
||||
if ((q24 == null))
|
||||
{
|
||||
htmltext = "31386-04.html";
|
||||
}
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onSpawn(L2Npc npc)
|
||||
{
|
||||
startQuestTimer("DESPAWN", 300000, npc, null);
|
||||
npc.broadcastPacket(new NpcSay(npc, Say2.NPC_ALL, NpcStringId.WHO_AWOKE_ME));
|
||||
return super.onSpawn(npc);
|
||||
}
|
||||
}
|
@@ -18,6 +18,8 @@
|
||||
*/
|
||||
package quests.Q00024_InhabitantsOfTheForestOfTheDead;
|
||||
|
||||
import quests.Q00023_LidiasHeart.Q00023_LidiasHeart;
|
||||
|
||||
import com.l2jserver.gameserver.enums.QuestSound;
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
@@ -72,7 +74,7 @@ public class Q00024_InhabitantsOfTheForestOfTheDead extends Quest
|
||||
{
|
||||
// Dorian
|
||||
case "31389-02.htm":
|
||||
final QuestState qs = player.getQuestState("23_LidiasHeart");
|
||||
final QuestState qs = player.getQuestState(Q00023_LidiasHeart.class.getSimpleName());
|
||||
if ((player.getLevel() >= 65) && (qs != null) && qs.isCompleted())
|
||||
{
|
||||
st.startQuest();
|
||||
|
@@ -400,11 +400,11 @@ public class Q00144_PailakaInjuredDragon extends Quest
|
||||
player.abortAttack();
|
||||
player.abortCast();
|
||||
player.stopMove(null);
|
||||
if (player.hasSummon())
|
||||
if (player.hasPet())
|
||||
{
|
||||
player.getSummon().abortAttack();
|
||||
player.getSummon().abortCast();
|
||||
player.getSummon().stopMove(null);
|
||||
player.getPet().abortAttack();
|
||||
player.getPet().abortCast();
|
||||
player.getPet().stopMove(null);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@@ -963,7 +963,7 @@ public class Q00144_PailakaInjuredDragon extends Quest
|
||||
// Checks if the summon or pet that the player has can be used.
|
||||
private final void checkMaxSummonLevel(L2PcInstance player)
|
||||
{
|
||||
final L2Summon pet = player.getSummon();
|
||||
final L2Summon pet = player.getPet();
|
||||
if (pet instanceof L2PetInstance)
|
||||
{
|
||||
if (pet.getLevel() > MAX_SUMMON_LEVEL)
|
||||
|
@@ -2,5 +2,5 @@
|
||||
What do you want me to do with a bunch of rocks? Giant’s fragments you say and you want me to restore them? Hmm… that isn’t exactly in the description of my profession… but you know what I’ll give it a try.<br>
|
||||
Now let’s discuss my fee...<br>
|
||||
If you don't mind...<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00177_SplitDestiny 32615-03.htm">"Hadel says ‘It’s for that time he took care of that thing."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00177_SplitDestiny 32615-03.htm">"Hadel says It's for that time he took care of that thing."</Button>
|
||||
</body></html>
|
@@ -18,7 +18,7 @@
|
||||
*/
|
||||
package quests.Q00177_SplitDestiny;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.CategoryData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.CategoryData;
|
||||
import com.l2jserver.gameserver.enums.CategoryType;
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
|
@@ -46,7 +46,7 @@ public final class Q00357_WarehouseKeepersAmbition extends Quest
|
||||
}
|
||||
// Misc
|
||||
private static final int MIN_LVL = 47;
|
||||
|
||||
|
||||
public Q00357_WarehouseKeepersAmbition()
|
||||
{
|
||||
super(357, Q00357_WarehouseKeepersAmbition.class.getSimpleName(), "Warehouse Keeper's Ambition");
|
||||
@@ -55,7 +55,7 @@ public final class Q00357_WarehouseKeepersAmbition extends Quest
|
||||
addKillId(DROP_DATA.keySet());
|
||||
registerQuestItems(JADE_CRYSTAL);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
@@ -119,7 +119,7 @@ public final class Q00357_WarehouseKeepersAmbition extends Quest
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance talker)
|
||||
{
|
||||
@@ -135,7 +135,7 @@ public final class Q00357_WarehouseKeepersAmbition extends Quest
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
|
@@ -127,7 +127,7 @@ public final class Q00421_LittleWingsBigAdventure extends Quest
|
||||
}
|
||||
case "30747-04.html":
|
||||
{
|
||||
final L2Summon summon = player.getSummon();
|
||||
final L2Summon summon = player.getPet();
|
||||
|
||||
if (summon == null)
|
||||
{
|
||||
@@ -145,7 +145,7 @@ public final class Q00421_LittleWingsBigAdventure extends Quest
|
||||
}
|
||||
case "30747-05.html":
|
||||
{
|
||||
final L2Summon summon = player.getSummon();
|
||||
final L2Summon summon = player.getPet();
|
||||
|
||||
if (summon == null)
|
||||
{
|
||||
@@ -247,7 +247,7 @@ public final class Q00421_LittleWingsBigAdventure extends Quest
|
||||
}
|
||||
case 200:
|
||||
{
|
||||
final L2Summon summon = talker.getSummon();
|
||||
final L2Summon summon = talker.getPet();
|
||||
|
||||
if (summon == null)
|
||||
{
|
||||
@@ -293,7 +293,7 @@ public final class Q00421_LittleWingsBigAdventure extends Quest
|
||||
{
|
||||
if (!hasQuestItems(talker, FAIRY_LEAF))
|
||||
{
|
||||
final L2Summon summon = talker.getSummon();
|
||||
final L2Summon summon = talker.getPet();
|
||||
|
||||
if (summon == null)
|
||||
{
|
||||
@@ -383,7 +383,8 @@ public final class Q00421_LittleWingsBigAdventure extends Quest
|
||||
final NpcData data = NPC_DATA.get(npc.getId());
|
||||
if ((qs.getMemoState() % data.memoStateMod) < data.memoStateValue)
|
||||
{
|
||||
if (attacker.getSummon().getControlObjectId() == qs.getInt("fluteObjectId"))
|
||||
final L2Summon pet = attacker.getPet();
|
||||
if ((pet != null) && (pet.getControlObjectId() == qs.getInt("fluteObjectId")))
|
||||
{
|
||||
final int hits = qs.getInt("hits") + 1;
|
||||
qs.set("hits", hits);
|
||||
|
@@ -349,7 +349,7 @@ public final class Q00511_AwlUnderFoot extends Quest
|
||||
@Override
|
||||
public String onAttack(L2Npc npc, L2PcInstance player, int damage, boolean isSummon)
|
||||
{
|
||||
L2Playable attacker = (isSummon ? player.getSummon() : player);
|
||||
L2Playable attacker = (isSummon ? player.getServitors().values().stream().findFirst().orElse(player.getPet()) : player);
|
||||
if ((attacker.getLevel() - npc.getLevel()) >= 9)
|
||||
{
|
||||
if ((attacker.getBuffCount() > 0) || (attacker.getDanceCount() > 0))
|
||||
|
@@ -68,7 +68,7 @@ public final class Q00619_RelicsOfTheOldEmpire extends Quest
|
||||
private static final int ENTRANCE_PASS_TO_THE_SEPULCHER = 7075;
|
||||
private static final int BROKEN_RELIC_PART = 7254;
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 75;
|
||||
private static final int MIN_LEVEL = 74;
|
||||
private static final int REQUIRED_RELIC_COUNT = 1000;
|
||||
// Reward
|
||||
private static final int[] RECIPES =
|
||||
|
5
trunk/dist/game/data/scripts/quests/Q00655_AGrandPlanForTamingWildBeasts/35627-01.html
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q00655_AGrandPlanForTamingWildBeasts/35627-01.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Messenger:<br>
|
||||
Are you after this Clan Hall? Do you have any idea where you are? You must be able to tame beasts if you expect to win this Clan Hall.<br>
|
||||
Don't bite off more than you can chew, my friend!<br>
|
||||
<a action="bypass -h Quest Q00655_AGrandPlanForTamingWildBeasts 35627-06.html">"I want to demonstrate my ability."</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00655_AGrandPlanForTamingWildBeasts/35627-02.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00655_AGrandPlanForTamingWildBeasts/35627-02.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Messenger:<br>
|
||||
Registration begins an hour before the Clan Hall War.<br>
|
||||
As far as I know, the next Clan Hall War is around %next_siege%. Check back then.
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00655_AGrandPlanForTamingWildBeasts/35627-03.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00655_AGrandPlanForTamingWildBeasts/35627-03.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Messenger:<br>
|
||||
Ha! You think you stand a chance of winning with that ability?<br>
|
||||
(Only Leaders of Clans of level 4 or above can do this.)
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00655_AGrandPlanForTamingWildBeasts/35627-04.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00655_AGrandPlanForTamingWildBeasts/35627-04.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Messenger:<br>
|
||||
Hey, what are you doing? You already have a Clan Hall! Don't be greedy! Take off!
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00655_AGrandPlanForTamingWildBeasts/35627-05.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00655_AGrandPlanForTamingWildBeasts/35627-05.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Messenger:<br>
|
||||
You're not the leader of your Clan.<br>
|
||||
(Only Leaders of level 4 or above Clans can do this.)
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/quests/Q00655_AGrandPlanForTamingWildBeasts/35627-06.html
vendored
Normal file
7
trunk/dist/game/data/scripts/quests/Q00655_AGrandPlanForTamingWildBeasts/35627-06.html
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Messenger:<br>
|
||||
Measuring your abilities is actually very simple.<br>
|
||||
Just raise some beasts and bring me the proof.<br>
|
||||
Raise them well, so they have a good heart, and they'll produce a <font color="LEVEL">Crystal of Purity</font>. Bring me <font color="LEVEL">10 Crystals of Purity</font> and your ability will be proven.<br>
|
||||
Remember to raise them along with your Clan, making sure to watch them closely.<br>
|
||||
<a action="bypass -h Quest Q00655_AGrandPlanForTamingWildBeasts 35627-06a.html">"How do I raise the beasts?"</a>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00655_AGrandPlanForTamingWildBeasts/35627-06a.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00655_AGrandPlanForTamingWildBeasts/35627-06a.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Herald:<br>
|
||||
You can tame a beast using <font color="LEVEL">Golden Spice</font> or <font color="LEVEL">Crystal Spice</font>. You must've known that already, huh?
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00655_AGrandPlanForTamingWildBeasts/35627-07.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00655_AGrandPlanForTamingWildBeasts/35627-07.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Messenger:<br>
|
||||
Did you participate in the previous contest? Then start again!
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/quests/Q00655_AGrandPlanForTamingWildBeasts/35627-08.html
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q00655_AGrandPlanForTamingWildBeasts/35627-08.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Messenger:<br>
|
||||
Surely you didn't think qualification would be easy? If you have time to gab like this, you have time to take the test...<br>
|
||||
Don't forget to bring me 10 Crystals of Purity.<br>
|
||||
Remember to raise the beast along with your clan, making sure to keep a close eye on it!<br>
|
||||
<a action="bypass -h Quest Q00655_AGrandPlanForTamingWildBeasts 35627-06a.html">"How do I raise the beasts?"</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00655_AGrandPlanForTamingWildBeasts/35627-09.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00655_AGrandPlanForTamingWildBeasts/35627-09.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Messenger:<br>
|
||||
If you have a Trainer License, register quickly! <br>
|
||||
<a action="bypass -h Quest Q00655_AGrandPlanForTamingWildBeasts 35627-11.html">Clan Hall War Registration</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00655_AGrandPlanForTamingWildBeasts/35627-10.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00655_AGrandPlanForTamingWildBeasts/35627-10.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Messenger:<br>
|
||||
I checked out your 10 Crystals of Purity. While it's true you have skills, other clans are just as good as you. This Clan Hall War should prove to be very exciting! The finals will begin soon, so get registered. Only 5 clans may participate.<br>
|
||||
<a action="bypass -h Quest Q00655_AGrandPlanForTamingWildBeasts 35627-11.html">Clan Hall War Registration</a>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00655_AGrandPlanForTamingWildBeasts/35627-11.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00655_AGrandPlanForTamingWildBeasts/35627-11.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Messenger:<br>
|
||||
Didn't I already cover that? Clan Hall registration begins an hour before the contest, and the next Clan Hall War will begin around %next_siege%.
|
||||
</body></html>
|
@@ -0,0 +1,258 @@
|
||||
/*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package quests.Q00655_AGrandPlanForTamingWildBeasts;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
|
||||
import com.l2jserver.gameserver.cache.HtmCache;
|
||||
import com.l2jserver.gameserver.enums.QuestSound;
|
||||
import com.l2jserver.gameserver.instancemanager.CHSiegeManager;
|
||||
import com.l2jserver.gameserver.model.L2Clan;
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.entity.clanhall.ClanHallSiegeEngine;
|
||||
import com.l2jserver.gameserver.model.entity.clanhall.SiegableHall;
|
||||
import com.l2jserver.gameserver.model.quest.Quest;
|
||||
import com.l2jserver.gameserver.model.quest.QuestState;
|
||||
import com.l2jserver.gameserver.util.Util;
|
||||
|
||||
/**
|
||||
* A Grand Plan for Taming Wild Beasts (655)
|
||||
* @author Zoey76
|
||||
*/
|
||||
public final class Q00655_AGrandPlanForTamingWildBeasts extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int MESSENGER = 35627;
|
||||
// Items
|
||||
private static final int CRYSTAL_OF_PURITY = 8084;
|
||||
private static final int TRAINER_LICENSE = 8293;
|
||||
// Misc
|
||||
private static final int REQUIRED_CRYSTAL_COUNT = 10;
|
||||
private static final int REQUIRED_CLAN_LEVEL = 4;
|
||||
private static final int MINUTES_TO_SIEGE = 3600;
|
||||
private static final String PATH_TO_HTML = "data/scripts/conquerablehalls/flagwar/WildBeastReserve/messenger_initial.htm";
|
||||
|
||||
public Q00655_AGrandPlanForTamingWildBeasts()
|
||||
{
|
||||
super(655, Q00655_AGrandPlanForTamingWildBeasts.class.getSimpleName(), "A Grand Plan for Taming Wild Beasts");
|
||||
addStartNpc(MESSENGER);
|
||||
addTalkId(MESSENGER);
|
||||
registerQuestItems(CRYSTAL_OF_PURITY, TRAINER_LICENSE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if (qs == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
String htmltext = null;
|
||||
final L2Clan clan = player.getClan();
|
||||
final long minutesToSiege = getMinutesToSiege();
|
||||
switch (event)
|
||||
{
|
||||
case "35627-06.html":
|
||||
{
|
||||
if (qs.isCreated())
|
||||
{
|
||||
if ((clan != null) && (clan.getLevel() >= REQUIRED_CLAN_LEVEL) && (clan.getFortId() == 0) //
|
||||
&& player.isClanLeader() && (minutesToSiege > 0) && (minutesToSiege < MINUTES_TO_SIEGE))
|
||||
{
|
||||
qs.startQuest();
|
||||
htmltext = event;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "35627-06a.html":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "35627-11.html":
|
||||
{
|
||||
if ((minutesToSiege > 0) && (minutesToSiege < MINUTES_TO_SIEGE))
|
||||
{
|
||||
htmltext = HtmCache.getInstance().getHtm(player.getHtmlPrefix(), PATH_TO_HTML);
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = getHtm(player.getHtmlPrefix(), event);
|
||||
htmltext = htmltext.replace("%next_siege%", getSiegeDate());
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance talker)
|
||||
{
|
||||
final QuestState qs = getQuestState(talker, true);
|
||||
String htmltext = getNoQuestMsg(talker);
|
||||
final long minutesToSiege = getMinutesToSiege();
|
||||
if (qs.isCreated())
|
||||
{
|
||||
final L2Clan clan = talker.getClan();
|
||||
if (clan == null)
|
||||
{
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
if ((minutesToSiege > 0) && (minutesToSiege < MINUTES_TO_SIEGE))
|
||||
{
|
||||
if (talker.isClanLeader())
|
||||
{
|
||||
if (clan.getFortId() == 0)
|
||||
{
|
||||
if (clan.getLevel() >= REQUIRED_CLAN_LEVEL)
|
||||
{
|
||||
htmltext = "35627-01.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "35627-03.html";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "35627-04.html";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((clan.getFortId() == ClanHallSiegeEngine.BEAST_FARM) && (minutesToSiege > 0) && (minutesToSiege < MINUTES_TO_SIEGE))
|
||||
{
|
||||
htmltext = HtmCache.getInstance().getHtm(talker.getHtmlPrefix(), PATH_TO_HTML);
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "35627-05.html";
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = getHtm(talker.getHtmlPrefix(), "35627-02.html");
|
||||
htmltext = htmltext.replace("%next_siege%", getSiegeDate());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((minutesToSiege < 0) || (minutesToSiege > MINUTES_TO_SIEGE))
|
||||
{
|
||||
takeItems(talker, TRAINER_LICENSE, -1);
|
||||
takeItems(talker, CRYSTAL_OF_PURITY, -1);
|
||||
qs.exitQuest(true, true);
|
||||
htmltext = "35627-07.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
if (hasQuestItems(talker, TRAINER_LICENSE))
|
||||
{
|
||||
htmltext = "35627-09.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
if (getQuestItemsCount(talker, CRYSTAL_OF_PURITY) < REQUIRED_CRYSTAL_COUNT)
|
||||
{
|
||||
htmltext = "35627-08.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
giveItems(talker, TRAINER_LICENSE, 1);
|
||||
takeItems(talker, CRYSTAL_OF_PURITY, -1);
|
||||
qs.setCond(3, true);
|
||||
htmltext = "35627-10.html";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the Wild Beast Reserve's siege date.
|
||||
* @return the siege date
|
||||
*/
|
||||
private static String getSiegeDate()
|
||||
{
|
||||
final SiegableHall hall = CHSiegeManager.getInstance().getSiegableHall(ClanHallSiegeEngine.BEAST_FARM);
|
||||
if (hall != null)
|
||||
{
|
||||
final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
return sdf.format(hall.getSiegeDate());
|
||||
}
|
||||
return "Error in date.";
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the minutes to next siege.
|
||||
* @return minutes to next siege
|
||||
*/
|
||||
private static long getMinutesToSiege()
|
||||
{
|
||||
final SiegableHall hall = CHSiegeManager.getInstance().getSiegableHall(ClanHallSiegeEngine.BEAST_FARM);
|
||||
if (hall != null)
|
||||
{
|
||||
return (hall.getNextSiegeTime() - Calendar.getInstance().getTimeInMillis()) / 3600;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Rewards the clan leader with a Crystal of Purity after player tame a wild beast.
|
||||
* @param player the player
|
||||
* @param npc the wild beast
|
||||
*/
|
||||
public static void reward(L2PcInstance player, L2Npc npc)
|
||||
{
|
||||
final L2Clan clan = player.getClan();
|
||||
final L2PcInstance clanLeader = clan != null ? clan.getLeader().getPlayerInstance() : null;
|
||||
if (clanLeader != null)
|
||||
{
|
||||
final QuestState qs655 = clanLeader.getQuestState(Q00655_AGrandPlanForTamingWildBeasts.class.getSimpleName());
|
||||
if (qs655 != null)
|
||||
{
|
||||
if ((getQuestItemsCount(clanLeader, CRYSTAL_OF_PURITY) < REQUIRED_CRYSTAL_COUNT) && Util.checkIfInRange(2000, clanLeader, npc, true))
|
||||
{
|
||||
if (clanLeader.getLevel() >= REQUIRED_CLAN_LEVEL)
|
||||
{
|
||||
giveItems(clanLeader, CRYSTAL_OF_PURITY, 1);
|
||||
}
|
||||
|
||||
if (getQuestItemsCount(clanLeader, CRYSTAL_OF_PURITY) >= 9)
|
||||
{
|
||||
qs655.setCond(2, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
playSound(clanLeader, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -168,16 +168,12 @@ public final class Q10292_SevenSignsGirlOfDoubt extends Quest
|
||||
creature1.setIsNoRndWalk(true);
|
||||
final L2Npc creature2 = addSpawn(CREATURE_OF_THE_DUSK2, 89524, -238131, -9632, 56, false, 0, false, player.getInstanceId());
|
||||
creature2.setIsNoRndWalk(true);
|
||||
ThreadPoolManager.getInstance().scheduleGeneral(new Runnable()
|
||||
ThreadPoolManager.getInstance().scheduleGeneral(() ->
|
||||
{
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
creature1.deleteMe();
|
||||
creature2.deleteMe();
|
||||
st.unset("ex");
|
||||
isBusy = false;
|
||||
}
|
||||
creature1.deleteMe();
|
||||
creature2.deleteMe();
|
||||
st.unset("ex");
|
||||
isBusy = false;
|
||||
}, 60000);
|
||||
}
|
||||
break;
|
||||
|
@@ -232,7 +232,7 @@ public class Q10323_TrainLikeItsReal extends Quest
|
||||
{
|
||||
final QuestState qs = getQuestState(killer, false);
|
||||
|
||||
if (npc.getId() == TRAINING_GOLEM)
|
||||
if ((qs != null) && qs.isStarted())
|
||||
{
|
||||
int killedGolem = qs.getInt(KILL_VAR);
|
||||
|
||||
@@ -246,7 +246,7 @@ public class Q10323_TrainLikeItsReal extends Quest
|
||||
else
|
||||
{
|
||||
qs.set(KILL_VAR, killedGolem);
|
||||
qs.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
}
|
||||
else if (qs.isCond(6) || qs.isCond(7))
|
||||
@@ -259,7 +259,7 @@ public class Q10323_TrainLikeItsReal extends Quest
|
||||
else
|
||||
{
|
||||
qs.set(KILL_VAR, killedGolem);
|
||||
qs.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
6
trunk/dist/game/data/scripts/quests/Q10741_ADraughtForTheCold/33951-01.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q10741_ADraughtForTheCold/33951-01.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Forest Patrol Sivanthe:<br>
|
||||
You must miss your friends and family back in Wind Realm.<br>
|
||||
I also had a friend. She was there for me when my Lorne was killed by the monsters...she is but a child, but she is a truly kind heart.<br>
|
||||
But she...<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10741_ADraughtForTheCold 33951-02.htm">"What happend?"</Button>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/quests/Q10741_ADraughtForTheCold/33951-02.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q10741_ADraughtForTheCold/33951-02.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Forest Patrol Sivanthe:<br>
|
||||
She has a cold. What's that face? You thought something worse happened?<br>
|
||||
Oh no. You've heard too many dark stories. She is my friend's sister, Leira. Leira has been sick for days with her cold. Speaking of which, could you help her recover from her cold?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10741_ADraughtForTheCold 33951-03.htm">"Sure."</Button>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q10741_ADraughtForTheCold/33951-03.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10741_ADraughtForTheCold/33951-03.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Forest Patrol Sivanthe:<br>
|
||||
I heard honey is the best for colds. You can find the honey bee habitat inside the Whispering Woods. Get 10 bottles of <font color="LEVEL">Sweet Honey</font> from <font color="LEVEL">Honey Bees</font> and <font color="LEVEL">Robust Honeybees</font>. You can collect the honey in the bottle that I give you. Also, she needs her stamina back. Please get 10 <font color="LEVEL">Nutritious Meats</font> from <font color="LEVEL">Kiku</font>.<br>
|
||||
The name of my sick friend is <font color="LEVEL">Forest Patrol Leira</font>. Please don't forget.<br>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q10741_ADraughtForTheCold/33951-04.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q10741_ADraughtForTheCold/33951-04.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Forest Patrol Sivanthe:<br>
|
||||
Get 10 bottles of <font color="LEVEL">Sweet Honey</font> from <font color="LEVEL">Honey Bees</font> and <font color="LEVEL">Robust of Honeybees</font>,and 10 <font color="LEVEL">Nutritious Meats</font> from <font color="LEVEL">Kiku</font> and bring them to <font color="LEVEL">Forest Patrol Leira</font>.
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q10741_ADraughtForTheCold/33951-05.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10741_ADraughtForTheCold/33951-05.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Forest Patrol Sivanthe:<br>
|
||||
When Leira said that she wanted to be a Forest Patrol, her sister Karla was very worried. Leira always has a cold.<br>
|
||||
(Only Ertheia characters Lv. 10 to 20 can perform this quest.)<br>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/quests/Q10741_ADraughtForTheCold/33952-01.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q10741_ADraughtForTheCold/33952-01.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Forest Patrol Leira:<br>
|
||||
Oh, my. Sivanthe? Did she send me something for my cold? Does my sister know that I'm sick?<br>
|
||||
Cough, cough... So, Sivanthe knew. She's going to lecture me for hours! With such a stoic face, too. Cough...Although, I guess it's better than just staring up at the sky with no one to talk to since Lorne left...cough, cough...Oh, what am I saying?<br>
|
||||
By the way, what are you doing for Sivanthe?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10741_ADraughtForTheCold 33952-02.htm">"I brought some honey and meat."</Button>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q10741_ADraughtForTheCold/33952-02.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10741_ADraughtForTheCold/33952-02.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Forest Patrol Leira:<br>
|
||||
Did you...collect, cough, all this, cough, alone?<br>
|
||||
But, if I take these and don't get better, Sivanthe's lecturing will, cough, get worse, cough.
|
||||
</body</html>
|
168
trunk/dist/game/data/scripts/quests/Q10741_ADraughtForTheCold/Q10741_ADraughtForTheCold.java
vendored
Normal file
168
trunk/dist/game/data/scripts/quests/Q10741_ADraughtForTheCold/Q10741_ADraughtForTheCold.java
vendored
Normal file
@@ -0,0 +1,168 @@
|
||||
/*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package quests.Q10741_ADraughtForTheCold;
|
||||
|
||||
import com.l2jserver.gameserver.enums.QuestSound;
|
||||
import com.l2jserver.gameserver.enums.Race;
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.quest.Quest;
|
||||
import com.l2jserver.gameserver.model.quest.QuestState;
|
||||
|
||||
/**
|
||||
* @author Sdw
|
||||
*/
|
||||
public class Q10741_ADraughtForTheCold extends Quest
|
||||
{
|
||||
// NPC's
|
||||
private static final int SIVANTHE = 33951;
|
||||
private static final int LEIRA = 33952;
|
||||
// Items
|
||||
private static final int EMPTY_HONEY_JAR = 39527;
|
||||
private static final int SWEET_HONEY = 39528;
|
||||
private static final int NUTRITIOUS_MEAT = 39529;
|
||||
// Mobs
|
||||
private static final int HONEY_BEE = 23452;
|
||||
private static final int KIKU = 23453;
|
||||
private static final int ROBUST_HONEY_BEE = 23484;
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 10;
|
||||
private static final int MAX_LEVEL = 20;
|
||||
|
||||
public Q10741_ADraughtForTheCold()
|
||||
{
|
||||
super(10741, Q10741_ADraughtForTheCold.class.getSimpleName(), "A Draught For The Cold");
|
||||
addStartNpc(SIVANTHE);
|
||||
addTalkId(SIVANTHE, LEIRA);
|
||||
addKillId(HONEY_BEE, KIKU, ROBUST_HONEY_BEE);
|
||||
registerQuestItems(EMPTY_HONEY_JAR, SWEET_HONEY, NUTRITIOUS_MEAT);
|
||||
addCondLevel(MIN_LEVEL, MAX_LEVEL, "33951-07.htm");
|
||||
addCondRace(Race.ERTHEIA, "33951-07.htm");
|
||||
}
|
||||
|
||||
@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 "33951-03.htm":
|
||||
{
|
||||
qs.startQuest();
|
||||
giveItems(player, EMPTY_HONEY_JAR, 10);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33951-02.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33952-02.htm":
|
||||
{
|
||||
if (qs.isCond(2))
|
||||
{
|
||||
giveAdena(player, 2000, true);
|
||||
addExpAndSp(player, 22973, 2);
|
||||
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())
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
}
|
||||
|
||||
switch (npc.getId())
|
||||
{
|
||||
case SIVANTHE:
|
||||
{
|
||||
if (qs.isCreated())
|
||||
{
|
||||
htmltext = "33951-01.htm";
|
||||
}
|
||||
else if (qs.isStarted())
|
||||
{
|
||||
htmltext = "33951-04.htm";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case LEIRA:
|
||||
{
|
||||
if (qs.isCond(2))
|
||||
{
|
||||
htmltext = "33952-01.htm";
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
final QuestState qs = getQuestState(killer, false);
|
||||
if ((qs != null) && qs.isCond(1))
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case HONEY_BEE:
|
||||
case ROBUST_HONEY_BEE:
|
||||
{
|
||||
if (hasQuestItems(killer, EMPTY_HONEY_JAR))
|
||||
{
|
||||
takeItems(killer, EMPTY_HONEY_JAR, 1);
|
||||
giveItems(killer, SWEET_HONEY, 1);
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case KIKU:
|
||||
{
|
||||
giveItemRandomly(killer, npc, NUTRITIOUS_MEAT, 1, 10, 1.0, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ((getQuestItemsCount(killer, SWEET_HONEY) >= 10) && (getQuestItemsCount(killer, NUTRITIOUS_MEAT) >= 10))
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
}
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
}
|
6
trunk/dist/game/data/scripts/quests/Q10742_AFurryFriend/33952-01.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q10742_AFurryFriend/33952-01.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Forest Patrol Leira:<br>
|
||||
Did you happen to see a small fox playing in this area?<br>
|
||||
Cough, my dear Ricky hasn't gotten a lot of attention from me lately due to my cold, cough...<br>
|
||||
My Ricky may be small, but he eats a lot. And when he looks at me with those big eyes...cough!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10742_AFurryFriend 33952-02.htm">"Take it easy, there."</Button>
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/quests/Q10742_AFurryFriend/33952-02.htm
vendored
Normal file
7
trunk/dist/game/data/scripts/quests/Q10742_AFurryFriend/33952-02.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Forest Patrol Leira:<br>
|
||||
Ricky's favorite thing to do was chase Kiku around. I'd scold him, saying that's dangerous, but I would always catch him chasing Kiku anyway.<br>
|
||||
Cough... This cold just isn't going away. Oh, my, where's my brain? I haven's show him to you yet.<br>
|
||||
Would you like to meet Ricky?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10742_AFurryFriend 33952-03.htm">"A furry fox! Yes!"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10742_AFurryFriend 33952-05.htm">"I'm not big on animals."</Button>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/quests/Q10742_AFurryFriend/33952-03.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q10742_AFurryFriend/33952-03.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Forest Patrol Leira:<br>
|
||||
Oh no! Where did Ricky run off to now?<br>
|
||||
It's dangerous over on that side! The Kikus and Growlers might hurt him. Please go find him. I can't leave my post.<br>
|
||||
Cough... You'll find him in one of the <font color="LEVEL">3 Kiku's Caves</font> up there. Once you find him, you have <font color="LEVEL">2 minutes</font> to bring him back to me. Ricky might get restless and run away again.<br>
|
||||
Do be careful. The Kiku might attack you for rummaging around its cave.<br>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/quests/Q10742_AFurryFriend/33952-04.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q10742_AFurryFriend/33952-04.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Forest Patrol Leira:<br>
|
||||
Ricky!<br>
|
||||
Where do you think you are going again, you little...cough, cough!<br>
|
||||
I think Ricky needs, cough, some obedience traning.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q10742_AFurryFriend/33952-05.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q10742_AFurryFriend/33952-05.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Forest Patrol Leira:<br>
|
||||
You're unbelievable! Cough...
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q10742_AFurryFriend/33995-01.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10742_AFurryFriend/33995-01.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Kiku's Cave:<br>
|
||||
This cave looks small. Is Ricky inside?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10742_AFurryFriend 33995-03.htm">Only one way to find out.</button>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q10742_AFurryFriend/33995-02.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10742_AFurryFriend/33995-02.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Kiku's Cave:<br>
|
||||
No Ricky, but plenty of Kikus.<br>
|
||||
Try another <font color="LEVEL">Kiku's Cave</font>.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q10742_AFurryFriend/33995-03.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q10742_AFurryFriend/33995-03.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Kiku's Cave:<br>
|
||||
Excellent, you found him!<br>
|
||||
</body></html>
|
245
trunk/dist/game/data/scripts/quests/Q10742_AFurryFriend/Q10742_AFurryFriend.java
vendored
Normal file
245
trunk/dist/game/data/scripts/quests/Q10742_AFurryFriend/Q10742_AFurryFriend.java
vendored
Normal file
@@ -0,0 +1,245 @@
|
||||
/*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package quests.Q10742_AFurryFriend;
|
||||
|
||||
import com.l2jserver.gameserver.ai.CtrlIntention;
|
||||
import com.l2jserver.gameserver.enums.Race;
|
||||
import com.l2jserver.gameserver.model.Location;
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.quest.Quest;
|
||||
import com.l2jserver.gameserver.model.quest.QuestState;
|
||||
import com.l2jserver.gameserver.network.NpcStringId;
|
||||
import com.l2jserver.gameserver.network.serverpackets.ExSendUIEvent;
|
||||
import com.l2jserver.gameserver.network.serverpackets.ExShowScreenMessage;
|
||||
|
||||
/**
|
||||
* @author Sdw
|
||||
*/
|
||||
public class Q10742_AFurryFriend extends Quest
|
||||
{
|
||||
// NPC's
|
||||
private static final int LEIRA = 33952;
|
||||
private static final int KIKU_S_CAVE = 33995;
|
||||
private static final int RICKY = 19552;
|
||||
private static final int KIKU = 23453;
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 11;
|
||||
private static final int MAX_LEVEL = 20;
|
||||
// Location
|
||||
private static final Location RICKY_SPAWN = new Location(-78138, 237328, -3548);
|
||||
// Waypoints
|
||||
protected static Location[] WAYPOINTS =
|
||||
{
|
||||
new Location(-78152, 237352, -3569),
|
||||
new Location(-79176, 236792, -3440),
|
||||
new Location(-80072, 237064, -3311),
|
||||
new Location(-80440, 237320, -3313)
|
||||
};
|
||||
|
||||
public Q10742_AFurryFriend()
|
||||
{
|
||||
super(10742, Q10742_AFurryFriend.class.getSimpleName(), "A Furry Friend");
|
||||
addStartNpc(LEIRA);
|
||||
addTalkId(LEIRA, KIKU_S_CAVE);
|
||||
addMoveFinishedId(RICKY);
|
||||
addCondRace(Race.ERTHEIA, "fixme.html");
|
||||
addCondLevel(MIN_LEVEL, MAX_LEVEL, "fixme.html");
|
||||
}
|
||||
|
||||
@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 "33952-02.htm":
|
||||
case "33952-05.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33952-03.htm":
|
||||
{
|
||||
qs.startQuest();
|
||||
final L2Npc ricky = addSpawn(RICKY, RICKY_SPAWN);
|
||||
ricky.setIsRunning(true);
|
||||
ricky.setSummoner(player);
|
||||
startQuestTimer("start_move_ricky", 1000, ricky, player);
|
||||
showOnScreenMsg(player, NpcStringId.FOLLOW_RICKY, ExShowScreenMessage.TOP_CENTER, 4500);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "start_move_ricky":
|
||||
{
|
||||
npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, WAYPOINTS[0]);
|
||||
npc.setScriptValue(0);
|
||||
break;
|
||||
}
|
||||
case "33995-03.htm":
|
||||
{
|
||||
if (qs.isStarted())
|
||||
{
|
||||
if (!player.getKnownList().getKnownCharactersInRadius(500).stream().anyMatch(n -> (n.getId() == RICKY) && (n.getSummoner() == player)))
|
||||
{
|
||||
showOnScreenMsg(player, NpcStringId.TAKE_RICKY_TO_LEIRA_IN_UNDER_2_MINUTES, ExShowScreenMessage.MIDDLE_CENTER, 4500);
|
||||
final L2Npc ricky = addSpawn(RICKY, player.getLocation());
|
||||
ricky.setSummoner(player);
|
||||
ricky.setTitle(player.getAppearance().getVisibleName());
|
||||
ricky.setIsRunning(true);
|
||||
ricky.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, player);
|
||||
startQuestTimer("check_ricky_distance", 1000, ricky, player, true);
|
||||
startQuestTimer("unspawn_ricky_failed", 120000, ricky, player);
|
||||
player.sendPacket(new ExSendUIEvent(player, false, false, 0, 120, NpcStringId.REMAINING_TIME));
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "check_ricky_distance":
|
||||
{
|
||||
if (player == null)
|
||||
{
|
||||
startQuestTimer("unspawn_ricky", 2000, npc, null);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Follow was breaking sometimes, making sure it doesn't happen.
|
||||
npc.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, player);
|
||||
|
||||
final double distanceToRicky = player.calculateDistance(npc, false, true);
|
||||
|
||||
if ((distanceToRicky > 200) && (distanceToRicky < 500))
|
||||
{
|
||||
showOnScreenMsg(player, NpcStringId.YOU_ARE_FAR_FROM_RICKY, ExShowScreenMessage.TOP_CENTER, 4500);
|
||||
}
|
||||
else if (distanceToRicky > 500)
|
||||
{
|
||||
startQuestTimer("unspawn_ricky_failed", 120000, npc, player);
|
||||
}
|
||||
else
|
||||
{
|
||||
final L2Npc leira = (L2Npc) npc.getKnownList().getKnownCharactersInRadius(100).stream().filter(n -> (n.getId() == LEIRA)).findFirst().orElse(null);
|
||||
if (leira != null)
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
showOnScreenMsg(player, NpcStringId.RICKY_HAS_FOUND_LEIRA, ExShowScreenMessage.TOP_CENTER, 4500);
|
||||
player.sendPacket(new ExSendUIEvent(player, false, false, 0, 0, NpcStringId.REMAINING_TIME));
|
||||
startQuestTimer("unspawn_ricky", 2000, npc, player);
|
||||
cancelQuestTimer("check_ricky_distance", npc, player);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "unspawn_ricky":
|
||||
{
|
||||
npc.deleteMe();
|
||||
break;
|
||||
}
|
||||
case "unspawn_ricky_failed":
|
||||
{
|
||||
showOnScreenMsg(player, NpcStringId.BRING_BACK_RICKY, ExShowScreenMessage.TOP_CENTER, 4500);
|
||||
npc.deleteMe();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
|
||||
if (qs.isCompleted())
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
}
|
||||
|
||||
switch (npc.getId())
|
||||
{
|
||||
case LEIRA:
|
||||
{
|
||||
if (qs.isCreated())
|
||||
{
|
||||
htmltext = "33952-01.htm";
|
||||
}
|
||||
else if (qs.isCond(2))
|
||||
{
|
||||
giveAdena(player, 2500, true);
|
||||
addExpAndSp(player, 52516, 5);
|
||||
qs.exitQuest(false, true);
|
||||
htmltext = "33952-04.htm";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case KIKU_S_CAVE:
|
||||
{
|
||||
if (qs.isStarted())
|
||||
{
|
||||
if (getRandomBoolean())
|
||||
{
|
||||
htmltext = "33995-01.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
addAttackPlayerDesire(addSpawn(KIKU, player.getLocation(), true, 120000), player);
|
||||
showOnScreenMsg(player, NpcStringId.RICKY_IS_NOT_HERE_NTRY_SEARCHING_ANOTHER_KIKU_S_CAVE, ExShowScreenMessage.TOP_CENTER, 4500);
|
||||
htmltext = "33995-02.htm";
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMoveFinished(L2Npc npc)
|
||||
{
|
||||
final int currentWaypoint = npc.getScriptValue();
|
||||
|
||||
switch (currentWaypoint)
|
||||
{
|
||||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
{
|
||||
npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, WAYPOINTS[currentWaypoint + 1]);
|
||||
npc.setScriptValue(currentWaypoint + 1);
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
showOnScreenMsg(npc.getSummoner().getActingPlayer(), NpcStringId.RICKY_IS_ENTERING_KIKU_S_CAVE, ExShowScreenMessage.TOP_CENTER, 4500);
|
||||
npc.deleteMe();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
6
trunk/dist/game/data/scripts/quests/Q10743_StrangeFungus/33952-01.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q10743_StrangeFungus/33952-01.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Forest Patrol Leira:<br>
|
||||
I feel chilly. So tired of this cold. My cough's a bit better, though.<br>
|
||||
Look at me, sick as a dog, any my Ricky just goes running off again. Where did he go now? I can't rest for a second.<br>
|
||||
Oh, right! Mushrooms! A little while ago, I saw a very unusual mushroom spirit!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10743_StrangeFungus 33952-02.htm">"What's a mushroom spirit?"</button>
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/quests/Q10743_StrangeFungus/33952-02.htm
vendored
Normal file
7
trunk/dist/game/data/scripts/quests/Q10743_StrangeFungus/33952-02.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Forest Patrol Leira:<br>
|
||||
Growlers are mushroom spirits. They used to be cute and calm spirits, but one they entered the Material Realm, they became dangerous. They were never known to harm anyone back in the Wind Spirit Realm.<br>
|
||||
Oh, my, I'm rambling again. So, about these <font color="LEVEL">unusual mushrooms spirit.</font><br>
|
||||
All the Growlers living in their habitat are the same color. But recently, I was out searching for Ricky when I came across a Growler that was a different color from the rest.
|
||||
What if that particular Growler is poisonous? Ricky could get hurt! Please go see if that Growler is poisonous!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10743_StrangeFungus 33952-03.htm">"All right, don'tt worry."</button>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q10743_StrangeFungus/33952-03.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10743_StrangeFungus/33952-03.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Forest Patrol Leira:<br>
|
||||
All right. That unusual mushroom won't be easy to spot. It appears when the normal Growlers disappear, or something. Hard to explain.<br>
|
||||
Anyway, if you cut down the Growlers, <font color="LEVEL">Evolved Growlers</font> will appear in their place. Collet some Growler spores and take them to <font color="LEVEL">Forest Patrol Milone</font>. Milone is an expert at mushrooms!
|
||||
</body></html>
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user