ZURSULUS L2

Test of Sagittarius

ID
224
Название
Test of Sagittarius
start_npcs_json
[30702]
npc_ids_json
[20079,20080,20081,20082,20084,20086,20089,20090,20230,20232,20233,20234,20269,20270,20551,20563,20577,20578,20579,20580,20581,20582,27090,30514,30626,30653,30702,30717]
constants_json
{"BERNARD":30702,"HAMIL":30626,"SIR_ARON_TANFORD":30653,"VOKIAN":30514,"GAUEN":30717,"ANT":20079,"ANT_CAPTAIN":20080,"ANT_OVERSEER":20081,"ANT_RECRUIT":20082,"ANT_PATROL":20084,"ANT_GUARD":20086,"NOBLE_ANT":20089,"NOBLE_ANT_LEADER":20090,"BREKA_ORC_SHAMAN":20269,"BREKA_ORC_OVERLORD":20270,"MARSH_STAKATO_WORKER":20230,"MARSH_STAKATO_SOLDIER":20232,"MARSH_STAKATO_DRONE":20234,"MARSH_SPIDER":20233,"ROAD_SCAVENGER":20551,"MANASHEN_GARGOYLE":20563,"LETO_LIZARDMAN":20577,"LETO_LIZARDMAN_ARCHER":20578,"LETO_LIZARDMAN_SOLDIER":20579,"LETO_LIZARDMAN_WARRIOR":20580,"LETO_LIZARDMAN_SHAMAN":20581,"LETO_LIZARDMAN_OVERLORD":20582,"SERPENT_DEMON_KADESH":27090,"BERNARD_INTRODUCTION":3294,"HAMIL_LETTER_1":3295,"HAMIL_LETTER_2":3296,"HAMIL_LETTER_3":3297,"HUNTER_RUNE_1":3298,"HUNTER_RUNE_2":3299,"TALISMAN_OF_KADESH":3300,"TALISMAN_OF_SNAKE":3301,"MITHRIL_CLIP":3302,"STAKATO_CHITIN":3303,"REINFORCED_BOWSTRING":3304,"MANASHEN_HORN":3305,"BLOOD_OF_LIZARDMAN":3306,"CRESCENT_MOON_BOW":3028,"WOODEN_ARROW":17,"MARK_OF_SAGITTARIUS":3293,"DIMENSIONAL_DIAMOND":7562}
Статус разбора
metadata_only; dynamic Java conditions/rewards retained in source; unresolved starts: []
Источник
game/data/scripts/quests/Q00224_TestOfSagittarius/Q00224_TestOfSagittarius.java

NPC квеста

IDНазваниеСтарт квестаУровень
20079AntНет30
20080Ant CaptainНет31
20081Ant OverseerНет32
20082Ant RecruitНет33
20084Ant PatrolНет34
20086Ant GuardНет35
20089Noble AntНет37
20090Noble Ant LeaderНет38
20230Marsh Stakato WorkerНет31
20232Marsh Stakato SoldierНет33
20233Marsh SpiderНет34
20234Marsh Stakato DroneНет35
20269Breka Orc ShamanНет34
20270Breka Orc OverlordНет35
20551Road ScavengerНет37
20563Manashen GargoyleНет40
20577Leto LizardmanНет35
20578Leto Lizardman ArcherНет36
20579Leto Lizardman SoldierНет37
20580Leto Lizardman WarriorНет38
20581Leto Lizardman ShamanНет39
20582Leto Lizardman OverlordНет40
27090Serpent Demon KadeshНет41
30514VokianНет70
30626HamilНет70
30653Sir Aron TanfordНет70
30702BernardДа70
30717GauenНет70

Условия уровней: выражения из Java

else if (player.getLevel() < 39)

Выдача предметов, адены и опыта: выражения из Java

