Audience with the Land Dragon
- ID
- 337
- Название
- Audience with the Land Dragon
- start_npcs_json
- [30753]
- npc_ids_json
- [18001,20134,20246,20277,20287,20644,20645,20649,20650,20679,20680,27165,27166,27167,27168,27169,27170,27171,27172,30498,30678,30705,30720,30753,30754,30755,30851,30857]
- constants_json
- {"GABRIELLE":30753,"ORVEN":30857,"KENDRA":30851,"CHAKIRIS":30705,"KAIENA":30720,"MOKE":30498,"HELTON":30678,"GILMORE":30754,"THEODRIC":30755,"BLOOD_QUEEN":18001,"SACRIFICE_OF_THE_SACRIFICED":27171,"HARIT_LIZARDMAN_SHAMAN":20644,"HARIT_LIZARDMAN_MATRIARCH":20645,"HARIT_LIZARDMAN_ZEALOT":27172,"KRANROT":20650,"HAMRUT":20649,"MARSH_DRAKE":20680,"MARSH_STALKER":20679,"ABYSSAL_JEWEL_1":27165,"JEWEL_GUARDIAN_MARA":27168,"ABYSSAL_JEWEL_2":27166,"JEWEL_GUARDIAN_MUSFEL":27169,"CAVE_MAIDEN_1":20134,"CAVE_MAIDEN_2":20287,"CAVE_KEEPER_1":20246,"CAVE_KEEPER_2":20277,"ABYSSAL_JEWEL_3":27167,"JEWEL_GUARDIAN_PYTON":27170,"FEATHER_OF_GABRIELLE":3852,"MARK_OF_WATCHMAN":3864,"REMAINS_OF_SACRIFIED":3857,"TOTEM_OF_LAND_DRAGON":3858,"KRANROT_SKIN":3855,"HAMRUT_LEG":3856,"MARSH_DRAKE_TALONS":3854,"MARSH_STALKER_HORN":3853,"FIRST_FRAGMENT_OF_ABYSS_JEWEL":3859,"MARA_FANG":3862,"SECOND_FRAGMENT_OF_ABYSS_JEWEL":3860,"MUSFEL_FANG":3863,"HERALD_OF_SLAYER":3890,"THIRD_FRAGMENT_OF_ABYSS_JEWEL":3861,"PORTAL_STONE":3865}
- Статус разбора
- metadata_only; dynamic Java conditions/rewards retained in source; unresolved starts: []
- Источник
- game/data/scripts/quests/Q00337_AudienceWithTheLandDragon/Q00337_AudienceWithTheLandDragon.java
NPC квеста
| ID | Название | Старт квеста | Уровень |
|---|---|---|---|
| 18001 | Blood Queen | Нет | 60 |
| 20134 | Cave Maiden | Нет | 59 |
| 20246 | Cave Keeper | Нет | 58 |
| 20277 | Cave Keeper | Нет | 58 |
| 20287 | Cave Maiden | Нет | 59 |
| 20644 | Harit Lizardman Shaman | Нет | 54 |
| 20645 | Harit Lizardman Matriarch | Нет | 55 |
| 20649 | Hamrut | Нет | 58 |
| 20650 | Kranrot | Нет | 59 |
| 20679 | Marsh Stalker | Нет | 54 |
| 20680 | Marsh Drake | Нет | 55 |
| 27165 | Abyssal Jewel 1 | Нет | 60 |
| 27166 | Abyssal Jewel 2 | Нет | 60 |
| 27167 | Abyssal Jewel 3 | Нет | 60 |
| 27168 | Jewel Guardian Mara | Нет | 53 |
| 27169 | Jewel Guardian Musfel | Нет | 53 |
| 27170 | Jewel Guardian Pyton | Нет | 58 |
| 27171 | Sacrifice Of The Sacrificed | Нет | 20 |
| 27172 | Harit Lizardman Zealot | Нет | 55 |
| 30498 | Moke | Нет | 70 |
| 30678 | Helton | Нет | 70 |
| 30705 | Chakiris | Нет | 70 |
| 30720 | Kaiena | Нет | 70 |
| 30753 | Gabrielle | Да | 70 |
| 30754 | Gilmore | Нет | 70 |
| 30755 | Theodric | Нет | 70 |
| 30851 | Kendra | Нет | 70 |
| 30857 | Orven | Нет | 70 |
Условия уровней: выражения из Java
htmltext = (player.getLevel() < 50) ? "30753-02.htm" : "30753-01.htm";
Выдача предметов, адены и опыта: выражения из Java
giveItems(player, FEATHER_OF_GABRIELLE, 1); giveItems(player, PORTAL_STONE, 1); giveItems(player, HERALD_OF_SLAYER, 1); giveItems(player, MARK_OF_WATCHMAN, 1); giveItems(player, MARK_OF_WATCHMAN, 1); giveItems(player, MARK_OF_WATCHMAN, 1); giveItems(player, MARK_OF_WATCHMAN, 1); giveItems(player, MARK_OF_WATCHMAN, 1); giveItems(player, MARK_OF_WATCHMAN, 1); giveItems(attacker, itemId, 1); giveItems(player, itemId, 1);
Квесты содержат динамические условия Java. Выражения выдачи включают промежуточные предметы, варианты и случайные награды; это не гарантированная награда. Константы приведены выше. Полные условия — в исходнике.
Тексты квеста
[30498-01.htm] Warehouse Chief Moke: Is that a Feather of Gabrielle? Allow me to introduce myself again. I am Moke, watcher of the seal. I was trained by the Gray Pillar Guild. I am currently employed as a warehouse keeper, guarding the Bronze Gate. For generations we Dwarves have used the power of a seal to bind the evil spirits of Shilen within columns. As long as a column remains upright, evil spirits cannot escape the power of the seal. Unfortunately, the column restraining the evil dragon Antharas is under attack. The followers of the beast are attempting to free their master by using an Abyss Jewel. "Tell me about the Abyss Jewel."
[30498-02.htm] Warehouse Chief Moke: An Abyss Jewel is used to focus the power of dark magic into one place. The followers of Antharas are attempting to breach the force field that binds their master. If they are successful it will mean the end of us all. No more tomorrows! We must destroy the Abyss Jewel as soon as we can! It is located on the northwest shore of Gludio. You must hurry there with your comrades and dash the jewel to bits. You must beware. Dark spirits guard the Abyss Jewel. They will attack and try to stop you. You must kill them all. If any are allowed to survive they could reconstitute the jewel. You have your assignment. Bring me a fragment of the Abyss Jewel and proof that you have slain a jewel guardian. When you bring these things to me I will give you my Mark of Watchman.
[30498-03.htm] Warehouse Chief Moke: Ah, a fragment of the Abyss Jewel and a fang of the jewel guardian! Great job. I will send this fragment to Gray Pillar's Filaur so that he can destroy it in the "blast furnace of supremacy". This will prevent the seal that restrains Antharas from ever being threatened again. Thanks to you the seal is now safe. Take this Mark of Watchman. You have proven yourself worthy of receiving it.
[30498-04.htm] Warehouse Chief Moke: Word has just reached me that another Abyss Jewel exists! Please go quickly to Oren Castle Town and find Blacksmith Helton! He is one of the watchers of the Gray Pillar guild that are fighting the followers of Antharas! Please hurry!
[30498-05.htm] Warehouse Chief Moke: Thanks to your hard work, we have destroyed the two Abyss Jewels and defended the column restraining the Land Dragon Antharas. On behalf of the brothers of the Gray Pillar guild, I wish to express our deepest gratitude to you. Now, take the marks of watchman you received from me and Helton and return to Gabrielle.
[30678-01.htm] Blacksmith Helton: At long last, Gabrielle has sent someone. I belong to the Black Anvil Guild but originally trained as a seal guardian under Filaur of the Gray Pillar Guild. You may not know this, but recently a decisive battle was fought between our brave warriors and the Succubus. They were trying to free Antharas, the Land Dragon that is imprisoned by an underground aura in the Spine Mine region. One of our allies, Tuwang Raldo, managed to delay their evil plans, but the Succubus escaped and are plotting once again to free the beast. They are attempting to use an Abyss Jewel to destroy the aura that restrains the Land Dragon. "Tell me about the Abyss Jewel."
[30678-02.htm] Blacksmith Helton: Basically, an Abyss Jewel is a device that absorbs the ambient magic of darkness. The succubus gang is using that power to destroy the aura that binds Antharas. There is no time to waste, for if this well-rested beast is allowed to escape it will be disastrous. Do you understand the gravity of the situation? We must destroy the Abyss Jewel! Word comes that the Abyss Jewel is currently in the southern border region of the Sea of Spores, protected by the spirits of darkness. These spirits are not only fearsome guards, but also have the power to recreate the jewel from fragments if it is destroyed. Therefore, you must not only destroy the Abyss Jewel, but you must also obliterate every last one of those spirits of darkness that protect it. Bring back the fragments of the jewel and proof of having killed the spirits of darkness that guard it, then you shall have your proof of guardian.
[30678-03.htm] Blacksmith Helton: Good job! You have bought us some time. Alas, it is nothing more than a temporary respite... The root of these problems is Antharas. No one in the eastern region will rest easily until he is dealt with. Here is your Proof of Guardian.
[30678-04.htm] Blacksmith Helton: Naturally, Warehouse Chief Moke of Gludin Village is guarding the column. Please go to him. He could probably use some help right now from a person like yourself.
[30678-05.htm] Blacksmith Helton: Thanks to your efforts our columns in Gludin and Oren have been saved. Now go back to Gabrielle. She will have another task for you. May Maphr smile upon you!
[30705-01.htm] Prefect Chakiris: Ah, this angel feather tells me that you were sent by Gabrielle! You seek to confront Antharas? You are very brave! Let's see if your skill matches your bravery! Go right away to the Cave of Giants and kill kranrot and hamrut and return with evidence of their demise! If you can't handle this, the very breath of Antharas will be too much for you!
[30705-02.htm] Prefect Chakiris: Good job! You killed the kranrot and hamrut! With such strength you may stand a chance against Antharas! Even if you are defeated you are sure to get in a few good blows before you die!
[30705-03.htm] Prefect Chakiris: If you wish to confront Antharas you must meet the other guardians of the seal! Once you collect the Mark of Watchman from each of them Gabrielle will bestow upon you the Herald of Slayer. Stop mucking about and solve the tasks of the other guardians! Antharas awaits!
[30705-04.htm] Prefect Chakiris: Well, your team looks impressive if a bit disorganized! Gabrielle is looking for you. You must go to her! She will give you more details!
[30720-01.htm] Magister Kaiena: Did Gabrielle send you? Well, in that case I won't waste your time with a long explanation. You must go to the Forsaken Plains and kill marsh stalkers and marsh drakes. You must be able to defeat them if you intend to even meet the guardians of Antharas at the entrance of Dragon Valley. You should make sure that all the others in your party are aware of this. They should talk to me. If they don't, they shall never qualify to join your expedition.
[30720-02.htm] Magister Kaiena: Great job! With that kind of strength you may even have a 1% chance of survival! Even if you don't kill Antharas at least you can delay his complete awakening. I would tell you to run away if the battle takes a turn for the worse, but the lair of Antharas is fashioned in such a way that once you enter you cannot leave... Anyway, here is my Mark of Watchman. If any of your colleagues lack the Mark of Watchman for killing marsh stalkers and marsh drakes, you must show them how to obtain it.
[30720-03.htm] Magister Kaiena: I hope you realize that this Mark of Watchman does not qualify you to undertake an expedition against Antharas. You must go and meet the other guardians of whom Gabrielle spoke and collect their marks of watchman.
[30720-04.htm] Magister Kaiena: Ah, the expedition starts to take shape! I hope everyone has written their wills! Ha! I am looking urgently for the people that Gabrielle has already recognized. Could it be that they survived? You must go and see Gabrielle now.
[30753-01.htm] Gabrielle: I am one of the guardians of the seal of the Emperor of Light Shunaiman that restrain the evil creatures of Shilen. We recently had a meeting of grave importance. We are now threatened by one of the most fearsome of all evil creatures! The tyrant of the land, the disaster of Giran, the dragon Antharas! He has at last awoken from his deep slumber. We expect him to emerge from his lair at any moment and have decided to strike preemptively. Even now we are forming an expedition to destroy Antharas! "I will join your expedition!"
[30753-02.htm] Gabrielle: Your spirit is admirable, but honestly, Antharas would cut you down like a dog! (This quest may only be undertaken by a character of level 50 and above.)
[30753-03.htm] Gabrielle: Oh... Your bravery is impressive but Antharas is much stronger than any creature you've come up against. Dragons are fearsomely powerful creatures! They aren't even afraid of the gods! From ancient times countless brave warriors have lost their lives to this menace. I'm afraid you would join them... An untrained Warrior could unintentionally make matters worse by rousing the beast from his lair and then being instantly killed. If you truly wish to join the expedition, you must complete a task given by the guardians and prove your ability to confront Antharas. Once you do that, you'll be able to pass the force field that guards the lair of Antharas. "Tell me more about the force field."
[30753-04.htm] Gabrielle: In ancient times, when Shilen's minions fought the gods of the heavens, the dragon Antharas was gravely injured and came to rest in the middle of what is now called Dragon Valley in the Giran region. He fell into a deep sleep for thousands of years as his injuries healed. The guardians of the seal, along with the great Sorcerer Dasparion, created a strong force field to restrict the power of the sleeping Antharas. This barrier keeps out intruders that might awaken the sleeping dragon. For the last several hundred years, the guardians of the seal have watched over this force field and prevented any disturbance of the beast. If you wish to join in the expedition to conquer Antharas, you must pass the test of the guardians. This test is very difficult and could even cost you your life. It is a hard decision, but there is no other way to defeat the dragon. "I will take the test."
[30753-05.htm] Gabrielle: You must visit each guardian of the seal and perform whatever task they ask of you. The guardians are quite reserved, but are brothers joined in strong union with a clear sense of mission. Show them this feather and they will know of your intention to join the expedition against Antharas. There are a total of four guardians that you must meet. They are Magister Kaiena at the Ivory Tower, Prefect Chakiris in Hunters Village, Master Kendra and High Priest Orven of Aden Castle Town. If you complete the tasks that they give you and bring the Marks of Watchman, I'll show you how to enter the force field that surrounds the lair of Antharas. You must realize that these tasks will be difficult. You should consider asking any comrades you may have to join our expedition. Choose only those that you can live and die with. If you would trust them with your life, tell them to come and visit me. I will also give them this test and my feather mark. Remember, from ancient times warriors have learned that battles are won when comrades join together to defeat a common enemy. May the divine protection of Einhasad be with you... "Tell me about the guardians."
[30753-06.htm] Gabrielle: Time is short! You must hurry and meet each of the guardians. When you receive the Mark of Watchman from each of them and return to me, I shall give you the Herald of Slayer and show you how to enter the lair of Antharas. "Tell me about the guardians."
[30753-07.htm] Gabrielle: Originally seventeen guardians participated in the sealing of Antharas. Seven Humans, three Elves, five Dwarven Artisans and two Orc soldiers. The Dwarves formed the Gray Pillar Guild and taught generations of guild members how to guard the pillar that supports the force field. The three Elves were sisters named Shyslassys, Gorr and Baraham. They consumed runestones containing the power of the force field and chose to become evil beings themselves. Three of the seven Humans sold their souls to Dasparion to achieve immortality and became the "Watchmen of the Land Dragon." The other four Humans passed on the role of watching Antharas to their children. I am one of them. You must meet the descendents of the original seventeen guardians. They are Magister Kaiena at the Ivory Tower of Oren, Prefect Chakiris in Hunters Village, Master Kendra and High Priest Orven of Aden Castle Town. Complete the tasks that they have for you and obtain the Marks of Watchman.
[30753-08.htm] Gabrielle: We have high expectations for you. If your comrades are having trouble gaining the recognition of each guardian and obtaining the marks, it is your duty to help them. Once they have collected four marks each, you will be ready to proceed to the next stage of the trial. "Tell me about the next stage."
[30753-09.htm] Gabrielle: You have obtained the recognition of the four guardians. This demonstrates that you have the strength to confront and fight Antharas. Only one task awaits before you can set out to slay the dragon. Evil forces have appeared, threatening the force field that restrains Antharas. Those evildoers intend to use a device called an Abyss Jewel to gather dark magic and destroy the force field. You must go to Warehouse Chief Moke of Gludin Town and Blacksmith Helton of Oren Castle Town. They are guardians of the seal. They will be able to tell you more of the details of this nefarious plot. Show them the feather mark that I have given you. They will recognize it. This mission is vital to the expedition to destroy Antharas. If you fail and the force field is destroyed, Antharas will be undefeatable!
[30753-10.htm] Gabrielle: Please, you must hurry! Time is of the essence. If the aura collapses the beast will be released!
[30753-11.htm] Gabrielle: Thanks to you, the evil plan to free Antharas has been thwarted. Unfortunately the conspirators escaped, but for the time being they will not threaten us again. I hereby bestow upon you the Herald of Slayer. You must now confront the tyrant of the land, the disaster of Giran, the evil dragon Antharas. Time is of the essence. You must travel to the entrance of Dragon Valley and meet Land Dragon Watcher Gilmore there. Don't let his wicked appearance frighten you. He is one of the original 17 guardians that sealed Antharas. He became an undead in order to honorably fulfill his role. He will show you how to enter the lair of Antharas. May the blessings of Einhasad be with you!
[30753-12.htm] Gabrielle: At the entrance to Dragon Valley you will find Land Dragon Watchman Gilmore. Don't be put off by his wicked appearance. He is one of the original 17 guardians that sealed Antharas. He became an undead in order to faithfully carry out his duty. He will show you how to enter the lair of Antharas.
[30753-13.htm] Gabrielle: It's the place that Land Dragon Watchman Gilmore spoke of. It is the central part of the aura that restrains Antharas in Dragon Valley. Our time is very limited. You must hurry and destroy the Abyss Jewel!
[30754-01.htm] Antharas Watchman Gilmore: Gabrielle leads the seal watchmen. She can be found in Giran Castle Town. Before you make up your mind, you must consider the fact that any battle with Antharas will be to the death. If you are determined to meet Antharas, you should first meet Gabrielle and the other watchmen and collect their marks. When you have collected all the marks of the watchmen, Gabrielle will give you a Herald of a Slayer. Bring it to me.
[30754-02.htm] Antharas Watchman Gilmore: Have you heard of the Abyss Jewel? I heard that the third Abyss Jewel is in this valley! You must destroy it before you confront Antharas. It will diminish his strength! "Where is the Abyss Jewel?"
[30754-03.htm] Antharas Watchman Gilmore: The Abyss Jewel is guarded by cave keepers and cave maidens. Through their sorcery they have made the jewel invisible... As you kill them, the power of their sorcery will be diminished and the jewel will become visible once more. You must destroy it and then find Antharas Watchman Theodric. He will give you a Portal Stone. You will find him at the entrance of the Lair of Antharas, in the deepest part of Dragon Valley. If you plan to take any friends with you, send them to see me first. They will need Portal Stones as well.
[30754-04.htm] Antharas Watchman Gilmore: There is an evil power growing in the valley. Unless you destroy the Abyss Jewel immediately, the beast will awaken! You must kill all of the cave keepers and cave maidens and then destroy the Abyss Jewel! Take what remains of the jewel to Antharas Watchman Theodric. You will find him at the entrance of the Lair of Antharas in the deepest part of Dragon Valley.
[30754-05.htm] Antharas Watchman Gilmore: Have you destroyed the jewel? Excellent! Now, take the fragment to Antharas Watchman Theodric. You will find him at the entrance of the Lair of Antharas in the deepest part of Dragon Valley.
[30755-01.htm] Antharas Watchman Theodric: If you wish to confront Antharas, first you must go and see Gabrielle. She is the leader of the Seal Watchmen. You will find her in Giran Castle Town. Obtain the Herald of Slayer from her, bring it back to me and I will give you a Portal Stone...
[30755-02.htm] Antharas Watchman Theodric: Yes, I see that you obtained the Herald of Slayer from Gabrielle. Unfortunately I can't give you a Portal Stone right now. You see, we are in the midst of a critical situation! The force field that is restraining Antharas is being compromised. Please go and see Antharas Watchman Gilmore at the entrance to Dragon Valley. He will be able to tell you more about the situation. When we get the shield restored I will give you a Portal Stone...
[30755-03.htm] Antharas Watchman Theodric: ...You must find the Abyss Jewel and destroy it! Kill the cave keepers and cave maidens that have rendered the jewel invisible with their magic. After they are dead the jewel will re-appear. Please hurry! There is not a moment to lose!
[30755-04.htm] Antharas Watchman Theodric: Is this a fragment of the Abyss Jewel? I'll give it to the Dwarves of the Gray Pillar Guild! They will melt it to nothing in their supreme furnace! The wicked followers of Antharas will never be able to use it to commit evil acts again. Now you must confront Antharas. You have not gotten much encouragement from me up to now, have you? Well, my friend, the fact that you are still breathing is a sign of your indomitable resolve... So, I won't stand in your way. Good luck! "I am ready to confront Antharas!"
[30755-05.htm] Antharas Watchman Theodric: Take this Portal Stone and find the heart of warding that is located in the deepest part of the cave. Activate the heart of warding and you will be able to enter the lair of the dragon. Your fate is now in the hands of the gods... I will pray that Einhasad watch over you.
[30851-01.htm] Master Kendra: Please come in! I trush Gabrielle's judgement but still I'd like to test you myself. I don't want the responsibility of a needless death on my conscience. If you wish to receive my Mark of Watchman, go to the Forest of Mirrors and kill Harit Lizardman matriarchs and shamans and bring me proof. They aren't as formidable as Antharas but are worthy opponents. You should gather a party to confront the lizardmen.
[30851-02.htm] Master Kendra: Yes, this is proof, all right! Here is my Mark of Watchman. Once you obtain the marks from the other guardians, you will be qualified to confront Antharas. Unfortunately qualifying does not assure success in your mission. I fear that your reckless behavior and ignorance will be the end of you.
[30851-03.htm] Master Kendra: You still must meet other guardians... Your skills will serve you well with them... What comes after is another matter...
[30851-04.htm] Master Kendra: One by one, brave warriors prepare to throw themselves into the jaws of the beast... Oh well, the sooner you get started the better your chances will be. But... Gabrielle is looking for all those who hold the marks of watchman! Something must have happened!
[30857-01.htm] High Priest Orven: Ah, the Feather of Gabrielle... So you seek the Mark of Watchman? It pains me to have seen so many fine young warriors throw themselves into the jaws of that beast Antharas... What a waste... We have suffered long under that tyrant. So you think that you are the one to finally kill it? It is said that the gods sent Antharas to torment us as punishment for the evil actions of our ancestors. Have you heard this story? Before the force field was set up to confine Antharas, our ancestors sacrificed virgins to the dragon every year. To mock us, Antharas used black magic to transform the virgins into evil creatures called bloody queens. To this day, those wretched beings have cursed the Humans that sacrificed them. If you wish to confront Antharas, you must first redeem our selfish ancestors. East of this village you will find an area called the Seal of Shilen. You must kill the bloody queens that roam that area. Once you do that, the malignant spirits of sacrifice will appear. Give them the repose of death and bring back the remains of sacrificed virgins. When you do that, I shall perform the repose of soul mass to give eternal peace to the souls of the virgins.
[30857-02.htm] High Priest Orven: You have accomplished much... Hopefully your efforts will begin to soothe the resentment of those who were punished for the evil actions of our ancestors... I hereby bestow upon you the Mark of Watchman. Even if you do not survive your encounter with Antharas, you will enter the next world having redeemed the sins of our ancestors. May the light of Einhasad guide your way.
[30857-03.htm] High Priest Orven: This Mark of Watchman alone does not qualify you to confront Antharas. You must still meet the other guardians of whom Gabrielle spoke. Receive their recognition and obtain their marks of watchman. When you receive all the marks you will receive the Herald of Slayer and be qualified to meet Antharas. May the light of Einhasad guide your way...
[30857-04.htm] High Priest Orven: The gods challenge us with yet another trial as we prepare to confront Antharas. We must postpone our attack. Return to Gabrielle, she will tell you all about what has happened.
Исходник условий и наград (Java)
/*
* Copyright (c) 2013 L2jMobius
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
* IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
package quests.Q00337_AudienceWithTheLandDragon;
import org.l2jmobius.gameserver.entity.actor.Npc;
import org.l2jmobius.gameserver.entity.actor.Player;
import org.l2jmobius.gameserver.mechanics.script.Quest;
import org.l2jmobius.gameserver.mechanics.script.QuestSound;
import org.l2jmobius.gameserver.mechanics.script.QuestState;
import org.l2jmobius.gameserver.mechanics.script.State;
public class Q00337_AudienceWithTheLandDragon extends Quest
{
// NPCs
private static final int GABRIELLE = 30753;
private static final int ORVEN = 30857; // 1
private static final int KENDRA = 30851; // 2
private static final int CHAKIRIS = 30705; // 3
private static final int KAIENA = 30720; // 4
private static final int MOKE = 30498; // 1st abyssal
private static final int HELTON = 30678; // 2nd abyssal
private static final int GILMORE = 30754; // 3rd abyssal
private static final int THEODRIC = 30755;
// Monsters
private static final int BLOOD_QUEEN = 18001; // 1
private static final int SACRIFICE_OF_THE_SACRIFICED = 27171; // 1
private static final int HARIT_LIZARDMAN_SHAMAN = 20644; // 2
private static final int HARIT_LIZARDMAN_MATRIARCH = 20645; // 2
private static final int HARIT_LIZARDMAN_ZEALOT = 27172; // 2
private static final int KRANROT = 20650; // 3
private static final int HAMRUT = 20649; // 3
private static final int MARSH_DRAKE = 20680; // 4
private static final int MARSH_STALKER = 20679; // 4
private static final int ABYSSAL_JEWEL_1 = 27165; // 1st abyssal
private static final int JEWEL_GUARDIAN_MARA = 27168;
private static final int ABYSSAL_JEWEL_2 = 27166; // 2nd abyssal
private static final int JEWEL_GUARDIAN_MUSFEL = 27169;
private static final int CAVE_MAIDEN_1 = 20134; // 3rd abyssal
private static final int CAVE_MAIDEN_2 = 20287;
private static final int CAVE_KEEPER_1 = 20246;
private static final int CAVE_KEEPER_2 = 20277;
private static final int ABYSSAL_JEWEL_3 = 27167;
private static final int JEWEL_GUARDIAN_PYTON = 27170;
// Items
private static final int FEATHER_OF_GABRIELLE = 3852;
private static final int MARK_OF_WATCHMAN = 3864;
private static final int REMAINS_OF_SACRIFIED = 3857; // 1
private static final int TOTEM_OF_LAND_DRAGON = 3858; // 2
private static final int KRANROT_SKIN = 3855; // 3
private static final int HAMRUT_LEG = 3856; // 3
private static final int MARSH_DRAKE_TALONS = 3854; // 4
private static final int MARSH_STALKER_HORN = 3853; // 4
private static final int FIRST_FRAGMENT_OF_ABYSS_JEWEL = 3859; // 1st abyssal
private static final int MARA_FANG = 3862;
private static final int SECOND_FRAGMENT_OF_ABYSS_JEWEL = 3860; // 2nd abyssal
private static final int MUSFEL_FANG = 3863;
private static final int HERALD_OF_SLAYER = 3890;
private static final int THIRD_FRAGMENT_OF_ABYSS_JEWEL = 3861; // 3rd abyssal
private static final int PORTAL_STONE = 3865;
// Variables
private static boolean _jewel1 = false;
private static boolean _jewel2 = false;
private static boolean _jewel3 = false;
// @formatter:off
private static final int[][] DROPS_ON_KILL =
{
// 0..npcId, 1..cond, 2..cond2, 3..chance, 4..itemId
{SACRIFICE_OF_THE_SACRIFICED, 1, 1, REMAINS_OF_SACRIFIED},
{HARIT_LIZARDMAN_ZEALOT, 1, 2, TOTEM_OF_LAND_DRAGON},
{KRANROT, 1, 3, KRANROT_SKIN},
{HAMRUT, 1, 3, HAMRUT_LEG},
{MARSH_DRAKE, 1, 4, MARSH_DRAKE_TALONS},
{MARSH_STALKER, 1, 4, MARSH_STALKER_HORN},
{JEWEL_GUARDIAN_MARA, 2, 5, MARA_FANG},
{JEWEL_GUARDIAN_MUSFEL, 2, 6, MUSFEL_FANG}
};
private static final int[][] DROP_ON_ATTACK =
{
// 0..npcId, 1..cond, 2..cond2, 3..itemId, 4..amount of mobs, 5..mob
{ABYSSAL_JEWEL_1, 2, 5, FIRST_FRAGMENT_OF_ABYSS_JEWEL, 20, JEWEL_GUARDIAN_MARA},
{ABYSSAL_JEWEL_2, 2, 6, SECOND_FRAGMENT_OF_ABYSS_JEWEL, 20, JEWEL_GUARDIAN_MUSFEL},
{ABYSSAL_JEWEL_3, 4, 7, THIRD_FRAGMENT_OF_ABYSS_JEWEL, 3, JEWEL_GUARDIAN_PYTON},
};
// @formatter:on
public Q00337_AudienceWithTheLandDragon()
{
super(337, "Audience with the Land Dragon");
registerQuestItems(FEATHER_OF_GABRIELLE, MARK_OF_WATCHMAN, REMAINS_OF_SACRIFIED, TOTEM_OF_LAND_DRAGON, KRANROT_SKIN, HAMRUT_LEG, MARSH_DRAKE_TALONS, MARSH_STALKER_HORN, FIRST_FRAGMENT_OF_ABYSS_JEWEL, MARA_FANG, SECOND_FRAGMENT_OF_ABYSS_JEWEL, MUSFEL_FANG, HERALD_OF_SLAYER, THIRD_FRAGMENT_OF_ABYSS_JEWEL);
addStartNpc(GABRIELLE);
addTalkId(GABRIELLE, ORVEN, KENDRA, CHAKIRIS, KAIENA, MOKE, HELTON, GILMORE, THEODRIC);
addAttackId(ABYSSAL_JEWEL_1, ABYSSAL_JEWEL_2, ABYSSAL_JEWEL_3);
addKillId(BLOOD_QUEEN, SACRIFICE_OF_THE_SACRIFICED, HARIT_LIZARDMAN_SHAMAN, HARIT_LIZARDMAN_MATRIARCH, HARIT_LIZARDMAN_ZEALOT, KRANROT, HAMRUT, MARSH_DRAKE, MARSH_STALKER, JEWEL_GUARDIAN_MARA, JEWEL_GUARDIAN_MUSFEL, CAVE_MAIDEN_1, CAVE_MAIDEN_2, CAVE_KEEPER_1, CAVE_KEEPER_2, JEWEL_GUARDIAN_PYTON);
}
@Override
public String onEvent(String event, Npc npc, Player player)
{
String htmltext = event;
final QuestState st = getQuestState(player, false);
if (st == null)
{
return htmltext;
}
switch (event)
{
case "30753-05.htm":
{
st.startQuest();
st.set("drop1", "1");
st.set("drop2", "1");
st.set("drop3", "1");
st.set("drop4", "1");
giveItems(player, FEATHER_OF_GABRIELLE, 1);
break;
}
case "30753-09.htm":
{
if (getQuestItemsCount(player, MARK_OF_WATCHMAN) >= 4)
{
st.setCond(2);
st.set("drop5", "2");
st.set("drop6", "2");
playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE);
takeItems(player, MARK_OF_WATCHMAN, 4);
}
else
{
htmltext = null;
}
break;
}
case "30755-05.htm":
{
if (hasQuestItems(player, THIRD_FRAGMENT_OF_ABYSS_JEWEL))
{
takeItems(player, THIRD_FRAGMENT_OF_ABYSS_JEWEL, 1);
takeItems(player, HERALD_OF_SLAYER, 1);
giveItems(player, PORTAL_STONE, 1);
st.exitQuest(true, true);
}
else
{
htmltext = null;
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(Npc npc, Player player)
{
String htmltext = getNoQuestMsg(player);
final QuestState st = getQuestState(player, true);
switch (st.getState())
{
case State.CREATED:
{
htmltext = (player.getLevel() < 50) ? "30753-02.htm" : "30753-01.htm";
break;
}
case State.STARTED:
{
final int cond = st.getCond();
switch (npc.getId())
{
case GABRIELLE:
{
if (cond == 1)
{
htmltext = (getQuestItemsCount(player, MARK_OF_WATCHMAN) < 4) ? "30753-06.htm" : "30753-08.htm";
}
else if (cond == 2)
{
if (getQuestItemsCount(player, MARK_OF_WATCHMAN) < 2)
{
htmltext = "30753-10.htm";
}
else
{
htmltext = "30753-11.htm";
st.setCond(3, true);
takeItems(player, FEATHER_OF_GABRIELLE, 1);
takeItems(player, MARK_OF_WATCHMAN, 1);
giveItems(player, HERALD_OF_SLAYER, 1);
}
}
else if (cond == 3)
{
htmltext = "30753-12.htm";
}
else if (cond == 4)
{
htmltext = "30753-13.htm";
}
break;
}
case ORVEN:
{
if (cond == 1)
{
if (st.getInt("drop1") == 1)
{
if (hasQuestItems(player, REMAINS_OF_SACRIFIED))
{
htmltext = "30857-02.htm";
st.unset("drop1");
playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE);
takeItems(player, REMAINS_OF_SACRIFIED, 1);
giveItems(player, MARK_OF_WATCHMAN, 1);
}
else
{
htmltext = "30857-01.htm";
}
}
else if (getQuestItemsCount(player, MARK_OF_WATCHMAN) < 4)
{
htmltext = "30857-03.htm";
}
else
{
htmltext = "30857-04.htm";
}
}
break;
}
case KENDRA:
{
if (cond == 1)
{
if (st.getInt("drop2") == 1)
{
if (hasQuestItems(player, TOTEM_OF_LAND_DRAGON))
{
htmltext = "30851-02.htm";
st.unset("drop2");
playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE);
takeItems(player, TOTEM_OF_LAND_DRAGON, 1);
giveItems(player, MARK_OF_WATCHMAN, 1);
}
else
{
htmltext = "30851-01.htm";
}
}
else if (getQuestItemsCount(player, MARK_OF_WATCHMAN) < 4)
{
htmltext = "30851-03.htm";
}
else
{
htmltext = "30851-04.htm";
}
}
break;
}
case CHAKIRIS:
{
if (cond == 1)
{
if (st.getInt("drop3") == 1)
{
if (hasQuestItems(player, KRANROT_SKIN, HAMRUT_LEG))
{
htmltext = "30705-02.htm";
st.unset("drop3");
playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE);
takeItems(player, KRANROT_SKIN, 1);
takeItems(player, HAMRUT_LEG, 1);
giveItems(player, MARK_OF_WATCHMAN, 1);
}
else
{
htmltext = "30705-01.htm";
}
}
else if (getQuestItemsCount(player, MARK_OF_WATCHMAN) < 4)
{
htmltext = "30705-03.htm";
}
else
{
htmltext = "30705-04.htm";
}
}
break;
}
case KAIENA:
{
if (cond == 1)
{
if (st.getInt("drop4") == 1)
{
if (hasQuestItems(player, MARSH_DRAKE_TALONS, MARSH_STALKER_HORN))
{
htmltext = "30720-02.htm";
st.unset("drop4");
playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE);
takeItems(player, MARSH_DRAKE_TALONS, 1);
takeItems(player, MARSH_STALKER_HORN, 1);
giveItems(player, MARK_OF_WATCHMAN, 1);
}
else
{
htmltext = "30720-01.htm";
}
}
else if (getQuestItemsCount(player, MARK_OF_WATCHMAN) < 4)
{
htmltext = "30720-03.htm";
}
else
{
htmltext = "30720-04.htm";
}
}
break;
}
case MOKE:
{
if (cond == 2)
{
switch (st.getInt("drop5"))
{
case 2:
{
htmltext = "30498-01.htm";
st.set("drop5", "1");
break;
}
case 1:
{
if (hasQuestItems(player, FIRST_FRAGMENT_OF_ABYSS_JEWEL, MARA_FANG))
{
htmltext = "30498-03.htm";
st.unset("drop5");
playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE);
takeItems(player, FIRST_FRAGMENT_OF_ABYSS_JEWEL, 1);
takeItems(player, MARA_FANG, 1);
giveItems(player, MARK_OF_WATCHMAN, 1);
}
else
{
htmltext = "30498-02.htm";
}
break;
}
case 0:
{
if (getQuestItemsCount(player, MARK_OF_WATCHMAN) < 2)
{
htmltext = "30498-04.htm";
}
else
{
htmltext = "30498-05.htm";
}
break;
}
}
}
break;
}
case HELTON:
{
if (cond == 2)
{
switch (st.getInt("drop6"))
{
case 2:
{
htmltext = "30678-01.htm";
st.set("drop6", "1");
break;
}
case 1:
{
if (hasQuestItems(player, SECOND_FRAGMENT_OF_ABYSS_JEWEL, MUSFEL_FANG))
{
htmltext = "30678-03.htm";
st.unset("drop6");
playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE);
takeItems(player, SECOND_FRAGMENT_OF_ABYSS_JEWEL, 1);
takeItems(player, MUSFEL_FANG, 1);
giveItems(player, MARK_OF_WATCHMAN, 1);
}
else
{
htmltext = "30678-02.htm";
}
break;
}
case 0:
{
if (getQuestItemsCount(player, MARK_OF_WATCHMAN) < 2)
{
htmltext = "30678-04.htm";
}
else
{
htmltext = "30678-05.htm";
}
break;
}
}
}
break;
}
case GILMORE:
{
if ((cond == 1) || (cond == 2))
{
htmltext = "30754-01.htm";
}
else if (cond == 3)
{
htmltext = "30754-02.htm";
st.setCond(4, true);
st.set("drop7", "1");
}
else if (cond == 4)
{
htmltext = (!hasQuestItems(player, THIRD_FRAGMENT_OF_ABYSS_JEWEL)) ? "30754-04.htm" : "30754-05.htm";
}
break;
}
case THEODRIC:
{
if ((cond == 1) || (cond == 2))
{
htmltext = "30755-01.htm";
}
else if (cond == 3)
{
htmltext = "30755-02.htm";
}
else if (cond == 4)
{
htmltext = (!hasQuestItems(player, THIRD_FRAGMENT_OF_ABYSS_JEWEL)) ? "30755-03.htm" : "30755-04.htm";
}
break;
}
}
break;
}
}
return htmltext;
}
@Override
public void onAttack(Npc npc, Player attacker, int damage, boolean isPet)
{
final QuestState st = getQuestState(attacker, false);
if ((st == null) || !st.isStarted())
{
return;
}
final int npcId = npc.getId();
for (int[] npcInfo : DROP_ON_ATTACK)
{
if (npcInfo[0] != npcId)
{
continue;
}
if (npcInfo[1] != st.getCond())
{
break;
}
final double percentHp = ((npc.getCurrentHp() + damage) * 100) / npc.getMaxHp();
// reward jewel fragment
if (percentHp < 33)
{
if ((getRandom(100) < 33) && (st.getInt("drop" + npcInfo[2]) == 1))
{
final int itemId = npcInfo[3];
if (!hasQuestItems(attacker, itemId))
{
giveItems(attacker, itemId, 1);
playSound(attacker, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
}
}
// spawn monsters and register spawned
else if (percentHp < 66)
{
if ((getRandom(100) < 33) && (st.getInt("drop" + npcInfo[2]) == 1))
{
boolean spawn;
if (npcId == ABYSSAL_JEWEL_3)
{
spawn = _jewel3;
}
else if (npcId == ABYSSAL_JEWEL_2)
{
spawn = _jewel2;
}
else
{
spawn = _jewel1;
}
if (spawn)
{
for (int i = 0; i < npcInfo[4]; i++)
{
final Npc mob = addSpawn(npcInfo[5], npc.getX() + getRandom(-150, 150), npc.getY() + getRandom(-150, 150), npc.getZ(), npc.getHeading(), true, 60000);
mob.setRunning();
mob.asAttackable().addDamageHate(attacker, 0, 500);
mob.getAI().setIntentionAttack(attacker);
}
if (npcId == ABYSSAL_JEWEL_3)
{
_jewel3 = false;
}
else if (npcId == ABYSSAL_JEWEL_2)
{
_jewel2 = false;
}
else
{
_jewel1 = false;
}
}
}
}
// reset spawned if npc regenerated to 90% HP and more
else if (percentHp > 90)
{
if (npcId == ABYSSAL_JEWEL_3)
{
_jewel3 = true;
}
else if (npcId == ABYSSAL_JEWEL_2)
{
_jewel2 = true;
}
else
{
_jewel1 = true;
}
}
break;
}
}
@Override
public void onKill(Npc npc, Player player, boolean isPet)
{
final QuestState st = getQuestState(player, false);
if ((st == null) || !st.isStarted())
{
return;
}
final int cond = st.getCond();
final int npcId = npc.getId();
switch (npcId)
{
case SACRIFICE_OF_THE_SACRIFICED: // Orven's request
case HARIT_LIZARDMAN_ZEALOT: // Kendra's request
case KRANROT:// Chakiris's request
case HAMRUT:
case MARSH_DRAKE:// Kaiena's request
case MARSH_STALKER:
case JEWEL_GUARDIAN_MARA:// Moke's request
case JEWEL_GUARDIAN_MUSFEL:// Helton's request
{
for (int[] npcInfo : DROPS_ON_KILL)
{
if (npcInfo[0] != npcId)
{
continue;
}
if ((npcInfo[1] == cond) && (st.getInt("drop" + npcInfo[2]) == 1))
{
final int itemId = npcInfo[3];
if (!hasQuestItems(player, itemId))
{
giveItems(player, itemId, 1);
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
}
break;
}
break;
}
case BLOOD_QUEEN:// Orven's request
{
if ((cond == 1) && (st.getInt("drop1") == 1) && !hasQuestItems(player, REMAINS_OF_SACRIFIED))
{
for (int i = 0; i < 8; i++)
{
addSpawn(SACRIFICE_OF_THE_SACRIFICED, npc.getX() + getRandom(-100, 100), npc.getY() + getRandom(-100, 100), npc.getZ(), npc.getHeading(), true, 60000);
}
}
break;
}
case HARIT_LIZARDMAN_SHAMAN:// Kendra's request
case HARIT_LIZARDMAN_MATRIARCH:
{
if ((cond == 1) && (getRandom(5) == 0) && (st.getInt("drop2") == 1) && !hasQuestItems(player, TOTEM_OF_LAND_DRAGON))
{
for (int i = 0; i < 3; i++)
{
addSpawn(HARIT_LIZARDMAN_ZEALOT, npc.getX() + getRandom(-50, 50), npc.getY() + getRandom(-50, 50), npc.getZ(), npc.getHeading(), true, 60000);
}
}
break;
}
case CAVE_MAIDEN_1:// Gilmore's request
case CAVE_MAIDEN_2:
case CAVE_KEEPER_1:
case CAVE_KEEPER_2:
{
if ((cond == 4) && (getRandom(5) == 0) && !hasQuestItems(player, THIRD_FRAGMENT_OF_ABYSS_JEWEL))
{
addSpawn(ABYSSAL_JEWEL_3, npc.getX() + getRandom(-50, 50), npc.getY() + getRandom(-50, 50), npc.getZ(), npc.getHeading(), true, 60000);
}
break;
}
}
}
}