Addition of quest Elven Botany (10851).
Contributed by gigilo1968.
This commit is contained in:
		| @@ -85,7 +85,6 @@ | |||||||
| 10846 Bloody Battle - Meeting the Commander | 10846 Bloody Battle - Meeting the Commander | ||||||
| 10848 Trials before the Battle | 10848 Trials before the Battle | ||||||
| 10849 Trials for Adaptation | 10849 Trials for Adaptation | ||||||
| 10851 Elven Botany |  | ||||||
| 10852 The Mother Tree Revival Project | 10852 The Mother Tree Revival Project | ||||||
| 10853 To Weaken the Giants | 10853 To Weaken the Giants | ||||||
| 10854 To Seize the Fortress | 10854 To Seize the Fortress | ||||||
|   | |||||||
							
								
								
									
										197
									
								
								L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10851_ElvenBotany/Q10851_ElvenBotany.java
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										197
									
								
								L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10851_ElvenBotany/Q10851_ElvenBotany.java
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,197 @@ | |||||||
|  | /* | ||||||
|  |  * This file is part of the L2J Mobius project. | ||||||
|  |  *  | ||||||
|  |  * This program 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. | ||||||
|  |  *  | ||||||
|  |  * This program 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.Q10851_ElvenBotany; | ||||||
|  |  | ||||||
|  | import org.l2jmobius.gameserver.enums.Faction; | ||||||
|  | import org.l2jmobius.gameserver.enums.QuestSound; | ||||||
|  | import org.l2jmobius.gameserver.enums.QuestType; | ||||||
|  | import org.l2jmobius.gameserver.model.actor.Npc; | ||||||
|  | import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; | ||||||
|  | import org.l2jmobius.gameserver.model.quest.Quest; | ||||||
|  | import org.l2jmobius.gameserver.model.quest.QuestState; | ||||||
|  | import org.l2jmobius.gameserver.model.quest.State; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Elven Botany (10851) | ||||||
|  |  * @URL https://l2wiki.com/Elven_Botany | ||||||
|  |  * @author Gigi | ||||||
|  |  * @date 2019-06-11 - [21:21:45] | ||||||
|  |  */ | ||||||
|  | public class Q10851_ElvenBotany extends Quest | ||||||
|  | { | ||||||
|  | 	// NPCs | ||||||
|  | 	private static final int CELESTIEL = 34234; | ||||||
|  | 	private static final int IRENE = 34233; | ||||||
|  | 	// Misc | ||||||
|  | 	private static final int MIN_LEVEL = 102; | ||||||
|  | 	// Monsters | ||||||
|  | 	private static final int FLOWER_BUD = 19600; | ||||||
|  | 	private static final int APHERUS = 23581; | ||||||
|  | 	// Items | ||||||
|  | 	private static final int APHERUS_SAMPLE = 47200; | ||||||
|  | 	private static final int FLOWER_BUD_SAMPLE = 47201; | ||||||
|  | 	private static final int BASIC_SUPPLY_BOX = 47178; | ||||||
|  | 	 | ||||||
|  | 	public Q10851_ElvenBotany() | ||||||
|  | 	{ | ||||||
|  | 		super(10851); | ||||||
|  | 		addStartNpc(CELESTIEL); | ||||||
|  | 		addTalkId(CELESTIEL, IRENE); | ||||||
|  | 		addKillId(FLOWER_BUD, APHERUS); | ||||||
|  | 		registerQuestItems(APHERUS_SAMPLE, FLOWER_BUD_SAMPLE); | ||||||
|  | 		addCondMinLevel(MIN_LEVEL, "guardian_follower_q10851_02.htm"); | ||||||
|  | 		addFactionLevel(Faction.MOTHER_TREE_GUARDIANS, 2, "guardian_follower_q10851_03.htm"); | ||||||
|  | 	} | ||||||
|  | 	 | ||||||
|  | 	@Override | ||||||
|  | 	public String onAdvEvent(String event, Npc npc, PlayerInstance player) | ||||||
|  | 	{ | ||||||
|  | 		final QuestState qs = getQuestState(player, false); | ||||||
|  | 		if (qs == null) | ||||||
|  | 		{ | ||||||
|  | 			return null; | ||||||
|  | 		} | ||||||
|  | 		 | ||||||
|  | 		String htmltext = event; | ||||||
|  | 		switch (event) | ||||||
|  | 		{ | ||||||
|  | 			case "guardian_follower_q10851_04.htm": | ||||||
|  | 			case "guardian_follower_q10851_05.htm": | ||||||
|  | 			{ | ||||||
|  | 				htmltext = event; | ||||||
|  | 				break; | ||||||
|  | 			} | ||||||
|  | 			case "guardian_follower_q10851_06.htm": | ||||||
|  | 			{ | ||||||
|  | 				qs.startQuest(); | ||||||
|  | 				htmltext = event; | ||||||
|  | 				break; | ||||||
|  | 			} | ||||||
|  | 			case "guardian_leader_q10851_02.html": | ||||||
|  | 			{ | ||||||
|  | 				qs.setCond(2, true); | ||||||
|  | 				htmltext = event; | ||||||
|  | 				break; | ||||||
|  | 			} | ||||||
|  | 			case "guardian_leader_q10851_05.html": | ||||||
|  | 			{ | ||||||
|  | 				if (qs.isCond(3) && (player.getLevel() >= MIN_LEVEL)) | ||||||
|  | 				{ | ||||||
|  | 					giveItems(player, BASIC_SUPPLY_BOX, 1); | ||||||
|  | 					addExpAndSp(player, 44_442_855_900L, 44_442_720); | ||||||
|  | 					qs.exitQuest(QuestType.ONE_TIME, true); | ||||||
|  | 					htmltext = event; | ||||||
|  | 				} | ||||||
|  | 				else | ||||||
|  | 				{ | ||||||
|  | 					htmltext = getNoQuestLevelRewardMsg(player); | ||||||
|  | 				} | ||||||
|  | 				break; | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 		return htmltext; | ||||||
|  | 	} | ||||||
|  | 	 | ||||||
|  | 	@Override | ||||||
|  | 	public String onTalk(Npc npc, PlayerInstance player) | ||||||
|  | 	{ | ||||||
|  | 		String htmltext = getNoQuestMsg(player); | ||||||
|  | 		final QuestState qs = getQuestState(player, true); | ||||||
|  | 		 | ||||||
|  | 		switch (qs.getState()) | ||||||
|  | 		{ | ||||||
|  | 			case State.CREATED: | ||||||
|  | 			{ | ||||||
|  | 				htmltext = "guardian_follower_q10851_04.htm"; | ||||||
|  | 				break; | ||||||
|  | 			} | ||||||
|  | 			case State.STARTED: | ||||||
|  | 			{ | ||||||
|  | 				switch (npc.getId()) | ||||||
|  | 				{ | ||||||
|  | 					case CELESTIEL: | ||||||
|  | 					{ | ||||||
|  | 						if (qs.getCond() > 0) | ||||||
|  | 						{ | ||||||
|  | 							htmltext = "guardian_follower_q10851_07.html"; | ||||||
|  | 						} | ||||||
|  | 						break; | ||||||
|  | 					} | ||||||
|  | 					case IRENE: | ||||||
|  | 					{ | ||||||
|  | 						if (qs.isCond(1)) | ||||||
|  | 						{ | ||||||
|  | 							htmltext = "guardian_leader_q10851_01.html"; | ||||||
|  | 						} | ||||||
|  | 						else if (qs.isCond(2)) | ||||||
|  | 						{ | ||||||
|  | 							htmltext = "guardian_leader_q10851_03.html"; | ||||||
|  | 						} | ||||||
|  | 						else | ||||||
|  | 						{ | ||||||
|  | 							htmltext = "guardian_leader_q10851_04.html"; | ||||||
|  | 						} | ||||||
|  | 						break; | ||||||
|  | 					} | ||||||
|  | 				} | ||||||
|  | 				break; | ||||||
|  | 			} | ||||||
|  | 			case State.COMPLETED: | ||||||
|  | 			{ | ||||||
|  | 				htmltext = getAlreadyCompletedMsg(player); | ||||||
|  | 				break; | ||||||
|  | 			} | ||||||
|  | 			 | ||||||
|  | 		} | ||||||
|  | 		return htmltext; | ||||||
|  | 	} | ||||||
|  | 	 | ||||||
|  | 	@Override | ||||||
|  | 	public String onKill(Npc npc, PlayerInstance killer, boolean isSummon) | ||||||
|  | 	{ | ||||||
|  | 		final QuestState qs = getQuestState(killer, false); | ||||||
|  | 		if ((qs != null) && qs.isCond(2)) | ||||||
|  | 		{ | ||||||
|  | 			switch (npc.getId()) | ||||||
|  | 			{ | ||||||
|  | 				case FLOWER_BUD: | ||||||
|  | 				{ | ||||||
|  | 					if (getQuestItemsCount(killer, FLOWER_BUD_SAMPLE) < 50) | ||||||
|  | 					{ | ||||||
|  | 						giveItems(killer, FLOWER_BUD_SAMPLE, 1); | ||||||
|  | 						playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET); | ||||||
|  | 					} | ||||||
|  | 					break; | ||||||
|  | 				} | ||||||
|  | 				case APHERUS: | ||||||
|  | 				{ | ||||||
|  | 					if (getQuestItemsCount(killer, APHERUS_SAMPLE) < 150) | ||||||
|  | 					{ | ||||||
|  | 						giveItems(killer, APHERUS_SAMPLE, 1); | ||||||
|  | 						playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET); | ||||||
|  | 					} | ||||||
|  | 					break; | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 			if ((getQuestItemsCount(killer, FLOWER_BUD_SAMPLE) >= 50) && (getQuestItemsCount(killer, APHERUS_SAMPLE) >= 150)) | ||||||
|  | 			{ | ||||||
|  | 				qs.setCond(3, true); | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 		return super.onKill(npc, killer, isSummon); | ||||||
|  | 	} | ||||||
|  | } | ||||||
| @@ -0,0 +1,5 @@ | |||||||
|  | <html><body>Celestiel:<br> | ||||||
|  | Ah, if you could spare the time, could you help me out?<br> | ||||||
|  | I need help for something, and you could be the one I can trust.<br> | ||||||
|  | <Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10851_ElvenBotany guardian_follower_q10851_04.htm">"What is it?"</Button> | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,4 @@ | |||||||
|  | <html><body>Celestiel:<br> | ||||||
|  | I'm sorry, but this is a dangerous place. We cannot guarantee your safety. Please take yourself some place safe.<br> | ||||||
|  | (This quest can only be undertaken by characters with Lv. 102 or higher whose faction level with the Mother Tree Guardian is 2 or higher.) | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,5 @@ | |||||||
|  | <html><body>Celestiel:<br> | ||||||
|  | I'm sorry, but I'm rather iffy about putting you on assignment.<br> | ||||||
|  | This is a dangerous place. Please take yourself some place safe.<br> | ||||||
|  | (This quest can only be undertaken by characters whose faction level with the Mother Tree Guardians is 2 or higher.) | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,6 @@ | |||||||
|  | <html><body>Celestiel:<br> | ||||||
|  | I am Celestiel. I have come here with Irene in search of a way to save the Mother Tree.<br> | ||||||
|  | I know how to do bits and pieces of many things. I'm usually studying changes in the plants and the soil here, but I need more samples for my research. That's why I'm asking you for help.<br> | ||||||
|  | I've been searching for the samples firsthand until now, but it's been taking me so long that I've been falling behind on my research. I have no choice but to dedicate myself to research while having somebody else hunt around for samples.<br> | ||||||
|  | <Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10851_ElvenBotany guardian_follower_q10851_05.htm">"What samples do you need?"</Button> | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,6 @@ | |||||||
|  | <html><body>Celestiel:<br> | ||||||
|  | Oh! The samples I need are samples of a few particular species of plant that live here.<br> | ||||||
|  | Until now, Fairy Mimyu has been helping me collect enough Nymph Stamen, but it's too hard finding samples other than those.<br> | ||||||
|  | But I'm a bit hesitant about asking Fairy Mimyu to find me the other samples too.<br> | ||||||
|  | <Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10851_ElvenBotany guardian_follower_q10851_06.htm">"What samples do I need to find?"</Button> | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,5 @@ | |||||||
|  | <html><body>Celestiel:<br> | ||||||
|  | Ah, so will you help me out?<br> | ||||||
|  | If that's the case, the samples I need are... oh, I guess you don't exactly how many of which samples I'll be needing, since Irene was the one who was managing the samples.<br>Would you go to Irene and ask which samples required for the research are?<br> | ||||||
|  | See, I've been bugging Irene with a bunch of questions, even just now... I think it would be better for you to go and ask instead of me. | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,4 @@ | |||||||
|  | <html><body>Celestiel:<br> | ||||||
|  | Please go to Irene and ask her which samples needed for the biological research are.<br> | ||||||
|  | If you ask her yourself, she's sure to give you a kind answer with a smile. | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,5 @@ | |||||||
|  | <html><body>Guardian Irene:<br> | ||||||
|  | What's going on?<br> | ||||||
|  | I thought you were speaking with Celestiel until just now.<br> | ||||||
|  | <Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10851_ElvenBotany guardian_leader_q10851_02.html">"So the samples..."</Button> | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,5 @@ | |||||||
|  | <html><body>Guardian Irene:<br> | ||||||
|  | I was wondering what Celestiel was talking so enthusiastically about. I guess you were talking about the samples.<br> | ||||||
|  | I swear she told me just a short while ago that she needed some kind of sample... Well, with her being as busy as she is nowadays with her research, her being so forgetful is understandable.<br> | ||||||
|  | Samples needed are <font color="LEVEL">150 Apherus Samples, and 50 Flower Bud Samples</font>. Samples can be obtained from <font color="LEVEL">Apherus, and Flower Buds</font>. | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,4 @@ | |||||||
|  | <html><body>Guardian Irene:<br> | ||||||
|  | You don't have enough samples.<br> | ||||||
|  | Samples needed are <font color="LEVEL">150 Apherus Samples, and 50 Flower Bud Samples</font>. Samples can be obtained from <font color="LEVEL">Apherus, and Flower Buds</font>. | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,5 @@ | |||||||
|  | <html><body>Guardian Irene:<br> | ||||||
|  | Are you done collecting the samples?<br> | ||||||
|  | We need samples to conduct research, but it's the part collecting the samples that discourages everyone. It's not so easy finding samples, is it?<br> | ||||||
|  | <Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10851_ElvenBotany guardian_leader_q10851_05.html">"Yes, right."</Button> | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,5 @@ | |||||||
|  | <html><body>Guardian Irene:<br> | ||||||
|  | Thank you. Using these samples, we will be able to investigate the growth and changes around here.<br> | ||||||
|  | If we discover what changes are going on right now in the Enchanted Valley, we might need to ask you to do some other work for us.<br> | ||||||
|  | If that happens, I hope you'll help us again. | ||||||
|  | </body></html> | ||||||
| @@ -458,6 +458,7 @@ import quests.Q10839_BlackbirdsNameValue.Q10839_BlackbirdsNameValue; | |||||||
| import quests.Q10840_TimeToRecover.Q10840_TimeToRecover; | import quests.Q10840_TimeToRecover.Q10840_TimeToRecover; | ||||||
| import quests.Q10841_DeepInsideAteliaFortress.Q10841_DeepInsideAteliaFortress; | import quests.Q10841_DeepInsideAteliaFortress.Q10841_DeepInsideAteliaFortress; | ||||||
| import quests.Q10843_AnomalyInTheEnchantedValley.Q10843_AnomalyInTheEnchantedValley; | import quests.Q10843_AnomalyInTheEnchantedValley.Q10843_AnomalyInTheEnchantedValley; | ||||||
|  | import quests.Q10851_ElvenBotany.Q10851_ElvenBotany; | ||||||
| import quests.not_done.Q00504_CompetitionForTheBanditStronghold; | import quests.not_done.Q00504_CompetitionForTheBanditStronghold; | ||||||
| import quests.not_done.Q00655_AGrandPlanForTamingWildBeasts; | import quests.not_done.Q00655_AGrandPlanForTamingWildBeasts; | ||||||
| import quests.not_done.Q00744_TheAlligatorHunterReturns; | import quests.not_done.Q00744_TheAlligatorHunterReturns; | ||||||
| @@ -520,7 +521,6 @@ import quests.not_done.Q10845_BloodyBattleRescueTheSmiths; | |||||||
| import quests.not_done.Q10846_BloodyBattleMeetingTheCommander; | import quests.not_done.Q10846_BloodyBattleMeetingTheCommander; | ||||||
| import quests.not_done.Q10848_TrialsBeforeTheBattle; | import quests.not_done.Q10848_TrialsBeforeTheBattle; | ||||||
| import quests.not_done.Q10849_TrialsForAdaptation; | import quests.not_done.Q10849_TrialsForAdaptation; | ||||||
| import quests.not_done.Q10851_ElvenBotany; |  | ||||||
| import quests.not_done.Q10852_TheMotherTreeRevivalProject; | import quests.not_done.Q10852_TheMotherTreeRevivalProject; | ||||||
| import quests.not_done.Q10853_ToWeakenTheGiants; | import quests.not_done.Q10853_ToWeakenTheGiants; | ||||||
| import quests.not_done.Q10854_ToSeizeTheFortress; | import quests.not_done.Q10854_ToSeizeTheFortress; | ||||||
| @@ -1039,7 +1039,7 @@ public class QuestMasterHandler | |||||||
| 		Q10846_BloodyBattleMeetingTheCommander.class, // TODO: Not done. | 		Q10846_BloodyBattleMeetingTheCommander.class, // TODO: Not done. | ||||||
| 		Q10848_TrialsBeforeTheBattle.class, // TODO: Not done. | 		Q10848_TrialsBeforeTheBattle.class, // TODO: Not done. | ||||||
| 		Q10849_TrialsForAdaptation.class, // TODO: Not done. | 		Q10849_TrialsForAdaptation.class, // TODO: Not done. | ||||||
| 		Q10851_ElvenBotany.class, // TODO: Not done. | 		Q10851_ElvenBotany.class, | ||||||
| 		Q10852_TheMotherTreeRevivalProject.class, // TODO: Not done. | 		Q10852_TheMotherTreeRevivalProject.class, // TODO: Not done. | ||||||
| 		Q10853_ToWeakenTheGiants.class, // TODO: Not done. | 		Q10853_ToWeakenTheGiants.class, // TODO: Not done. | ||||||
| 		Q10854_ToSeizeTheFortress.class, // TODO: Not done. | 		Q10854_ToSeizeTheFortress.class, // TODO: Not done. | ||||||
|   | |||||||
| @@ -1,36 +0,0 @@ | |||||||
| /* |  | ||||||
|  * This file is part of the L2J Mobius project. |  | ||||||
|  *  |  | ||||||
|  * This program 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. |  | ||||||
|  *  |  | ||||||
|  * This program 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.not_done; |  | ||||||
|  |  | ||||||
| import org.l2jmobius.Config; |  | ||||||
| import org.l2jmobius.gameserver.model.quest.Quest; |  | ||||||
|  |  | ||||||
| /** |  | ||||||
|  * @author Mobius |  | ||||||
|  */ |  | ||||||
| public class Q10851_ElvenBotany extends Quest |  | ||||||
| { |  | ||||||
| 	private static final int START_NPC = 34234; |  | ||||||
| 	 |  | ||||||
| 	public Q10851_ElvenBotany() |  | ||||||
| 	{ |  | ||||||
| 		super(10851); |  | ||||||
| 		addStartNpc(START_NPC); |  | ||||||
| 		addTalkId(START_NPC); |  | ||||||
| 		addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null)); |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| @@ -154,7 +154,6 @@ | |||||||
| 10846 Bloody Battle - Meeting the Commander | 10846 Bloody Battle - Meeting the Commander | ||||||
| 10848 Trials before the Battle | 10848 Trials before the Battle | ||||||
| 10849 Trials for Adaptation | 10849 Trials for Adaptation | ||||||
| 10851 Elven Botany |  | ||||||
| 10852 The Mother Tree Revival Project | 10852 The Mother Tree Revival Project | ||||||
| 10853 To Weaken the Giants | 10853 To Weaken the Giants | ||||||
| 10854 To Seize the Fortress | 10854 To Seize the Fortress | ||||||
|   | |||||||
							
								
								
									
										197
									
								
								L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10851_ElvenBotany/Q10851_ElvenBotany.java
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										197
									
								
								L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10851_ElvenBotany/Q10851_ElvenBotany.java
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,197 @@ | |||||||
|  | /* | ||||||
|  |  * This file is part of the L2J Mobius project. | ||||||
|  |  *  | ||||||
|  |  * This program 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. | ||||||
|  |  *  | ||||||
|  |  * This program 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.Q10851_ElvenBotany; | ||||||
|  |  | ||||||
|  | import org.l2jmobius.gameserver.enums.Faction; | ||||||
|  | import org.l2jmobius.gameserver.enums.QuestSound; | ||||||
|  | import org.l2jmobius.gameserver.enums.QuestType; | ||||||
|  | import org.l2jmobius.gameserver.model.actor.Npc; | ||||||
|  | import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; | ||||||
|  | import org.l2jmobius.gameserver.model.quest.Quest; | ||||||
|  | import org.l2jmobius.gameserver.model.quest.QuestState; | ||||||
|  | import org.l2jmobius.gameserver.model.quest.State; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Elven Botany (10851) | ||||||
|  |  * @URL https://l2wiki.com/Elven_Botany | ||||||
|  |  * @author Gigi | ||||||
|  |  * @date 2019-06-11 - [21:21:45] | ||||||
|  |  */ | ||||||
|  | public class Q10851_ElvenBotany extends Quest | ||||||
|  | { | ||||||
|  | 	// NPCs | ||||||
|  | 	private static final int CELESTIEL = 34234; | ||||||
|  | 	private static final int IRENE = 34233; | ||||||
|  | 	// Misc | ||||||
|  | 	private static final int MIN_LEVEL = 102; | ||||||
|  | 	// Monsters | ||||||
|  | 	private static final int FLOWER_BUD = 19600; | ||||||
|  | 	private static final int APHERUS = 23581; | ||||||
|  | 	// Items | ||||||
|  | 	private static final int APHERUS_SAMPLE = 47200; | ||||||
|  | 	private static final int FLOWER_BUD_SAMPLE = 47201; | ||||||
|  | 	private static final int BASIC_SUPPLY_BOX = 47178; | ||||||
|  | 	 | ||||||
|  | 	public Q10851_ElvenBotany() | ||||||
|  | 	{ | ||||||
|  | 		super(10851); | ||||||
|  | 		addStartNpc(CELESTIEL); | ||||||
|  | 		addTalkId(CELESTIEL, IRENE); | ||||||
|  | 		addKillId(FLOWER_BUD, APHERUS); | ||||||
|  | 		registerQuestItems(APHERUS_SAMPLE, FLOWER_BUD_SAMPLE); | ||||||
|  | 		addCondMinLevel(MIN_LEVEL, "guardian_follower_q10851_02.htm"); | ||||||
|  | 		addFactionLevel(Faction.MOTHER_TREE_GUARDIANS, 2, "guardian_follower_q10851_03.htm"); | ||||||
|  | 	} | ||||||
|  | 	 | ||||||
|  | 	@Override | ||||||
|  | 	public String onAdvEvent(String event, Npc npc, PlayerInstance player) | ||||||
|  | 	{ | ||||||
|  | 		final QuestState qs = getQuestState(player, false); | ||||||
|  | 		if (qs == null) | ||||||
|  | 		{ | ||||||
|  | 			return null; | ||||||
|  | 		} | ||||||
|  | 		 | ||||||
|  | 		String htmltext = event; | ||||||
|  | 		switch (event) | ||||||
|  | 		{ | ||||||
|  | 			case "guardian_follower_q10851_04.htm": | ||||||
|  | 			case "guardian_follower_q10851_05.htm": | ||||||
|  | 			{ | ||||||
|  | 				htmltext = event; | ||||||
|  | 				break; | ||||||
|  | 			} | ||||||
|  | 			case "guardian_follower_q10851_06.htm": | ||||||
|  | 			{ | ||||||
|  | 				qs.startQuest(); | ||||||
|  | 				htmltext = event; | ||||||
|  | 				break; | ||||||
|  | 			} | ||||||
|  | 			case "guardian_leader_q10851_02.html": | ||||||
|  | 			{ | ||||||
|  | 				qs.setCond(2, true); | ||||||
|  | 				htmltext = event; | ||||||
|  | 				break; | ||||||
|  | 			} | ||||||
|  | 			case "guardian_leader_q10851_05.html": | ||||||
|  | 			{ | ||||||
|  | 				if (qs.isCond(3) && (player.getLevel() >= MIN_LEVEL)) | ||||||
|  | 				{ | ||||||
|  | 					giveItems(player, BASIC_SUPPLY_BOX, 1); | ||||||
|  | 					addExpAndSp(player, 44_442_855_900L, 44_442_720); | ||||||
|  | 					qs.exitQuest(QuestType.ONE_TIME, true); | ||||||
|  | 					htmltext = event; | ||||||
|  | 				} | ||||||
|  | 				else | ||||||
|  | 				{ | ||||||
|  | 					htmltext = getNoQuestLevelRewardMsg(player); | ||||||
|  | 				} | ||||||
|  | 				break; | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 		return htmltext; | ||||||
|  | 	} | ||||||
|  | 	 | ||||||
|  | 	@Override | ||||||
|  | 	public String onTalk(Npc npc, PlayerInstance player) | ||||||
|  | 	{ | ||||||
|  | 		String htmltext = getNoQuestMsg(player); | ||||||
|  | 		final QuestState qs = getQuestState(player, true); | ||||||
|  | 		 | ||||||
|  | 		switch (qs.getState()) | ||||||
|  | 		{ | ||||||
|  | 			case State.CREATED: | ||||||
|  | 			{ | ||||||
|  | 				htmltext = "guardian_follower_q10851_04.htm"; | ||||||
|  | 				break; | ||||||
|  | 			} | ||||||
|  | 			case State.STARTED: | ||||||
|  | 			{ | ||||||
|  | 				switch (npc.getId()) | ||||||
|  | 				{ | ||||||
|  | 					case CELESTIEL: | ||||||
|  | 					{ | ||||||
|  | 						if (qs.getCond() > 0) | ||||||
|  | 						{ | ||||||
|  | 							htmltext = "guardian_follower_q10851_07.html"; | ||||||
|  | 						} | ||||||
|  | 						break; | ||||||
|  | 					} | ||||||
|  | 					case IRENE: | ||||||
|  | 					{ | ||||||
|  | 						if (qs.isCond(1)) | ||||||
|  | 						{ | ||||||
|  | 							htmltext = "guardian_leader_q10851_01.html"; | ||||||
|  | 						} | ||||||
|  | 						else if (qs.isCond(2)) | ||||||
|  | 						{ | ||||||
|  | 							htmltext = "guardian_leader_q10851_03.html"; | ||||||
|  | 						} | ||||||
|  | 						else | ||||||
|  | 						{ | ||||||
|  | 							htmltext = "guardian_leader_q10851_04.html"; | ||||||
|  | 						} | ||||||
|  | 						break; | ||||||
|  | 					} | ||||||
|  | 				} | ||||||
|  | 				break; | ||||||
|  | 			} | ||||||
|  | 			case State.COMPLETED: | ||||||
|  | 			{ | ||||||
|  | 				htmltext = getAlreadyCompletedMsg(player); | ||||||
|  | 				break; | ||||||
|  | 			} | ||||||
|  | 			 | ||||||
|  | 		} | ||||||
|  | 		return htmltext; | ||||||
|  | 	} | ||||||
|  | 	 | ||||||
|  | 	@Override | ||||||
|  | 	public String onKill(Npc npc, PlayerInstance killer, boolean isSummon) | ||||||
|  | 	{ | ||||||
|  | 		final QuestState qs = getQuestState(killer, false); | ||||||
|  | 		if ((qs != null) && qs.isCond(2)) | ||||||
|  | 		{ | ||||||
|  | 			switch (npc.getId()) | ||||||
|  | 			{ | ||||||
|  | 				case FLOWER_BUD: | ||||||
|  | 				{ | ||||||
|  | 					if (getQuestItemsCount(killer, FLOWER_BUD_SAMPLE) < 50) | ||||||
|  | 					{ | ||||||
|  | 						giveItems(killer, FLOWER_BUD_SAMPLE, 1); | ||||||
|  | 						playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET); | ||||||
|  | 					} | ||||||
|  | 					break; | ||||||
|  | 				} | ||||||
|  | 				case APHERUS: | ||||||
|  | 				{ | ||||||
|  | 					if (getQuestItemsCount(killer, APHERUS_SAMPLE) < 150) | ||||||
|  | 					{ | ||||||
|  | 						giveItems(killer, APHERUS_SAMPLE, 1); | ||||||
|  | 						playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET); | ||||||
|  | 					} | ||||||
|  | 					break; | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 			if ((getQuestItemsCount(killer, FLOWER_BUD_SAMPLE) >= 50) && (getQuestItemsCount(killer, APHERUS_SAMPLE) >= 150)) | ||||||
|  | 			{ | ||||||
|  | 				qs.setCond(3, true); | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 		return super.onKill(npc, killer, isSummon); | ||||||
|  | 	} | ||||||
|  | } | ||||||
| @@ -0,0 +1,5 @@ | |||||||
|  | <html><body>Celestiel:<br> | ||||||
|  | Ah, if you could spare the time, could you help me out?<br> | ||||||
|  | I need help for something, and you could be the one I can trust.<br> | ||||||
|  | <Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10851_ElvenBotany guardian_follower_q10851_04.htm">"What is it?"</Button> | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,4 @@ | |||||||
|  | <html><body>Celestiel:<br> | ||||||
|  | I'm sorry, but this is a dangerous place. We cannot guarantee your safety. Please take yourself some place safe.<br> | ||||||
|  | (This quest can only be undertaken by characters with Lv. 102 or higher whose faction level with the Mother Tree Guardian is 2 or higher.) | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,5 @@ | |||||||
|  | <html><body>Celestiel:<br> | ||||||
|  | I'm sorry, but I'm rather iffy about putting you on assignment.<br> | ||||||
|  | This is a dangerous place. Please take yourself some place safe.<br> | ||||||
|  | (This quest can only be undertaken by characters whose faction level with the Mother Tree Guardians is 2 or higher.) | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,6 @@ | |||||||
|  | <html><body>Celestiel:<br> | ||||||
|  | I am Celestiel. I have come here with Irene in search of a way to save the Mother Tree.<br> | ||||||
|  | I know how to do bits and pieces of many things. I'm usually studying changes in the plants and the soil here, but I need more samples for my research. That's why I'm asking you for help.<br> | ||||||
|  | I've been searching for the samples firsthand until now, but it's been taking me so long that I've been falling behind on my research. I have no choice but to dedicate myself to research while having somebody else hunt around for samples.<br> | ||||||
|  | <Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10851_ElvenBotany guardian_follower_q10851_05.htm">"What samples do you need?"</Button> | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,6 @@ | |||||||
|  | <html><body>Celestiel:<br> | ||||||
|  | Oh! The samples I need are samples of a few particular species of plant that live here.<br> | ||||||
|  | Until now, Fairy Mimyu has been helping me collect enough Nymph Stamen, but it's too hard finding samples other than those.<br> | ||||||
|  | But I'm a bit hesitant about asking Fairy Mimyu to find me the other samples too.<br> | ||||||
|  | <Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10851_ElvenBotany guardian_follower_q10851_06.htm">"What samples do I need to find?"</Button> | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,5 @@ | |||||||
|  | <html><body>Celestiel:<br> | ||||||
|  | Ah, so will you help me out?<br> | ||||||
|  | If that's the case, the samples I need are... oh, I guess you don't exactly how many of which samples I'll be needing, since Irene was the one who was managing the samples.<br>Would you go to Irene and ask which samples required for the research are?<br> | ||||||
|  | See, I've been bugging Irene with a bunch of questions, even just now... I think it would be better for you to go and ask instead of me. | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,4 @@ | |||||||
|  | <html><body>Celestiel:<br> | ||||||
|  | Please go to Irene and ask her which samples needed for the biological research are.<br> | ||||||
|  | If you ask her yourself, she's sure to give you a kind answer with a smile. | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,5 @@ | |||||||
|  | <html><body>Guardian Irene:<br> | ||||||
|  | What's going on?<br> | ||||||
|  | I thought you were speaking with Celestiel until just now.<br> | ||||||
|  | <Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10851_ElvenBotany guardian_leader_q10851_02.html">"So the samples..."</Button> | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,5 @@ | |||||||
|  | <html><body>Guardian Irene:<br> | ||||||
|  | I was wondering what Celestiel was talking so enthusiastically about. I guess you were talking about the samples.<br> | ||||||
|  | I swear she told me just a short while ago that she needed some kind of sample... Well, with her being as busy as she is nowadays with her research, her being so forgetful is understandable.<br> | ||||||
|  | Samples needed are <font color="LEVEL">150 Apherus Samples, and 50 Flower Bud Samples</font>. Samples can be obtained from <font color="LEVEL">Apherus, and Flower Buds</font>. | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,4 @@ | |||||||
|  | <html><body>Guardian Irene:<br> | ||||||
|  | You don't have enough samples.<br> | ||||||
|  | Samples needed are <font color="LEVEL">150 Apherus Samples, and 50 Flower Bud Samples</font>. Samples can be obtained from <font color="LEVEL">Apherus, and Flower Buds</font>. | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,5 @@ | |||||||
|  | <html><body>Guardian Irene:<br> | ||||||
|  | Are you done collecting the samples?<br> | ||||||
|  | We need samples to conduct research, but it's the part collecting the samples that discourages everyone. It's not so easy finding samples, is it?<br> | ||||||
|  | <Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10851_ElvenBotany guardian_leader_q10851_05.html">"Yes, right."</Button> | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,5 @@ | |||||||
|  | <html><body>Guardian Irene:<br> | ||||||
|  | Thank you. Using these samples, we will be able to investigate the growth and changes around here.<br> | ||||||
|  | If we discover what changes are going on right now in the Enchanted Valley, we might need to ask you to do some other work for us.<br> | ||||||
|  | If that happens, I hope you'll help us again. | ||||||
|  | </body></html> | ||||||
| @@ -456,6 +456,7 @@ import quests.Q10839_BlackbirdsNameValue.Q10839_BlackbirdsNameValue; | |||||||
| import quests.Q10840_TimeToRecover.Q10840_TimeToRecover; | import quests.Q10840_TimeToRecover.Q10840_TimeToRecover; | ||||||
| import quests.Q10841_DeepInsideAteliaFortress.Q10841_DeepInsideAteliaFortress; | import quests.Q10841_DeepInsideAteliaFortress.Q10841_DeepInsideAteliaFortress; | ||||||
| import quests.Q10843_AnomalyInTheEnchantedValley.Q10843_AnomalyInTheEnchantedValley; | import quests.Q10843_AnomalyInTheEnchantedValley.Q10843_AnomalyInTheEnchantedValley; | ||||||
|  | import quests.Q10851_ElvenBotany.Q10851_ElvenBotany; | ||||||
| import quests.not_done.Q00504_CompetitionForTheBanditStronghold; | import quests.not_done.Q00504_CompetitionForTheBanditStronghold; | ||||||
| import quests.not_done.Q00655_AGrandPlanForTamingWildBeasts; | import quests.not_done.Q00655_AGrandPlanForTamingWildBeasts; | ||||||
| import quests.not_done.Q00665_BasicTrainingForHunterGuildMember; | import quests.not_done.Q00665_BasicTrainingForHunterGuildMember; | ||||||
| @@ -529,7 +530,6 @@ import quests.not_done.Q10845_BloodyBattleRescueTheSmiths; | |||||||
| import quests.not_done.Q10846_BloodyBattleMeetingTheCommander; | import quests.not_done.Q10846_BloodyBattleMeetingTheCommander; | ||||||
| import quests.not_done.Q10848_TrialsBeforeTheBattle; | import quests.not_done.Q10848_TrialsBeforeTheBattle; | ||||||
| import quests.not_done.Q10849_TrialsForAdaptation; | import quests.not_done.Q10849_TrialsForAdaptation; | ||||||
| import quests.not_done.Q10851_ElvenBotany; |  | ||||||
| import quests.not_done.Q10852_TheMotherTreeRevivalProject; | import quests.not_done.Q10852_TheMotherTreeRevivalProject; | ||||||
| import quests.not_done.Q10853_ToWeakenTheGiants; | import quests.not_done.Q10853_ToWeakenTheGiants; | ||||||
| import quests.not_done.Q10854_ToSeizeTheFortress; | import quests.not_done.Q10854_ToSeizeTheFortress; | ||||||
| @@ -1067,7 +1067,7 @@ public class QuestMasterHandler | |||||||
| 		Q10846_BloodyBattleMeetingTheCommander.class, // TODO: Not done. | 		Q10846_BloodyBattleMeetingTheCommander.class, // TODO: Not done. | ||||||
| 		Q10848_TrialsBeforeTheBattle.class, // TODO: Not done. | 		Q10848_TrialsBeforeTheBattle.class, // TODO: Not done. | ||||||
| 		Q10849_TrialsForAdaptation.class, // TODO: Not done. | 		Q10849_TrialsForAdaptation.class, // TODO: Not done. | ||||||
| 		Q10851_ElvenBotany.class, // TODO: Not done. | 		Q10851_ElvenBotany.class, | ||||||
| 		Q10852_TheMotherTreeRevivalProject.class, // TODO: Not done. | 		Q10852_TheMotherTreeRevivalProject.class, // TODO: Not done. | ||||||
| 		Q10853_ToWeakenTheGiants.class, // TODO: Not done. | 		Q10853_ToWeakenTheGiants.class, // TODO: Not done. | ||||||
| 		Q10854_ToSeizeTheFortress.class, // TODO: Not done. | 		Q10854_ToSeizeTheFortress.class, // TODO: Not done. | ||||||
|   | |||||||
| @@ -1,36 +0,0 @@ | |||||||
| /* |  | ||||||
|  * This file is part of the L2J Mobius project. |  | ||||||
|  *  |  | ||||||
|  * This program 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. |  | ||||||
|  *  |  | ||||||
|  * This program 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.not_done; |  | ||||||
|  |  | ||||||
| import org.l2jmobius.Config; |  | ||||||
| import org.l2jmobius.gameserver.model.quest.Quest; |  | ||||||
|  |  | ||||||
| /** |  | ||||||
|  * @author Mobius |  | ||||||
|  */ |  | ||||||
| public class Q10851_ElvenBotany extends Quest |  | ||||||
| { |  | ||||||
| 	private static final int START_NPC = 34234; |  | ||||||
| 	 |  | ||||||
| 	public Q10851_ElvenBotany() |  | ||||||
| 	{ |  | ||||||
| 		super(10851); |  | ||||||
| 		addStartNpc(START_NPC); |  | ||||||
| 		addTalkId(START_NPC); |  | ||||||
| 		addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null)); |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| @@ -200,7 +200,6 @@ | |||||||
| 10846 Bloody Battle - Meeting the Commander | 10846 Bloody Battle - Meeting the Commander | ||||||
| 10848 Trials before the Battle | 10848 Trials before the Battle | ||||||
| 10849 Trials for Adaptation | 10849 Trials for Adaptation | ||||||
| 10851 Elven Botany |  | ||||||
| 10852 The Mother Tree Revival Project | 10852 The Mother Tree Revival Project | ||||||
| 10853 To Weaken the Giants | 10853 To Weaken the Giants | ||||||
| 10854 To Seize the Fortress | 10854 To Seize the Fortress | ||||||
|   | |||||||
							
								
								
									
										197
									
								
								L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10851_ElvenBotany/Q10851_ElvenBotany.java
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										197
									
								
								L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10851_ElvenBotany/Q10851_ElvenBotany.java
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,197 @@ | |||||||
|  | /* | ||||||
|  |  * This file is part of the L2J Mobius project. | ||||||
|  |  *  | ||||||
|  |  * This program 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. | ||||||
|  |  *  | ||||||
|  |  * This program 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.Q10851_ElvenBotany; | ||||||
|  |  | ||||||
|  | import org.l2jmobius.gameserver.enums.Faction; | ||||||
|  | import org.l2jmobius.gameserver.enums.QuestSound; | ||||||
|  | import org.l2jmobius.gameserver.enums.QuestType; | ||||||
|  | import org.l2jmobius.gameserver.model.actor.Npc; | ||||||
|  | import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; | ||||||
|  | import org.l2jmobius.gameserver.model.quest.Quest; | ||||||
|  | import org.l2jmobius.gameserver.model.quest.QuestState; | ||||||
|  | import org.l2jmobius.gameserver.model.quest.State; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Elven Botany (10851) | ||||||
|  |  * @URL https://l2wiki.com/Elven_Botany | ||||||
|  |  * @author Gigi | ||||||
|  |  * @date 2019-06-11 - [21:21:45] | ||||||
|  |  */ | ||||||
|  | public class Q10851_ElvenBotany extends Quest | ||||||
|  | { | ||||||
|  | 	// NPCs | ||||||
|  | 	private static final int CELESTIEL = 34234; | ||||||
|  | 	private static final int IRENE = 34233; | ||||||
|  | 	// Misc | ||||||
|  | 	private static final int MIN_LEVEL = 102; | ||||||
|  | 	// Monsters | ||||||
|  | 	private static final int FLOWER_BUD = 19600; | ||||||
|  | 	private static final int APHERUS = 23581; | ||||||
|  | 	// Items | ||||||
|  | 	private static final int APHERUS_SAMPLE = 47200; | ||||||
|  | 	private static final int FLOWER_BUD_SAMPLE = 47201; | ||||||
|  | 	private static final int BASIC_SUPPLY_BOX = 47178; | ||||||
|  | 	 | ||||||
|  | 	public Q10851_ElvenBotany() | ||||||
|  | 	{ | ||||||
|  | 		super(10851); | ||||||
|  | 		addStartNpc(CELESTIEL); | ||||||
|  | 		addTalkId(CELESTIEL, IRENE); | ||||||
|  | 		addKillId(FLOWER_BUD, APHERUS); | ||||||
|  | 		registerQuestItems(APHERUS_SAMPLE, FLOWER_BUD_SAMPLE); | ||||||
|  | 		addCondMinLevel(MIN_LEVEL, "guardian_follower_q10851_02.htm"); | ||||||
|  | 		addFactionLevel(Faction.MOTHER_TREE_GUARDIANS, 2, "guardian_follower_q10851_03.htm"); | ||||||
|  | 	} | ||||||
|  | 	 | ||||||
|  | 	@Override | ||||||
|  | 	public String onAdvEvent(String event, Npc npc, PlayerInstance player) | ||||||
|  | 	{ | ||||||
|  | 		final QuestState qs = getQuestState(player, false); | ||||||
|  | 		if (qs == null) | ||||||
|  | 		{ | ||||||
|  | 			return null; | ||||||
|  | 		} | ||||||
|  | 		 | ||||||
|  | 		String htmltext = event; | ||||||
|  | 		switch (event) | ||||||
|  | 		{ | ||||||
|  | 			case "guardian_follower_q10851_04.htm": | ||||||
|  | 			case "guardian_follower_q10851_05.htm": | ||||||
|  | 			{ | ||||||
|  | 				htmltext = event; | ||||||
|  | 				break; | ||||||
|  | 			} | ||||||
|  | 			case "guardian_follower_q10851_06.htm": | ||||||
|  | 			{ | ||||||
|  | 				qs.startQuest(); | ||||||
|  | 				htmltext = event; | ||||||
|  | 				break; | ||||||
|  | 			} | ||||||
|  | 			case "guardian_leader_q10851_02.html": | ||||||
|  | 			{ | ||||||
|  | 				qs.setCond(2, true); | ||||||
|  | 				htmltext = event; | ||||||
|  | 				break; | ||||||
|  | 			} | ||||||
|  | 			case "guardian_leader_q10851_05.html": | ||||||
|  | 			{ | ||||||
|  | 				if (qs.isCond(3) && (player.getLevel() >= MIN_LEVEL)) | ||||||
|  | 				{ | ||||||
|  | 					giveItems(player, BASIC_SUPPLY_BOX, 1); | ||||||
|  | 					addExpAndSp(player, 44_442_855_900L, 44_442_720); | ||||||
|  | 					qs.exitQuest(QuestType.ONE_TIME, true); | ||||||
|  | 					htmltext = event; | ||||||
|  | 				} | ||||||
|  | 				else | ||||||
|  | 				{ | ||||||
|  | 					htmltext = getNoQuestLevelRewardMsg(player); | ||||||
|  | 				} | ||||||
|  | 				break; | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 		return htmltext; | ||||||
|  | 	} | ||||||
|  | 	 | ||||||
|  | 	@Override | ||||||
|  | 	public String onTalk(Npc npc, PlayerInstance player) | ||||||
|  | 	{ | ||||||
|  | 		String htmltext = getNoQuestMsg(player); | ||||||
|  | 		final QuestState qs = getQuestState(player, true); | ||||||
|  | 		 | ||||||
|  | 		switch (qs.getState()) | ||||||
|  | 		{ | ||||||
|  | 			case State.CREATED: | ||||||
|  | 			{ | ||||||
|  | 				htmltext = "guardian_follower_q10851_04.htm"; | ||||||
|  | 				break; | ||||||
|  | 			} | ||||||
|  | 			case State.STARTED: | ||||||
|  | 			{ | ||||||
|  | 				switch (npc.getId()) | ||||||
|  | 				{ | ||||||
|  | 					case CELESTIEL: | ||||||
|  | 					{ | ||||||
|  | 						if (qs.getCond() > 0) | ||||||
|  | 						{ | ||||||
|  | 							htmltext = "guardian_follower_q10851_07.html"; | ||||||
|  | 						} | ||||||
|  | 						break; | ||||||
|  | 					} | ||||||
|  | 					case IRENE: | ||||||
|  | 					{ | ||||||
|  | 						if (qs.isCond(1)) | ||||||
|  | 						{ | ||||||
|  | 							htmltext = "guardian_leader_q10851_01.html"; | ||||||
|  | 						} | ||||||
|  | 						else if (qs.isCond(2)) | ||||||
|  | 						{ | ||||||
|  | 							htmltext = "guardian_leader_q10851_03.html"; | ||||||
|  | 						} | ||||||
|  | 						else | ||||||
|  | 						{ | ||||||
|  | 							htmltext = "guardian_leader_q10851_04.html"; | ||||||
|  | 						} | ||||||
|  | 						break; | ||||||
|  | 					} | ||||||
|  | 				} | ||||||
|  | 				break; | ||||||
|  | 			} | ||||||
|  | 			case State.COMPLETED: | ||||||
|  | 			{ | ||||||
|  | 				htmltext = getAlreadyCompletedMsg(player); | ||||||
|  | 				break; | ||||||
|  | 			} | ||||||
|  | 			 | ||||||
|  | 		} | ||||||
|  | 		return htmltext; | ||||||
|  | 	} | ||||||
|  | 	 | ||||||
|  | 	@Override | ||||||
|  | 	public String onKill(Npc npc, PlayerInstance killer, boolean isSummon) | ||||||
|  | 	{ | ||||||
|  | 		final QuestState qs = getQuestState(killer, false); | ||||||
|  | 		if ((qs != null) && qs.isCond(2)) | ||||||
|  | 		{ | ||||||
|  | 			switch (npc.getId()) | ||||||
|  | 			{ | ||||||
|  | 				case FLOWER_BUD: | ||||||
|  | 				{ | ||||||
|  | 					if (getQuestItemsCount(killer, FLOWER_BUD_SAMPLE) < 50) | ||||||
|  | 					{ | ||||||
|  | 						giveItems(killer, FLOWER_BUD_SAMPLE, 1); | ||||||
|  | 						playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET); | ||||||
|  | 					} | ||||||
|  | 					break; | ||||||
|  | 				} | ||||||
|  | 				case APHERUS: | ||||||
|  | 				{ | ||||||
|  | 					if (getQuestItemsCount(killer, APHERUS_SAMPLE) < 150) | ||||||
|  | 					{ | ||||||
|  | 						giveItems(killer, APHERUS_SAMPLE, 1); | ||||||
|  | 						playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET); | ||||||
|  | 					} | ||||||
|  | 					break; | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 			if ((getQuestItemsCount(killer, FLOWER_BUD_SAMPLE) >= 50) && (getQuestItemsCount(killer, APHERUS_SAMPLE) >= 150)) | ||||||
|  | 			{ | ||||||
|  | 				qs.setCond(3, true); | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 		return super.onKill(npc, killer, isSummon); | ||||||
|  | 	} | ||||||
|  | } | ||||||
| @@ -0,0 +1,5 @@ | |||||||
|  | <html><body>Celestiel:<br> | ||||||
|  | Ah, if you could spare the time, could you help me out?<br> | ||||||
|  | I need help for something, and you could be the one I can trust.<br> | ||||||
|  | <Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10851_ElvenBotany guardian_follower_q10851_04.htm">"What is it?"</Button> | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,4 @@ | |||||||
|  | <html><body>Celestiel:<br> | ||||||
|  | I'm sorry, but this is a dangerous place. We cannot guarantee your safety. Please take yourself some place safe.<br> | ||||||
|  | (This quest can only be undertaken by characters with Lv. 102 or higher whose faction level with the Mother Tree Guardian is 2 or higher.) | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,5 @@ | |||||||
|  | <html><body>Celestiel:<br> | ||||||
|  | I'm sorry, but I'm rather iffy about putting you on assignment.<br> | ||||||
|  | This is a dangerous place. Please take yourself some place safe.<br> | ||||||
|  | (This quest can only be undertaken by characters whose faction level with the Mother Tree Guardians is 2 or higher.) | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,6 @@ | |||||||
|  | <html><body>Celestiel:<br> | ||||||
|  | I am Celestiel. I have come here with Irene in search of a way to save the Mother Tree.<br> | ||||||
|  | I know how to do bits and pieces of many things. I'm usually studying changes in the plants and the soil here, but I need more samples for my research. That's why I'm asking you for help.<br> | ||||||
|  | I've been searching for the samples firsthand until now, but it's been taking me so long that I've been falling behind on my research. I have no choice but to dedicate myself to research while having somebody else hunt around for samples.<br> | ||||||
|  | <Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10851_ElvenBotany guardian_follower_q10851_05.htm">"What samples do you need?"</Button> | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,6 @@ | |||||||
|  | <html><body>Celestiel:<br> | ||||||
|  | Oh! The samples I need are samples of a few particular species of plant that live here.<br> | ||||||
|  | Until now, Fairy Mimyu has been helping me collect enough Nymph Stamen, but it's too hard finding samples other than those.<br> | ||||||
|  | But I'm a bit hesitant about asking Fairy Mimyu to find me the other samples too.<br> | ||||||
|  | <Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10851_ElvenBotany guardian_follower_q10851_06.htm">"What samples do I need to find?"</Button> | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,5 @@ | |||||||
|  | <html><body>Celestiel:<br> | ||||||
|  | Ah, so will you help me out?<br> | ||||||
|  | If that's the case, the samples I need are... oh, I guess you don't exactly how many of which samples I'll be needing, since Irene was the one who was managing the samples.<br>Would you go to Irene and ask which samples required for the research are?<br> | ||||||
|  | See, I've been bugging Irene with a bunch of questions, even just now... I think it would be better for you to go and ask instead of me. | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,4 @@ | |||||||
|  | <html><body>Celestiel:<br> | ||||||
|  | Please go to Irene and ask her which samples needed for the biological research are.<br> | ||||||
|  | If you ask her yourself, she's sure to give you a kind answer with a smile. | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,5 @@ | |||||||
|  | <html><body>Guardian Irene:<br> | ||||||
|  | What's going on?<br> | ||||||
|  | I thought you were speaking with Celestiel until just now.<br> | ||||||
|  | <Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10851_ElvenBotany guardian_leader_q10851_02.html">"So the samples..."</Button> | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,5 @@ | |||||||
|  | <html><body>Guardian Irene:<br> | ||||||
|  | I was wondering what Celestiel was talking so enthusiastically about. I guess you were talking about the samples.<br> | ||||||
|  | I swear she told me just a short while ago that she needed some kind of sample... Well, with her being as busy as she is nowadays with her research, her being so forgetful is understandable.<br> | ||||||
|  | Samples needed are <font color="LEVEL">150 Apherus Samples, and 50 Flower Bud Samples</font>. Samples can be obtained from <font color="LEVEL">Apherus, and Flower Buds</font>. | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,4 @@ | |||||||
|  | <html><body>Guardian Irene:<br> | ||||||
|  | You don't have enough samples.<br> | ||||||
|  | Samples needed are <font color="LEVEL">150 Apherus Samples, and 50 Flower Bud Samples</font>. Samples can be obtained from <font color="LEVEL">Apherus, and Flower Buds</font>. | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,5 @@ | |||||||
|  | <html><body>Guardian Irene:<br> | ||||||
|  | Are you done collecting the samples?<br> | ||||||
|  | We need samples to conduct research, but it's the part collecting the samples that discourages everyone. It's not so easy finding samples, is it?<br> | ||||||
|  | <Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10851_ElvenBotany guardian_leader_q10851_05.html">"Yes, right."</Button> | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,5 @@ | |||||||
|  | <html><body>Guardian Irene:<br> | ||||||
|  | Thank you. Using these samples, we will be able to investigate the growth and changes around here.<br> | ||||||
|  | If we discover what changes are going on right now in the Enchanted Valley, we might need to ask you to do some other work for us.<br> | ||||||
|  | If that happens, I hope you'll help us again. | ||||||
|  | </body></html> | ||||||
| @@ -462,6 +462,7 @@ import quests.Q10839_BlackbirdsNameValue.Q10839_BlackbirdsNameValue; | |||||||
| import quests.Q10840_TimeToRecover.Q10840_TimeToRecover; | import quests.Q10840_TimeToRecover.Q10840_TimeToRecover; | ||||||
| import quests.Q10841_DeepInsideAteliaFortress.Q10841_DeepInsideAteliaFortress; | import quests.Q10841_DeepInsideAteliaFortress.Q10841_DeepInsideAteliaFortress; | ||||||
| import quests.Q10843_AnomalyInTheEnchantedValley.Q10843_AnomalyInTheEnchantedValley; | import quests.Q10843_AnomalyInTheEnchantedValley.Q10843_AnomalyInTheEnchantedValley; | ||||||
|  | import quests.Q10851_ElvenBotany.Q10851_ElvenBotany; | ||||||
| import quests.not_done.*; | import quests.not_done.*; | ||||||
|  |  | ||||||
| /** | /** | ||||||
| @@ -1035,7 +1036,7 @@ public class QuestMasterHandler | |||||||
| 		Q10846_BloodyBattleMeetingTheCommander.class, // TODO: Not done. | 		Q10846_BloodyBattleMeetingTheCommander.class, // TODO: Not done. | ||||||
| 		Q10848_TrialsBeforeTheBattle.class, // TODO: Not done. | 		Q10848_TrialsBeforeTheBattle.class, // TODO: Not done. | ||||||
| 		Q10849_TrialsForAdaptation.class, // TODO: Not done. | 		Q10849_TrialsForAdaptation.class, // TODO: Not done. | ||||||
| 		Q10851_ElvenBotany.class, // TODO: Not done. | 		Q10851_ElvenBotany.class, | ||||||
| 		Q10852_TheMotherTreeRevivalProject.class, // TODO: Not done. | 		Q10852_TheMotherTreeRevivalProject.class, // TODO: Not done. | ||||||
| 		Q10853_ToWeakenTheGiants.class, // TODO: Not done. | 		Q10853_ToWeakenTheGiants.class, // TODO: Not done. | ||||||
| 		Q10854_ToSeizeTheFortress.class, // TODO: Not done. | 		Q10854_ToSeizeTheFortress.class, // TODO: Not done. | ||||||
|   | |||||||
| @@ -1,36 +0,0 @@ | |||||||
| /* |  | ||||||
|  * This file is part of the L2J Mobius project. |  | ||||||
|  *  |  | ||||||
|  * This program 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. |  | ||||||
|  *  |  | ||||||
|  * This program 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.not_done; |  | ||||||
|  |  | ||||||
| import org.l2jmobius.Config; |  | ||||||
| import org.l2jmobius.gameserver.model.quest.Quest; |  | ||||||
|  |  | ||||||
| /** |  | ||||||
|  * @author Mobius |  | ||||||
|  */ |  | ||||||
| public class Q10851_ElvenBotany extends Quest |  | ||||||
| { |  | ||||||
| 	private static final int START_NPC = 34234; |  | ||||||
| 	 |  | ||||||
| 	public Q10851_ElvenBotany() |  | ||||||
| 	{ |  | ||||||
| 		super(10851); |  | ||||||
| 		addStartNpc(START_NPC); |  | ||||||
| 		addTalkId(START_NPC); |  | ||||||
| 		addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null)); |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| @@ -212,7 +212,6 @@ | |||||||
| 10846 Bloody Battle - Meeting the Commander | 10846 Bloody Battle - Meeting the Commander | ||||||
| 10848 Trials before the Battle | 10848 Trials before the Battle | ||||||
| 10849 Trials for Adaptation | 10849 Trials for Adaptation | ||||||
| 10851 Elven Botany |  | ||||||
| 10852 The Mother Tree Revival Project | 10852 The Mother Tree Revival Project | ||||||
| 10853 To Weaken the Giants | 10853 To Weaken the Giants | ||||||
| 10854 To Seize the Fortress | 10854 To Seize the Fortress | ||||||
|   | |||||||
							
								
								
									
										197
									
								
								L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10851_ElvenBotany/Q10851_ElvenBotany.java
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										197
									
								
								L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10851_ElvenBotany/Q10851_ElvenBotany.java
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,197 @@ | |||||||
|  | /* | ||||||
|  |  * This file is part of the L2J Mobius project. | ||||||
|  |  *  | ||||||
|  |  * This program 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. | ||||||
|  |  *  | ||||||
|  |  * This program 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.Q10851_ElvenBotany; | ||||||
|  |  | ||||||
|  | import org.l2jmobius.gameserver.enums.Faction; | ||||||
|  | import org.l2jmobius.gameserver.enums.QuestSound; | ||||||
|  | import org.l2jmobius.gameserver.enums.QuestType; | ||||||
|  | import org.l2jmobius.gameserver.model.actor.Npc; | ||||||
|  | import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; | ||||||
|  | import org.l2jmobius.gameserver.model.quest.Quest; | ||||||
|  | import org.l2jmobius.gameserver.model.quest.QuestState; | ||||||
|  | import org.l2jmobius.gameserver.model.quest.State; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Elven Botany (10851) | ||||||
|  |  * @URL https://l2wiki.com/Elven_Botany | ||||||
|  |  * @author Gigi | ||||||
|  |  * @date 2019-06-11 - [21:21:45] | ||||||
|  |  */ | ||||||
|  | public class Q10851_ElvenBotany extends Quest | ||||||
|  | { | ||||||
|  | 	// NPCs | ||||||
|  | 	private static final int CELESTIEL = 34234; | ||||||
|  | 	private static final int IRENE = 34233; | ||||||
|  | 	// Misc | ||||||
|  | 	private static final int MIN_LEVEL = 102; | ||||||
|  | 	// Monsters | ||||||
|  | 	private static final int FLOWER_BUD = 19600; | ||||||
|  | 	private static final int APHERUS = 23581; | ||||||
|  | 	// Items | ||||||
|  | 	private static final int APHERUS_SAMPLE = 47200; | ||||||
|  | 	private static final int FLOWER_BUD_SAMPLE = 47201; | ||||||
|  | 	private static final int BASIC_SUPPLY_BOX = 47178; | ||||||
|  | 	 | ||||||
|  | 	public Q10851_ElvenBotany() | ||||||
|  | 	{ | ||||||
|  | 		super(10851); | ||||||
|  | 		addStartNpc(CELESTIEL); | ||||||
|  | 		addTalkId(CELESTIEL, IRENE); | ||||||
|  | 		addKillId(FLOWER_BUD, APHERUS); | ||||||
|  | 		registerQuestItems(APHERUS_SAMPLE, FLOWER_BUD_SAMPLE); | ||||||
|  | 		addCondMinLevel(MIN_LEVEL, "guardian_follower_q10851_02.htm"); | ||||||
|  | 		addFactionLevel(Faction.MOTHER_TREE_GUARDIANS, 2, "guardian_follower_q10851_03.htm"); | ||||||
|  | 	} | ||||||
|  | 	 | ||||||
|  | 	@Override | ||||||
|  | 	public String onAdvEvent(String event, Npc npc, PlayerInstance player) | ||||||
|  | 	{ | ||||||
|  | 		final QuestState qs = getQuestState(player, false); | ||||||
|  | 		if (qs == null) | ||||||
|  | 		{ | ||||||
|  | 			return null; | ||||||
|  | 		} | ||||||
|  | 		 | ||||||
|  | 		String htmltext = event; | ||||||
|  | 		switch (event) | ||||||
|  | 		{ | ||||||
|  | 			case "guardian_follower_q10851_04.htm": | ||||||
|  | 			case "guardian_follower_q10851_05.htm": | ||||||
|  | 			{ | ||||||
|  | 				htmltext = event; | ||||||
|  | 				break; | ||||||
|  | 			} | ||||||
|  | 			case "guardian_follower_q10851_06.htm": | ||||||
|  | 			{ | ||||||
|  | 				qs.startQuest(); | ||||||
|  | 				htmltext = event; | ||||||
|  | 				break; | ||||||
|  | 			} | ||||||
|  | 			case "guardian_leader_q10851_02.html": | ||||||
|  | 			{ | ||||||
|  | 				qs.setCond(2, true); | ||||||
|  | 				htmltext = event; | ||||||
|  | 				break; | ||||||
|  | 			} | ||||||
|  | 			case "guardian_leader_q10851_05.html": | ||||||
|  | 			{ | ||||||
|  | 				if (qs.isCond(3) && (player.getLevel() >= MIN_LEVEL)) | ||||||
|  | 				{ | ||||||
|  | 					giveItems(player, BASIC_SUPPLY_BOX, 1); | ||||||
|  | 					addExpAndSp(player, 44_442_855_900L, 44_442_720); | ||||||
|  | 					qs.exitQuest(QuestType.ONE_TIME, true); | ||||||
|  | 					htmltext = event; | ||||||
|  | 				} | ||||||
|  | 				else | ||||||
|  | 				{ | ||||||
|  | 					htmltext = getNoQuestLevelRewardMsg(player); | ||||||
|  | 				} | ||||||
|  | 				break; | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 		return htmltext; | ||||||
|  | 	} | ||||||
|  | 	 | ||||||
|  | 	@Override | ||||||
|  | 	public String onTalk(Npc npc, PlayerInstance player) | ||||||
|  | 	{ | ||||||
|  | 		String htmltext = getNoQuestMsg(player); | ||||||
|  | 		final QuestState qs = getQuestState(player, true); | ||||||
|  | 		 | ||||||
|  | 		switch (qs.getState()) | ||||||
|  | 		{ | ||||||
|  | 			case State.CREATED: | ||||||
|  | 			{ | ||||||
|  | 				htmltext = "guardian_follower_q10851_04.htm"; | ||||||
|  | 				break; | ||||||
|  | 			} | ||||||
|  | 			case State.STARTED: | ||||||
|  | 			{ | ||||||
|  | 				switch (npc.getId()) | ||||||
|  | 				{ | ||||||
|  | 					case CELESTIEL: | ||||||
|  | 					{ | ||||||
|  | 						if (qs.getCond() > 0) | ||||||
|  | 						{ | ||||||
|  | 							htmltext = "guardian_follower_q10851_07.html"; | ||||||
|  | 						} | ||||||
|  | 						break; | ||||||
|  | 					} | ||||||
|  | 					case IRENE: | ||||||
|  | 					{ | ||||||
|  | 						if (qs.isCond(1)) | ||||||
|  | 						{ | ||||||
|  | 							htmltext = "guardian_leader_q10851_01.html"; | ||||||
|  | 						} | ||||||
|  | 						else if (qs.isCond(2)) | ||||||
|  | 						{ | ||||||
|  | 							htmltext = "guardian_leader_q10851_03.html"; | ||||||
|  | 						} | ||||||
|  | 						else | ||||||
|  | 						{ | ||||||
|  | 							htmltext = "guardian_leader_q10851_04.html"; | ||||||
|  | 						} | ||||||
|  | 						break; | ||||||
|  | 					} | ||||||
|  | 				} | ||||||
|  | 				break; | ||||||
|  | 			} | ||||||
|  | 			case State.COMPLETED: | ||||||
|  | 			{ | ||||||
|  | 				htmltext = getAlreadyCompletedMsg(player); | ||||||
|  | 				break; | ||||||
|  | 			} | ||||||
|  | 			 | ||||||
|  | 		} | ||||||
|  | 		return htmltext; | ||||||
|  | 	} | ||||||
|  | 	 | ||||||
|  | 	@Override | ||||||
|  | 	public String onKill(Npc npc, PlayerInstance killer, boolean isSummon) | ||||||
|  | 	{ | ||||||
|  | 		final QuestState qs = getQuestState(killer, false); | ||||||
|  | 		if ((qs != null) && qs.isCond(2)) | ||||||
|  | 		{ | ||||||
|  | 			switch (npc.getId()) | ||||||
|  | 			{ | ||||||
|  | 				case FLOWER_BUD: | ||||||
|  | 				{ | ||||||
|  | 					if (getQuestItemsCount(killer, FLOWER_BUD_SAMPLE) < 50) | ||||||
|  | 					{ | ||||||
|  | 						giveItems(killer, FLOWER_BUD_SAMPLE, 1); | ||||||
|  | 						playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET); | ||||||
|  | 					} | ||||||
|  | 					break; | ||||||
|  | 				} | ||||||
|  | 				case APHERUS: | ||||||
|  | 				{ | ||||||
|  | 					if (getQuestItemsCount(killer, APHERUS_SAMPLE) < 150) | ||||||
|  | 					{ | ||||||
|  | 						giveItems(killer, APHERUS_SAMPLE, 1); | ||||||
|  | 						playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET); | ||||||
|  | 					} | ||||||
|  | 					break; | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 			if ((getQuestItemsCount(killer, FLOWER_BUD_SAMPLE) >= 50) && (getQuestItemsCount(killer, APHERUS_SAMPLE) >= 150)) | ||||||
|  | 			{ | ||||||
|  | 				qs.setCond(3, true); | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 		return super.onKill(npc, killer, isSummon); | ||||||
|  | 	} | ||||||
|  | } | ||||||
| @@ -0,0 +1,5 @@ | |||||||
|  | <html><body>Celestiel:<br> | ||||||
|  | Ah, if you could spare the time, could you help me out?<br> | ||||||
|  | I need help for something, and you could be the one I can trust.<br> | ||||||
|  | <Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10851_ElvenBotany guardian_follower_q10851_04.htm">"What is it?"</Button> | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,4 @@ | |||||||
|  | <html><body>Celestiel:<br> | ||||||
|  | I'm sorry, but this is a dangerous place. We cannot guarantee your safety. Please take yourself some place safe.<br> | ||||||
|  | (This quest can only be undertaken by characters with Lv. 102 or higher whose faction level with the Mother Tree Guardian is 2 or higher.) | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,5 @@ | |||||||
|  | <html><body>Celestiel:<br> | ||||||
|  | I'm sorry, but I'm rather iffy about putting you on assignment.<br> | ||||||
|  | This is a dangerous place. Please take yourself some place safe.<br> | ||||||
|  | (This quest can only be undertaken by characters whose faction level with the Mother Tree Guardians is 2 or higher.) | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,6 @@ | |||||||
|  | <html><body>Celestiel:<br> | ||||||
|  | I am Celestiel. I have come here with Irene in search of a way to save the Mother Tree.<br> | ||||||
|  | I know how to do bits and pieces of many things. I'm usually studying changes in the plants and the soil here, but I need more samples for my research. That's why I'm asking you for help.<br> | ||||||
|  | I've been searching for the samples firsthand until now, but it's been taking me so long that I've been falling behind on my research. I have no choice but to dedicate myself to research while having somebody else hunt around for samples.<br> | ||||||
|  | <Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10851_ElvenBotany guardian_follower_q10851_05.htm">"What samples do you need?"</Button> | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,6 @@ | |||||||
|  | <html><body>Celestiel:<br> | ||||||
|  | Oh! The samples I need are samples of a few particular species of plant that live here.<br> | ||||||
|  | Until now, Fairy Mimyu has been helping me collect enough Nymph Stamen, but it's too hard finding samples other than those.<br> | ||||||
|  | But I'm a bit hesitant about asking Fairy Mimyu to find me the other samples too.<br> | ||||||
|  | <Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10851_ElvenBotany guardian_follower_q10851_06.htm">"What samples do I need to find?"</Button> | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,5 @@ | |||||||
|  | <html><body>Celestiel:<br> | ||||||
|  | Ah, so will you help me out?<br> | ||||||
|  | If that's the case, the samples I need are... oh, I guess you don't exactly how many of which samples I'll be needing, since Irene was the one who was managing the samples.<br>Would you go to Irene and ask which samples required for the research are?<br> | ||||||
|  | See, I've been bugging Irene with a bunch of questions, even just now... I think it would be better for you to go and ask instead of me. | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,4 @@ | |||||||
|  | <html><body>Celestiel:<br> | ||||||
|  | Please go to Irene and ask her which samples needed for the biological research are.<br> | ||||||
|  | If you ask her yourself, she's sure to give you a kind answer with a smile. | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,5 @@ | |||||||
|  | <html><body>Guardian Irene:<br> | ||||||
|  | What's going on?<br> | ||||||
|  | I thought you were speaking with Celestiel until just now.<br> | ||||||
|  | <Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10851_ElvenBotany guardian_leader_q10851_02.html">"So the samples..."</Button> | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,5 @@ | |||||||
|  | <html><body>Guardian Irene:<br> | ||||||
|  | I was wondering what Celestiel was talking so enthusiastically about. I guess you were talking about the samples.<br> | ||||||
|  | I swear she told me just a short while ago that she needed some kind of sample... Well, with her being as busy as she is nowadays with her research, her being so forgetful is understandable.<br> | ||||||
|  | Samples needed are <font color="LEVEL">150 Apherus Samples, and 50 Flower Bud Samples</font>. Samples can be obtained from <font color="LEVEL">Apherus, and Flower Buds</font>. | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,4 @@ | |||||||
|  | <html><body>Guardian Irene:<br> | ||||||
|  | You don't have enough samples.<br> | ||||||
|  | Samples needed are <font color="LEVEL">150 Apherus Samples, and 50 Flower Bud Samples</font>. Samples can be obtained from <font color="LEVEL">Apherus, and Flower Buds</font>. | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,5 @@ | |||||||
|  | <html><body>Guardian Irene:<br> | ||||||
|  | Are you done collecting the samples?<br> | ||||||
|  | We need samples to conduct research, but it's the part collecting the samples that discourages everyone. It's not so easy finding samples, is it?<br> | ||||||
|  | <Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10851_ElvenBotany guardian_leader_q10851_05.html">"Yes, right."</Button> | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,5 @@ | |||||||
|  | <html><body>Guardian Irene:<br> | ||||||
|  | Thank you. Using these samples, we will be able to investigate the growth and changes around here.<br> | ||||||
|  | If we discover what changes are going on right now in the Enchanted Valley, we might need to ask you to do some other work for us.<br> | ||||||
|  | If that happens, I hope you'll help us again. | ||||||
|  | </body></html> | ||||||
| @@ -412,6 +412,7 @@ import quests.Q10839_BlackbirdsNameValue.Q10839_BlackbirdsNameValue; | |||||||
| import quests.Q10840_TimeToRecover.Q10840_TimeToRecover; | import quests.Q10840_TimeToRecover.Q10840_TimeToRecover; | ||||||
| import quests.Q10841_DeepInsideAteliaFortress.Q10841_DeepInsideAteliaFortress; | import quests.Q10841_DeepInsideAteliaFortress.Q10841_DeepInsideAteliaFortress; | ||||||
| import quests.Q10843_AnomalyInTheEnchantedValley.Q10843_AnomalyInTheEnchantedValley; | import quests.Q10843_AnomalyInTheEnchantedValley.Q10843_AnomalyInTheEnchantedValley; | ||||||
|  | import quests.Q10851_ElvenBotany.Q10851_ElvenBotany; | ||||||
| import quests.custom.Q00589_ASecretChange.Q00589_ASecretChange; | import quests.custom.Q00589_ASecretChange.Q00589_ASecretChange; | ||||||
| import quests.custom.Q00590_ToEachTheirOwn.Q00590_ToEachTheirOwn; | import quests.custom.Q00590_ToEachTheirOwn.Q00590_ToEachTheirOwn; | ||||||
| import quests.not_done.*; | import quests.not_done.*; | ||||||
| @@ -944,7 +945,7 @@ public class QuestMasterHandler | |||||||
| 		Q10846_BloodyBattleMeetingTheCommander.class, // TODO: Not done. | 		Q10846_BloodyBattleMeetingTheCommander.class, // TODO: Not done. | ||||||
| 		Q10848_TrialsBeforeTheBattle.class, // TODO: Not done. | 		Q10848_TrialsBeforeTheBattle.class, // TODO: Not done. | ||||||
| 		Q10849_TrialsForAdaptation.class, // TODO: Not done. | 		Q10849_TrialsForAdaptation.class, // TODO: Not done. | ||||||
| 		Q10851_ElvenBotany.class, // TODO: Not done. | 		Q10851_ElvenBotany.class, | ||||||
| 		Q10852_TheMotherTreeRevivalProject.class, // TODO: Not done. | 		Q10852_TheMotherTreeRevivalProject.class, // TODO: Not done. | ||||||
| 		Q10853_ToWeakenTheGiants.class, // TODO: Not done. | 		Q10853_ToWeakenTheGiants.class, // TODO: Not done. | ||||||
| 		Q10854_ToSeizeTheFortress.class, // TODO: Not done. | 		Q10854_ToSeizeTheFortress.class, // TODO: Not done. | ||||||
|   | |||||||
| @@ -1,36 +0,0 @@ | |||||||
| /* |  | ||||||
|  * This file is part of the L2J Mobius project. |  | ||||||
|  *  |  | ||||||
|  * This program 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. |  | ||||||
|  *  |  | ||||||
|  * This program 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.not_done; |  | ||||||
|  |  | ||||||
| import org.l2jmobius.Config; |  | ||||||
| import org.l2jmobius.gameserver.model.quest.Quest; |  | ||||||
|  |  | ||||||
| /** |  | ||||||
|  * @author Mobius |  | ||||||
|  */ |  | ||||||
| public class Q10851_ElvenBotany extends Quest |  | ||||||
| { |  | ||||||
| 	private static final int START_NPC = 34234; |  | ||||||
| 	 |  | ||||||
| 	public Q10851_ElvenBotany() |  | ||||||
| 	{ |  | ||||||
| 		super(10851); |  | ||||||
| 		addStartNpc(START_NPC); |  | ||||||
| 		addTalkId(START_NPC); |  | ||||||
| 		addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null)); |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| @@ -220,7 +220,6 @@ | |||||||
| 10846 Bloody Battle - Meeting the Commander | 10846 Bloody Battle - Meeting the Commander | ||||||
| 10848 Trials before the Battle | 10848 Trials before the Battle | ||||||
| 10849 Trials for Adaptation | 10849 Trials for Adaptation | ||||||
| 10851 Elven Botany |  | ||||||
| 10852 The Mother Tree Revival Project | 10852 The Mother Tree Revival Project | ||||||
| 10853 To Weaken the Giants | 10853 To Weaken the Giants | ||||||
| 10854 To Seize the Fortress | 10854 To Seize the Fortress | ||||||
|   | |||||||
							
								
								
									
										197
									
								
								L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10851_ElvenBotany/Q10851_ElvenBotany.java
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										197
									
								
								L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10851_ElvenBotany/Q10851_ElvenBotany.java
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,197 @@ | |||||||
|  | /* | ||||||
|  |  * This file is part of the L2J Mobius project. | ||||||
|  |  *  | ||||||
|  |  * This program 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. | ||||||
|  |  *  | ||||||
|  |  * This program 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.Q10851_ElvenBotany; | ||||||
|  |  | ||||||
|  | import org.l2jmobius.gameserver.enums.Faction; | ||||||
|  | import org.l2jmobius.gameserver.enums.QuestSound; | ||||||
|  | import org.l2jmobius.gameserver.enums.QuestType; | ||||||
|  | import org.l2jmobius.gameserver.model.actor.Npc; | ||||||
|  | import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; | ||||||
|  | import org.l2jmobius.gameserver.model.quest.Quest; | ||||||
|  | import org.l2jmobius.gameserver.model.quest.QuestState; | ||||||
|  | import org.l2jmobius.gameserver.model.quest.State; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Elven Botany (10851) | ||||||
|  |  * @URL https://l2wiki.com/Elven_Botany | ||||||
|  |  * @author Gigi | ||||||
|  |  * @date 2019-06-11 - [21:21:45] | ||||||
|  |  */ | ||||||
|  | public class Q10851_ElvenBotany extends Quest | ||||||
|  | { | ||||||
|  | 	// NPCs | ||||||
|  | 	private static final int CELESTIEL = 34234; | ||||||
|  | 	private static final int IRENE = 34233; | ||||||
|  | 	// Misc | ||||||
|  | 	private static final int MIN_LEVEL = 102; | ||||||
|  | 	// Monsters | ||||||
|  | 	private static final int FLOWER_BUD = 19600; | ||||||
|  | 	private static final int APHERUS = 23581; | ||||||
|  | 	// Items | ||||||
|  | 	private static final int APHERUS_SAMPLE = 47200; | ||||||
|  | 	private static final int FLOWER_BUD_SAMPLE = 47201; | ||||||
|  | 	private static final int BASIC_SUPPLY_BOX = 47178; | ||||||
|  | 	 | ||||||
|  | 	public Q10851_ElvenBotany() | ||||||
|  | 	{ | ||||||
|  | 		super(10851); | ||||||
|  | 		addStartNpc(CELESTIEL); | ||||||
|  | 		addTalkId(CELESTIEL, IRENE); | ||||||
|  | 		addKillId(FLOWER_BUD, APHERUS); | ||||||
|  | 		registerQuestItems(APHERUS_SAMPLE, FLOWER_BUD_SAMPLE); | ||||||
|  | 		addCondMinLevel(MIN_LEVEL, "guardian_follower_q10851_02.htm"); | ||||||
|  | 		addFactionLevel(Faction.MOTHER_TREE_GUARDIANS, 2, "guardian_follower_q10851_03.htm"); | ||||||
|  | 	} | ||||||
|  | 	 | ||||||
|  | 	@Override | ||||||
|  | 	public String onAdvEvent(String event, Npc npc, PlayerInstance player) | ||||||
|  | 	{ | ||||||
|  | 		final QuestState qs = getQuestState(player, false); | ||||||
|  | 		if (qs == null) | ||||||
|  | 		{ | ||||||
|  | 			return null; | ||||||
|  | 		} | ||||||
|  | 		 | ||||||
|  | 		String htmltext = event; | ||||||
|  | 		switch (event) | ||||||
|  | 		{ | ||||||
|  | 			case "guardian_follower_q10851_04.htm": | ||||||
|  | 			case "guardian_follower_q10851_05.htm": | ||||||
|  | 			{ | ||||||
|  | 				htmltext = event; | ||||||
|  | 				break; | ||||||
|  | 			} | ||||||
|  | 			case "guardian_follower_q10851_06.htm": | ||||||
|  | 			{ | ||||||
|  | 				qs.startQuest(); | ||||||
|  | 				htmltext = event; | ||||||
|  | 				break; | ||||||
|  | 			} | ||||||
|  | 			case "guardian_leader_q10851_02.html": | ||||||
|  | 			{ | ||||||
|  | 				qs.setCond(2, true); | ||||||
|  | 				htmltext = event; | ||||||
|  | 				break; | ||||||
|  | 			} | ||||||
|  | 			case "guardian_leader_q10851_05.html": | ||||||
|  | 			{ | ||||||
|  | 				if (qs.isCond(3) && (player.getLevel() >= MIN_LEVEL)) | ||||||
|  | 				{ | ||||||
|  | 					giveItems(player, BASIC_SUPPLY_BOX, 1); | ||||||
|  | 					addExpAndSp(player, 44_442_855_900L, 44_442_720); | ||||||
|  | 					qs.exitQuest(QuestType.ONE_TIME, true); | ||||||
|  | 					htmltext = event; | ||||||
|  | 				} | ||||||
|  | 				else | ||||||
|  | 				{ | ||||||
|  | 					htmltext = getNoQuestLevelRewardMsg(player); | ||||||
|  | 				} | ||||||
|  | 				break; | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 		return htmltext; | ||||||
|  | 	} | ||||||
|  | 	 | ||||||
|  | 	@Override | ||||||
|  | 	public String onTalk(Npc npc, PlayerInstance player) | ||||||
|  | 	{ | ||||||
|  | 		String htmltext = getNoQuestMsg(player); | ||||||
|  | 		final QuestState qs = getQuestState(player, true); | ||||||
|  | 		 | ||||||
|  | 		switch (qs.getState()) | ||||||
|  | 		{ | ||||||
|  | 			case State.CREATED: | ||||||
|  | 			{ | ||||||
|  | 				htmltext = "guardian_follower_q10851_04.htm"; | ||||||
|  | 				break; | ||||||
|  | 			} | ||||||
|  | 			case State.STARTED: | ||||||
|  | 			{ | ||||||
|  | 				switch (npc.getId()) | ||||||
|  | 				{ | ||||||
|  | 					case CELESTIEL: | ||||||
|  | 					{ | ||||||
|  | 						if (qs.getCond() > 0) | ||||||
|  | 						{ | ||||||
|  | 							htmltext = "guardian_follower_q10851_07.html"; | ||||||
|  | 						} | ||||||
|  | 						break; | ||||||
|  | 					} | ||||||
|  | 					case IRENE: | ||||||
|  | 					{ | ||||||
|  | 						if (qs.isCond(1)) | ||||||
|  | 						{ | ||||||
|  | 							htmltext = "guardian_leader_q10851_01.html"; | ||||||
|  | 						} | ||||||
|  | 						else if (qs.isCond(2)) | ||||||
|  | 						{ | ||||||
|  | 							htmltext = "guardian_leader_q10851_03.html"; | ||||||
|  | 						} | ||||||
|  | 						else | ||||||
|  | 						{ | ||||||
|  | 							htmltext = "guardian_leader_q10851_04.html"; | ||||||
|  | 						} | ||||||
|  | 						break; | ||||||
|  | 					} | ||||||
|  | 				} | ||||||
|  | 				break; | ||||||
|  | 			} | ||||||
|  | 			case State.COMPLETED: | ||||||
|  | 			{ | ||||||
|  | 				htmltext = getAlreadyCompletedMsg(player); | ||||||
|  | 				break; | ||||||
|  | 			} | ||||||
|  | 			 | ||||||
|  | 		} | ||||||
|  | 		return htmltext; | ||||||
|  | 	} | ||||||
|  | 	 | ||||||
|  | 	@Override | ||||||
|  | 	public String onKill(Npc npc, PlayerInstance killer, boolean isSummon) | ||||||
|  | 	{ | ||||||
|  | 		final QuestState qs = getQuestState(killer, false); | ||||||
|  | 		if ((qs != null) && qs.isCond(2)) | ||||||
|  | 		{ | ||||||
|  | 			switch (npc.getId()) | ||||||
|  | 			{ | ||||||
|  | 				case FLOWER_BUD: | ||||||
|  | 				{ | ||||||
|  | 					if (getQuestItemsCount(killer, FLOWER_BUD_SAMPLE) < 50) | ||||||
|  | 					{ | ||||||
|  | 						giveItems(killer, FLOWER_BUD_SAMPLE, 1); | ||||||
|  | 						playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET); | ||||||
|  | 					} | ||||||
|  | 					break; | ||||||
|  | 				} | ||||||
|  | 				case APHERUS: | ||||||
|  | 				{ | ||||||
|  | 					if (getQuestItemsCount(killer, APHERUS_SAMPLE) < 150) | ||||||
|  | 					{ | ||||||
|  | 						giveItems(killer, APHERUS_SAMPLE, 1); | ||||||
|  | 						playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET); | ||||||
|  | 					} | ||||||
|  | 					break; | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 			if ((getQuestItemsCount(killer, FLOWER_BUD_SAMPLE) >= 50) && (getQuestItemsCount(killer, APHERUS_SAMPLE) >= 150)) | ||||||
|  | 			{ | ||||||
|  | 				qs.setCond(3, true); | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 		return super.onKill(npc, killer, isSummon); | ||||||
|  | 	} | ||||||
|  | } | ||||||
| @@ -0,0 +1,5 @@ | |||||||
|  | <html><body>Celestiel:<br> | ||||||
|  | Ah, if you could spare the time, could you help me out?<br> | ||||||
|  | I need help for something, and you could be the one I can trust.<br> | ||||||
|  | <Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10851_ElvenBotany guardian_follower_q10851_04.htm">"What is it?"</Button> | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,4 @@ | |||||||
|  | <html><body>Celestiel:<br> | ||||||
|  | I'm sorry, but this is a dangerous place. We cannot guarantee your safety. Please take yourself some place safe.<br> | ||||||
|  | (This quest can only be undertaken by characters with Lv. 102 or higher whose faction level with the Mother Tree Guardian is 2 or higher.) | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,5 @@ | |||||||
|  | <html><body>Celestiel:<br> | ||||||
|  | I'm sorry, but I'm rather iffy about putting you on assignment.<br> | ||||||
|  | This is a dangerous place. Please take yourself some place safe.<br> | ||||||
|  | (This quest can only be undertaken by characters whose faction level with the Mother Tree Guardians is 2 or higher.) | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,6 @@ | |||||||
|  | <html><body>Celestiel:<br> | ||||||
|  | I am Celestiel. I have come here with Irene in search of a way to save the Mother Tree.<br> | ||||||
|  | I know how to do bits and pieces of many things. I'm usually studying changes in the plants and the soil here, but I need more samples for my research. That's why I'm asking you for help.<br> | ||||||
|  | I've been searching for the samples firsthand until now, but it's been taking me so long that I've been falling behind on my research. I have no choice but to dedicate myself to research while having somebody else hunt around for samples.<br> | ||||||
|  | <Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10851_ElvenBotany guardian_follower_q10851_05.htm">"What samples do you need?"</Button> | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,6 @@ | |||||||
|  | <html><body>Celestiel:<br> | ||||||
|  | Oh! The samples I need are samples of a few particular species of plant that live here.<br> | ||||||
|  | Until now, Fairy Mimyu has been helping me collect enough Nymph Stamen, but it's too hard finding samples other than those.<br> | ||||||
|  | But I'm a bit hesitant about asking Fairy Mimyu to find me the other samples too.<br> | ||||||
|  | <Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10851_ElvenBotany guardian_follower_q10851_06.htm">"What samples do I need to find?"</Button> | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,5 @@ | |||||||
|  | <html><body>Celestiel:<br> | ||||||
|  | Ah, so will you help me out?<br> | ||||||
|  | If that's the case, the samples I need are... oh, I guess you don't exactly how many of which samples I'll be needing, since Irene was the one who was managing the samples.<br>Would you go to Irene and ask which samples required for the research are?<br> | ||||||
|  | See, I've been bugging Irene with a bunch of questions, even just now... I think it would be better for you to go and ask instead of me. | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,4 @@ | |||||||
|  | <html><body>Celestiel:<br> | ||||||
|  | Please go to Irene and ask her which samples needed for the biological research are.<br> | ||||||
|  | If you ask her yourself, she's sure to give you a kind answer with a smile. | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,5 @@ | |||||||
|  | <html><body>Guardian Irene:<br> | ||||||
|  | What's going on?<br> | ||||||
|  | I thought you were speaking with Celestiel until just now.<br> | ||||||
|  | <Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10851_ElvenBotany guardian_leader_q10851_02.html">"So the samples..."</Button> | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,5 @@ | |||||||
|  | <html><body>Guardian Irene:<br> | ||||||
|  | I was wondering what Celestiel was talking so enthusiastically about. I guess you were talking about the samples.<br> | ||||||
|  | I swear she told me just a short while ago that she needed some kind of sample... Well, with her being as busy as she is nowadays with her research, her being so forgetful is understandable.<br> | ||||||
|  | Samples needed are <font color="LEVEL">150 Apherus Samples, and 50 Flower Bud Samples</font>. Samples can be obtained from <font color="LEVEL">Apherus, and Flower Buds</font>. | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,4 @@ | |||||||
|  | <html><body>Guardian Irene:<br> | ||||||
|  | You don't have enough samples.<br> | ||||||
|  | Samples needed are <font color="LEVEL">150 Apherus Samples, and 50 Flower Bud Samples</font>. Samples can be obtained from <font color="LEVEL">Apherus, and Flower Buds</font>. | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,5 @@ | |||||||
|  | <html><body>Guardian Irene:<br> | ||||||
|  | Are you done collecting the samples?<br> | ||||||
|  | We need samples to conduct research, but it's the part collecting the samples that discourages everyone. It's not so easy finding samples, is it?<br> | ||||||
|  | <Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10851_ElvenBotany guardian_leader_q10851_05.html">"Yes, right."</Button> | ||||||
|  | </body></html> | ||||||
| @@ -0,0 +1,5 @@ | |||||||
|  | <html><body>Guardian Irene:<br> | ||||||
|  | Thank you. Using these samples, we will be able to investigate the growth and changes around here.<br> | ||||||
|  | If we discover what changes are going on right now in the Enchanted Valley, we might need to ask you to do some other work for us.<br> | ||||||
|  | If that happens, I hope you'll help us again. | ||||||
|  | </body></html> | ||||||
| @@ -410,6 +410,7 @@ import quests.Q10839_BlackbirdsNameValue.Q10839_BlackbirdsNameValue; | |||||||
| import quests.Q10840_TimeToRecover.Q10840_TimeToRecover; | import quests.Q10840_TimeToRecover.Q10840_TimeToRecover; | ||||||
| import quests.Q10841_DeepInsideAteliaFortress.Q10841_DeepInsideAteliaFortress; | import quests.Q10841_DeepInsideAteliaFortress.Q10841_DeepInsideAteliaFortress; | ||||||
| import quests.Q10843_AnomalyInTheEnchantedValley.Q10843_AnomalyInTheEnchantedValley; | import quests.Q10843_AnomalyInTheEnchantedValley.Q10843_AnomalyInTheEnchantedValley; | ||||||
|  | import quests.Q10851_ElvenBotany.Q10851_ElvenBotany; | ||||||
| import quests.custom.Q00529_RegularBarrierMaintenance.Q00529_RegularBarrierMaintenance; | import quests.custom.Q00529_RegularBarrierMaintenance.Q00529_RegularBarrierMaintenance; | ||||||
| import quests.custom.Q00560_HowToOvercomeFear.Q00560_HowToOvercomeFear; | import quests.custom.Q00560_HowToOvercomeFear.Q00560_HowToOvercomeFear; | ||||||
| import quests.custom.Q00589_ASecretChange.Q00589_ASecretChange; | import quests.custom.Q00589_ASecretChange.Q00589_ASecretChange; | ||||||
| @@ -964,7 +965,7 @@ public class QuestMasterHandler | |||||||
| 		Q10846_BloodyBattleMeetingTheCommander.class, // TODO: Not done. | 		Q10846_BloodyBattleMeetingTheCommander.class, // TODO: Not done. | ||||||
| 		Q10848_TrialsBeforeTheBattle.class, // TODO: Not done. | 		Q10848_TrialsBeforeTheBattle.class, // TODO: Not done. | ||||||
| 		Q10849_TrialsForAdaptation.class, // TODO: Not done. | 		Q10849_TrialsForAdaptation.class, // TODO: Not done. | ||||||
| 		Q10851_ElvenBotany.class, // TODO: Not done. | 		Q10851_ElvenBotany.class, | ||||||
| 		Q10852_TheMotherTreeRevivalProject.class, // TODO: Not done. | 		Q10852_TheMotherTreeRevivalProject.class, // TODO: Not done. | ||||||
| 		Q10853_ToWeakenTheGiants.class, // TODO: Not done. | 		Q10853_ToWeakenTheGiants.class, // TODO: Not done. | ||||||
| 		Q10854_ToSeizeTheFortress.class, // TODO: Not done. | 		Q10854_ToSeizeTheFortress.class, // TODO: Not done. | ||||||
|   | |||||||
| @@ -1,36 +0,0 @@ | |||||||
| /* |  | ||||||
|  * This file is part of the L2J Mobius project. |  | ||||||
|  *  |  | ||||||
|  * This program 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. |  | ||||||
|  *  |  | ||||||
|  * This program 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.not_done; |  | ||||||
|  |  | ||||||
| import org.l2jmobius.Config; |  | ||||||
| import org.l2jmobius.gameserver.model.quest.Quest; |  | ||||||
|  |  | ||||||
| /** |  | ||||||
|  * @author Mobius |  | ||||||
|  */ |  | ||||||
| public class Q10851_ElvenBotany extends Quest |  | ||||||
| { |  | ||||||
| 	private static final int START_NPC = 34234; |  | ||||||
| 	 |  | ||||||
| 	public Q10851_ElvenBotany() |  | ||||||
| 	{ |  | ||||||
| 		super(10851); |  | ||||||
| 		addStartNpc(START_NPC); |  | ||||||
| 		addTalkId(START_NPC); |  | ||||||
| 		addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null)); |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
		Reference in New Issue
	
	Block a user
	 MobiusDevelopment
					MobiusDevelopment