giveItems(player, BERNARD_INTRODUCTION, 1);
giveItems(player, DIMENSIONAL_DIAMOND, DF_REWARD_39.get(player.getPlayerClass().getId()));
giveItems(player, HAMIL_LETTER_1, 1);
giveItems(player, HAMIL_LETTER_2, 1);
giveItems(player, HAMIL_LETTER_3, 1);
giveItems(player, MARK_OF_SAGITTARIUS, 1);
addExpAndSp(player, 54726, 20250);
giveItems(player, CRESCENT_MOON_BOW, 1);
giveItems(player, WOODEN_ARROW, 10);
giveItems(player, HUNTER_RUNE_1, 1);
giveItems(player, HUNTER_RUNE_2, 1);
giveItems(player, TALISMAN_OF_SNAKE, 1);
giveItems(player, STAKATO_CHITIN, 1);
giveItems(player, REINFORCED_BOWSTRING, 1);
giveItems(player, MITHRIL_CLIP, 1);
giveItems(player, MANASHEN_HORN, 1);
giveItems(player, BLOOD_OF_LIZARDMAN, 1);
giveItems(player, TALISMAN_OF_KADESH, 1);

Квесты содержат динамические условия Java. Выражения выдачи включают промежуточные предметы, варианты и случайные награды; это не гарантированная награда. Константы приведены выше. Полные условия — в исходнике.

Тексты квеста

[30514-01.htm] Prefect Vokian: So, you work for Hamil! He saved my life in a battle with the medusas... I can't deny him anything... Recently someone who called himself Hunter Brankel came to me and asked for help. He knew quite a bit about the Breka Orcs... When he left he set off for the campsite of the Breka tribe. Explain the situation [30514-02.htm] Prefect Vokian: Breka Orcs! Those filthy betrayers degrade the dignity of Orcs! They should all be sent to hell painfully! You say that the Breka tribe has been given the serpent's egg from the devil's nest? Yes, that stands to reason as their totem was a coiled serpent... Seer Manakia tells me that the Breka Orcs are preparing for a big ceremony right now... Perhaps the serpent's egg has something to do with it! Please, you must go there, find out whatever you can and then kill every single Chief and Shaman of the Breka Orcs! If you can find a Serpent-Shaped Charm, bring it back to me. [30514-03.htm] Prefect Vokian: Mercy is a luxury that filthy betrayers can ill afford! The Chiefs and Magisters of Breka Orcs are the ringleaders of the corruption! You should be able to extract some information from them! If you should find a snake-shaped amulet please bring it to me! [30514-04.htm] Prefect Vokian: This amulet will summon the spirits of the totem! Could those filthy Breka Orcs be trying to revive their long-dead totem spirit? Those foolish pigs have been deceived by the heathens into believing that hatching the devil serpent will restore the spirit of their totem! I know that Brankel would not have gone along with this. Could these runes be a message from him? I can't read this, but Hamil knows it well. Take it to him. I wish you luck! [30514-05.htm] Prefect Vokian: Please tell Hamil that I wish to see him again on the battlefield. I cannot repay my debt to him this way. [30626-01.htm] Sagittarius Hamil: Nice to meet you, young Warrior. Did Bernard send you here? We are in need of help. Your arrival is most timely. There is evil afoot in the southern part of the kingdom. The wasteland ants are on the move, and from the east, the Breka Orcs are restive... On top of all this, something weird is happening at the Cruma Tower. The Dwarves are all aflutter about it... Something has awoken beneath the tower... I have the feeling that our troubles have just begun... I believe there is more to come, something even bigger.... If only we could find Brankel, we would have more precise information... Ask about Brankel [30626-02.htm] Sagittarius Hamil: Brankel was sent here before me and left before I arrived. Before leaving he entrusted a letter with Merchant Pano addressed to me. I sensed danger even before Brankel was sent here. "What does the letter say?" [30626-03.htm] Sagittarius Hamil: I will read the letter to you: I am leaving now for the Ant's Nest and I'm not sure if I shall return... I will try to leave clues for you to follow me. Please hurry, brother. Brankel ...I wish I could follow him right away, but I am busy defending the village from the Leto Lizardmen... Dammit! Please go to the Wastelands and try to find Brankel. If you are unable to find him, look for the traces he said he would leave. The wastelands guardian Aron Tanford is expecting you at the southern entrance of the Wastelands. You must leave now! [30626-04.htm] Sagittarius Hamil: There is no time to lose! You must go and meet Aron Tanford immediately! [30626-05.htm] Sagittarius Hamil: Ah, hunter's runes written on the pebbles...? Yes, this is the secret code used by hunters. We must place the pebbles in order... Place the Hunter's Runes [30626-06.htm] Sagittarius Hamil: Hmm... Let's see... Ant's Nest... deep... black serpent... egg..., dark, no, abyss...!? child of abyss...! Hmm, this is...! Yes, here we go! 'In the hands of the children of abyss'... 'to the Breka Orcs'... 'the black serpent's egg' to the 'children of abyss'...? The castle of the evil Beleth once stood in the present-day Wastelands... This is why there are so many malevolent artifacts there. Perhaps the black egg that Brankel mentioned has something to do with Beleth... Ask about the Children of Abyss [30626-07.htm] Sagittarius Hamil: Those heathen followers of the Goddess of Destruction. Or should I say 'The children of Shilen'... Bah! I am sure that race is behind the mischief that has been going on lately! You must hurry and go to Giran! If what Brankel says is true, the Breka Orcs are having the black egg delivered to them! Are these the only runes you found? There are likely more of them so keep searching. You should go to the Town of Giran and meet Prefect Vokian. He owes me a favor, and will certainly help. Some things only an Orc can do. Ask him about the Breka Orcs. [30626-08.htm] Sagittarius Hamil: Prefect Vokian is an old friend of mine. He saved my life once and I saved his twice! Out of the death crisis. You must hurry to the Town of Giran and meet him. I hope to hear good news from you soon. [30626-09.htm] Sagittarius Hamil: Who would have thought that they could mobilize those savage heathens to join in their plot? Lets see what Brankel has to say... Oh, no, we are too late! The Orc shamans have revived the serpent and awakened the Commander! Ah, yes... Commander Kadesh! I hoped to never hear that name again.... He is a devil who appears as a serpent. It was he who spread blood and pestilence in this land of south Oren long ago... Devils such as he are not of this earth and are not easily killed. Brankel mentions the Crescent Bow. But the crescent bow... Nevermind, we'll deal with that later. You must go to the Ivory tower of Oren and meet Magister Gauen. I believe that he is the keeper of the Crescent Bow... [30626-10.htm] Sagittarius Hamil: No one has more experience against Commander Kadesh than Magister Gauen of the Ivory Tower. His assistance is essential. Go and meet him now. [30626-11.htm] Sagittarius Hamil: Brankel lives! I met with him shortly before he left for the south of Oren. Commander Kadesh is currently surviving off the flesh of Leto Lizardmen. Dammit! I should've gone with Brankel! Oh! Look! The crescent bow! I haven't seen it in 20 years! Take it and follow Brankel! Kill the Leto Lizardmen and Kadesh will appear! Kill him with the crescent bow! You mustn't use any other method or skill, or the power of the bow will disappear and Kadesh will survive! [30626-12.htm] Sagittarius Hamil: As time passes, Commander Kadesh grows stronger. Kill his food source, the Leto Lizardmen. When Kadesh appears, kill him with the crescent bow! If you use a skill or another method, the power of the bow will disappear and Kadesh will survive! Don't forget! Never use a skill to kill Kadesh! [30626-13.htm] Sagittarius Hamil: So you haven't found Brankel... He is searching for the heathens? He is noble indeed. He was correct, they must be up to something else. Commander Kadesh is not their final goal... This amulet holds clues for us... The seven eyes... This is the mark of the children of Shilen. I must report this to the hunter's union immediately. I will also return the crescent bow to the Ivory Tower of Oren. Thank you for your help. You have done more in this matter than Brankel or myself... You are a Sagittarius. Take this Mark of Sagittarius. I hope that we shall hunt together sometime in the future. [30653-01.htm] Sir Aron Tanford: Nice to meet you, young Warrior. I am Aron Tanford, watchdog of the Wastelands. My mission is to stop the brutes that are terrorizing the villagers... Show him the letter from Hamil [30653-02.htm] Sir Aron Tanford: About 10 days ago, two travelers entered the Wastelands claiming they had come to excavate artifacts of the empirical era. Although I doubted their story I didn't stop them. When I spoke with Hunter Brankel a few days later, I realized that I had made a grave mistake. They were not archaeologists, but a bunch of ravenous heathens! As you know, the castle of the evil Beleth once stood where the Wastelands are now. I am sure these heathens seek the remains of that devil! Brankel went to the Ant's Nest of the Wastelands to try to determine their motives. I haven't heard from him since... I am sorry but this is all I know. [30653-03.htm] Sir Aron Tanford: I fear for Hunter Brankel, but what worries me more is what those heathen may do with the remains of Beleth... I must stay here, so I beseech you, go to the Ant's Nest of the Wastelands and find out what is going on there. [30702-01.htm] Guild President Bernard: Sagittarians are those who are known as the best bowmen of this kingdom. A hundred years ago, when the dragon Lindvior attacked Castle Aden, a bowman named Atlanta shot an arrow right through the dragon's eye. For this he was given the first title as a Sagittarius. Right now there are just 33 Sagittarians in the world. If you want to be recognized as an exemplary bowman, you may take the Test of Sagittarius and prove your ability. Many hunters and bowmen have taken the test this year and failed. You must be well above average to pass this test... I heard that you are skillful but as I see it, from the perpective of a Guild President... You are not good enough. Train some more before you come back. (Quest for Rogues, Elven Scouts and Assassins, level 39 and above.) [30702-02.htm] Guild President Bernard: Do you have any idea of what the Test of the Sagittarius is? Only Humans may take this test. Why are you here with an arrow? You'll only make yourself a laughingstock... (Quest for Rogues, Elven Scouts and Assassins, level 39 and above.) [30702-03.htm] Guild President Bernard: Sagittarians are those who are known as the best bowmen in this kingdom. A hundred years ago, when the Gold Dragon Lindvior attacked Castle Aden, a bowman by the name of Atlanta shot an arrow right through the dragon's eye. For this he was given the first title as a Sagittarius. At the moment there are just 33 Sagittarians in the world. If you wish to be recognized as an exemplary bowman, you may take the Test of the Sagittarius and prove your ability. Many hunters and bowmen took the test this year, and all failed. I warn you, if your skills are not good enough to shoot down a flying eagle, you might as well not even try. I will take the test. [30702-04.htm] Guild President Bernard: Hmm... All right, you may try. First go and meet Hamil of Floran Village. He is originally from Innadril. He is a genius of archery, who received the title of Sagittarius at the age of 20. He has instructed many archers twice his age! Ha! To tell you the truth, it is more important for you to win Hamil's approval rather than mine for the test. Take this Letter of Introduction to him. Hamil will have a task for you. Perform it well, young one. May the joy of the chase and the reward of the hunt be with you! [30702-04a.htm] Hunters Guild President Bernard: Hmmm . . . well, go ahead and try. My advice is to first visit Hamil from Floran Village. He is a native of Innadril and an amazing archer -- he earned the nickname Sagittarius before he was even out of his teens. In fact, much more experienced archers even used to come to him for training. To pass this test, you must impress Hamil. Take this introduction letter to him and he will tell you what task to perform. Good luck, youngster. May the joy of the hunt be with you! Before you set off, accept this Dimension Diamond. You can trade it for something special from the village gatekeeper. I'm sure it prove helpful to you on your journey. [30702-05.htm] Guild President Bernard: As I said, you must see Hamil of Floran Village if you wish to receive the Mark of the Sagittarius. [30717-01.htm] Magister Gauen: I am Magister Gauen. Ah, yes, Commander Kadesh and the Crescent Bow... That is a story that I'll never forget. Commander Kadesh is the most daring among all the sons of Shilen. He eats like a horse, yet he is always hungry! He is constantly growing... This caused anxiety among the Gods, and they gave instructions to the Elves on how to kill him with the Crescent Bow. This bow was kept in the Ivory Tower for a long time, and 20 years ago became useless... ...but if what you are saying is true, we need the bow... I can restore the bow, but it will not be easy. Most of the materials I will need you can find in the Ivory Tower, but some you'll have to find elsewhere... A horn from a manashen gargoyle, a Reinforced Bowstring made of the swamp spider's web, a Mithril Ring which can be obtained from a road scavenger and a chitin of a swamp stakato which can be obtained from a Marsh Stakato worker, a Marsh Stakato soldier, or a Marsh Stakato drone. [30717-02.htm] Magister Gauen: Here is the Crescent Bow. This bow is different from other bows, as there is magic in it designed to kill Commander Kadesh. Keep in mind that you can only shoot a Wooden Arrow with this bow. You must kill Commander Kadesh with the Crescent Bow. Right now he is still somewhat weak but as time goes by he will grow stronger and cause more damage. First you must go to Hamil and find out where Commander Kadesh is located. Go now. The Ivory Tower wishes you victory. [30717-03.htm] Magister Gauen: To reconstitute the Crescent Bow we need the materials that I previously requested. The horns of Manashen, a Reinforced Bowstring made of the swamp spider's web, a Mithril Ring which can be taken from a road scavenger and a chitin that can be obtained from a swamp stakato worker, a swamp stakato soldier or a swamp stakato drone. Please hurry and get these items for me. [30717-04.htm] Magister Gauen: 20 years ago Hamil and my master prevented the rebirth of Commander Kadesh... Take this bow to Hamil immediately!
Исходник условий и наград (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.Q00224_TestOfSagittarius;

import org.l2jmobius.gameserver.entity.actor.Npc;
import org.l2jmobius.gameserver.entity.actor.Player;
import org.l2jmobius.gameserver.entity.actor.enums.player.PlayerClass;
import org.l2jmobius.gameserver.entity.itemcontainer.Inventory;
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;
import org.l2jmobius.gameserver.network.serverpackets.SocialAction;

public class Q00224_TestOfSagittarius extends Quest
{
	// NPCs
	private static final int BERNARD = 30702;
	private static final int HAMIL = 30626;
	private static final int SIR_ARON_TANFORD = 30653;
	private static final int VOKIAN = 30514;
	private static final int GAUEN = 30717;
	
	// Monsters
	private static final int ANT = 20079;
	private static final int ANT_CAPTAIN = 20080;
	private static final int ANT_OVERSEER = 20081;
	private static final int ANT_RECRUIT = 20082;
	private static final int ANT_PATROL = 20084;
	private static final int ANT_GUARD = 20086;
	private static final int NOBLE_ANT = 20089;
	private static final int NOBLE_ANT_LEADER = 20090;
	private static final int BREKA_ORC_SHAMAN = 20269;
	private static final int BREKA_ORC_OVERLORD = 20270;
	private static final int MARSH_STAKATO_WORKER = 20230;
	private static final int MARSH_STAKATO_SOLDIER = 20232;
	private static final int MARSH_STAKATO_DRONE = 20234;
	private static final int MARSH_SPIDER = 20233;
	private static final int ROAD_SCAVENGER = 20551;
	private static final int MANASHEN_GARGOYLE = 20563;
	private static final int LETO_LIZARDMAN = 20577;
	private static final int LETO_LIZARDMAN_ARCHER = 20578;
	private static final int LETO_LIZARDMAN_SOLDIER = 20579;
	private static final int LETO_LIZARDMAN_WARRIOR = 20580;
	private static final int LETO_LIZARDMAN_SHAMAN = 20581;
	private static final int LETO_LIZARDMAN_OVERLORD = 20582;
	private static final int SERPENT_DEMON_KADESH = 27090;
	
	// Items
	private static final int BERNARD_INTRODUCTION = 3294;
	private static final int HAMIL_LETTER_1 = 3295;
	private static final int HAMIL_LETTER_2 = 3296;
	private static final int HAMIL_LETTER_3 = 3297;
	private static final int HUNTER_RUNE_1 = 3298;
	private static final int HUNTER_RUNE_2 = 3299;
	private static final int TALISMAN_OF_KADESH = 3300;
	private static final int TALISMAN_OF_SNAKE = 3301;
	private static final int MITHRIL_CLIP = 3302;
	private static final int STAKATO_CHITIN = 3303;
	private static final int REINFORCED_BOWSTRING = 3304;
	private static final int MANASHEN_HORN = 3305;
	private static final int BLOOD_OF_LIZARDMAN = 3306;
	private static final int CRESCENT_MOON_BOW = 3028;
	private static final int WOODEN_ARROW = 17;
	
	// Rewards
	private static final int MARK_OF_SAGITTARIUS = 3293;
	private static final int DIMENSIONAL_DIAMOND = 7562;
	
	public Q00224_TestOfSagittarius()
	{
		super(224, "Test of Sagittarius");
		registerQuestItems(BERNARD_INTRODUCTION, HAMIL_LETTER_1, HAMIL_LETTER_2, HAMIL_LETTER_3, HUNTER_RUNE_1, HUNTER_RUNE_2, TALISMAN_OF_KADESH, TALISMAN_OF_SNAKE, MITHRIL_CLIP, STAKATO_CHITIN, REINFORCED_BOWSTRING, MANASHEN_HORN, BLOOD_OF_LIZARDMAN, CRESCENT_MOON_BOW);
		addStartNpc(BERNARD);
		addTalkId(BERNARD, HAMIL, SIR_ARON_TANFORD, VOKIAN, GAUEN);
		addKillId(ANT, ANT_CAPTAIN, ANT_OVERSEER, ANT_RECRUIT, ANT_PATROL, ANT_GUARD, NOBLE_ANT, NOBLE_ANT_LEADER, BREKA_ORC_SHAMAN, BREKA_ORC_OVERLORD, MARSH_STAKATO_WORKER, MARSH_STAKATO_SOLDIER, MARSH_STAKATO_DRONE, MARSH_SPIDER, ROAD_SCAVENGER, MANASHEN_GARGOYLE, LETO_LIZARDMAN, LETO_LIZARDMAN_ARCHER, LETO_LIZARDMAN_SOLDIER, LETO_LIZARDMAN_WARRIOR, LETO_LIZARDMAN_SHAMAN, LETO_LIZARDMAN_OVERLORD, SERPENT_DEMON_KADESH);
	}
	
	@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 "30702-04.htm":
			{
				st.startQuest();
				giveItems(player, BERNARD_INTRODUCTION, 1);
				if (!player.getVariables().getBoolean("secondClassChange39", false))
				{
					htmltext = "30702-04a.htm";
					giveItems(player, DIMENSIONAL_DIAMOND, DF_REWARD_39.get(player.getPlayerClass().getId()));
					player.getVariables().set("secondClassChange39", true);
				}
				break;
			}
			case "30626-03.htm":
			{
				st.setCond(2, true);
				takeItems(player, BERNARD_INTRODUCTION, 1);
				giveItems(player, HAMIL_LETTER_1, 1);
				break;
			}
			case "30626-07.htm":
			{
				st.setCond(5, true);
				takeItems(player, HUNTER_RUNE_1, 10);
				giveItems(player, HAMIL_LETTER_2, 1);
				break;
			}
			case "30653-02.htm":
			{
				st.setCond(3, true);
				takeItems(player, HAMIL_LETTER_1, 1);
				break;
			}
			case "30514-02.htm":
			{
				st.setCond(6, true);
				takeItems(player, HAMIL_LETTER_2, 1);
				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:
			{
				if ((player.getPlayerClass() != PlayerClass.ROGUE) && (player.getPlayerClass() != PlayerClass.ELVEN_SCOUT) && (player.getPlayerClass() != PlayerClass.ASSASSIN))
				{
					htmltext = "30702-02.htm";
				}
				else if (player.getLevel() < 39)
				{
					htmltext = "30702-01.htm";
				}
				else
				{
					htmltext = "30702-03.htm";
				}
				break;
			}
			case State.STARTED:
			{
				final int cond = st.getCond();
				switch (npc.getId())
				{
					case BERNARD:
					{
						htmltext = "30702-05.htm";
						break;
					}
					case HAMIL:
					{
						if (cond == 1)
						{
							htmltext = "30626-01.htm";
						}
						else if ((cond == 2) || (cond == 3))
						{
							htmltext = "30626-04.htm";
						}
						else if (cond == 4)
						{
							htmltext = "30626-05.htm";
						}
						else if ((cond > 4) && (cond < 8))
						{
							htmltext = "30626-08.htm";
						}
						else if (cond == 8)
						{
							htmltext = "30626-09.htm";
							st.setCond(9, true);
							takeItems(player, HUNTER_RUNE_2, 10);
							giveItems(player, HAMIL_LETTER_3, 1);
						}
						else if ((cond > 8) && (cond < 12))
						{
							htmltext = "30626-10.htm";
						}
						else if (cond == 12)
						{
							htmltext = "30626-11.htm";
							st.setCond(13, true);
						}
						else if (cond == 13)
						{
							htmltext = "30626-12.htm";
						}
						else if (cond == 14)
						{
							htmltext = "30626-13.htm";
							takeItems(player, BLOOD_OF_LIZARDMAN, -1);
							takeItems(player, CRESCENT_MOON_BOW, 1);
							takeItems(player, TALISMAN_OF_KADESH, 1);
							giveItems(player, MARK_OF_SAGITTARIUS, 1);
							addExpAndSp(player, 54726, 20250);
							player.broadcastPacket(new SocialAction(player.getObjectId(), 3));
							st.exitQuest(false, true);
						}
						break;
					}
					case SIR_ARON_TANFORD:
					{
						if (cond == 2)
						{
							htmltext = "30653-01.htm";
						}
						else if (cond > 2)
						{
							htmltext = "30653-03.htm";
						}
						break;
					}
					case VOKIAN:
					{
						if (cond == 5)
						{
							htmltext = "30514-01.htm";
						}
						else if (cond == 6)
						{
							htmltext = "30514-03.htm";
						}
						else if (cond == 7)
						{
							htmltext = "30514-04.htm";
							st.setCond(8, true);
							takeItems(player, TALISMAN_OF_SNAKE, 1);
						}
						else if (cond > 7)
						{
							htmltext = "30514-05.htm";
						}
						break;
					}
					case GAUEN:
					{
						if (cond == 9)
						{
							htmltext = "30717-01.htm";
							st.setCond(10, true);
							takeItems(player, HAMIL_LETTER_3, 1);
						}
						else if (cond == 10)
						{
							htmltext = "30717-03.htm";
						}
						else if (cond == 11)
						{
							htmltext = "30717-02.htm";
							st.setCond(12, true);
							takeItems(player, MANASHEN_HORN, 1);
							takeItems(player, MITHRIL_CLIP, 1);
							takeItems(player, REINFORCED_BOWSTRING, 1);
							takeItems(player, STAKATO_CHITIN, 1);
							giveItems(player, CRESCENT_MOON_BOW, 1);
							giveItems(player, WOODEN_ARROW, 10);
						}
						else if (cond > 11)
						{
							htmltext = "30717-04.htm";
						}
						break;
					}
				}
				break;
			}
			case State.COMPLETED:
			{
				htmltext = getAlreadyCompletedMsg(player);
				break;
			}
		}
		
		return htmltext;
	}
	
	@Override
	public void onKill(Npc npc, Player player, boolean isPet)
	{
		final QuestState st = getQuestState(player, false);
		if ((st == null) || !st.isStarted())
		{
			return;
		}
		
		switch (npc.getId())
		{
			case ANT:
			case ANT_CAPTAIN:
			case ANT_OVERSEER:
			case ANT_RECRUIT:
			case ANT_PATROL:
			case ANT_GUARD:
			case NOBLE_ANT:
			case NOBLE_ANT_LEADER:
			{
				if (st.isCond(3) && getRandomBoolean())
				{
					giveItems(player, HUNTER_RUNE_1, 1);
					if ((getQuestItemsCount(player, HUNTER_RUNE_1) >= 10))
					{
						st.setCond(4);
					}
					else
					{
						playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
					}
				}
				break;
			}
			case BREKA_ORC_SHAMAN:
			case BREKA_ORC_OVERLORD:
			{
				if (st.isCond(6) && getRandomBoolean())
				{
					giveItems(player, HUNTER_RUNE_2, 1);
					if ((getQuestItemsCount(player, HUNTER_RUNE_2) >= 10))
					{
						st.setCond(7, true);
						giveItems(player, TALISMAN_OF_SNAKE, 1);
					}
					else
					{
						playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
					}
				}
				break;
			}
			case MARSH_STAKATO_WORKER:
			case MARSH_STAKATO_SOLDIER:
			case MARSH_STAKATO_DRONE:
			{
				if (st.isCond(10) && (getRandom(10) < 1))
				{
					giveItems(player, STAKATO_CHITIN, 1);
					if (hasQuestItems(player, MANASHEN_HORN, MITHRIL_CLIP, REINFORCED_BOWSTRING))
					{
						st.setCond(11, true);
					}
					else
					{
						playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
					}
				}
				break;
			}
			case MARSH_SPIDER:
			{
				if (st.isCond(10) && (getRandom(10) < 1))
				{
					giveItems(player, REINFORCED_BOWSTRING, 1);
					if (hasQuestItems(player, MANASHEN_HORN, MITHRIL_CLIP, STAKATO_CHITIN))
					{
						st.setCond(11, true);
					}
					else
					{
						playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
					}
				}
				break;
			}
			case ROAD_SCAVENGER:
			{
				if (st.isCond(10) && (getRandom(10) < 1))
				{
					giveItems(player, MITHRIL_CLIP, 1);
					if (hasQuestItems(player, MANASHEN_HORN, REINFORCED_BOWSTRING, STAKATO_CHITIN))
					{
						st.setCond(11, true);
					}
					else
					{
						playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
					}
				}
				break;
			}
			case MANASHEN_GARGOYLE:
			{
				if (st.isCond(10) && (getRandom(10) < 1))
				{
					giveItems(player, MANASHEN_HORN, 1);
					if (hasQuestItems(player, REINFORCED_BOWSTRING, MITHRIL_CLIP, STAKATO_CHITIN))
					{
						st.setCond(11, true);
					}
					else
					{
						playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
					}
				}
				break;
			}
			case LETO_LIZARDMAN:
			case LETO_LIZARDMAN_ARCHER:
			case LETO_LIZARDMAN_SOLDIER:
			case LETO_LIZARDMAN_WARRIOR:
			case LETO_LIZARDMAN_SHAMAN:
			case LETO_LIZARDMAN_OVERLORD:
			{
				if (st.isCond(13))
				{
					if (((getQuestItemsCount(player, BLOOD_OF_LIZARDMAN) - 120) * 5) > getRandom(100))
					{
						playSound(player, QuestSound.ITEMSOUND_QUEST_BEFORE_BATTLE);
						takeItems(player, BLOOD_OF_LIZARDMAN, -1);
						addSpawn(SERPENT_DEMON_KADESH, player, false, 300000);
					}
					else
					{
						giveItems(player, BLOOD_OF_LIZARDMAN, 1);
						playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
					}
				}
				break;
			}
			case SERPENT_DEMON_KADESH:
			{
				if (st.isCond(13))
				{
					if (player.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_RHAND) == CRESCENT_MOON_BOW)
					{
						st.setCond(14, true);
						giveItems(player, TALISMAN_OF_KADESH, 1);
					}
					else
					{
						addSpawn(SERPENT_DEMON_KADESH, player, false, 300000);
					}
				}
				break;
			}
		}
	}
}