Bladeren bron

Retail-like quest Adept Of Taste (330).
Reviewed by: @Zoey76

ivantotov 9 jaren geleden
bovenliggende
commit
5c0e373c5a
77 gewijzigde bestanden met toevoegingen van 1162 en 635 verwijderingen
  1. 0 1
      dist/game/data/scripts.cfg
  2. 0 6
      dist/game/data/scripts/quests/330_AdeptOfTaste/30062-01.htm
  3. 0 4
      dist/game/data/scripts/quests/330_AdeptOfTaste/30062-02.htm
  4. 0 6
      dist/game/data/scripts/quests/330_AdeptOfTaste/30062-03.htm
  5. 0 4
      dist/game/data/scripts/quests/330_AdeptOfTaste/30062-06.htm
  6. 0 6
      dist/game/data/scripts/quests/330_AdeptOfTaste/30067-01.htm
  7. 0 4
      dist/game/data/scripts/quests/330_AdeptOfTaste/30067-02.htm
  8. 0 4
      dist/game/data/scripts/quests/330_AdeptOfTaste/30069-02.htm
  9. 0 6
      dist/game/data/scripts/quests/330_AdeptOfTaste/30073-01.htm
  10. 0 5
      dist/game/data/scripts/quests/330_AdeptOfTaste/30073-02.htm
  11. 0 6
      dist/game/data/scripts/quests/330_AdeptOfTaste/30073-03.htm
  12. 0 3
      dist/game/data/scripts/quests/330_AdeptOfTaste/30078-02.htm
  13. 0 9
      dist/game/data/scripts/quests/330_AdeptOfTaste/30469-03.htm
  14. 0 10
      dist/game/data/scripts/quests/330_AdeptOfTaste/30469-04.htm
  15. 0 4
      dist/game/data/scripts/quests/330_AdeptOfTaste/30469-04t1.htm
  16. 0 4
      dist/game/data/scripts/quests/330_AdeptOfTaste/30469-04t3.htm
  17. 0 4
      dist/game/data/scripts/quests/330_AdeptOfTaste/30469-04t5.htm
  18. 0 504
      dist/game/data/scripts/quests/330_AdeptOfTaste/__init__.py
  19. 6 0
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30062-01.html
  20. 4 0
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30062-02.html
  21. 6 0
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30062-03.html
  22. 1 1
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30062-04.html
  23. 3 3
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30062-05.html
  24. 4 0
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30062-06.html
  25. 2 2
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30062-07.html
  26. 6 0
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30067-01.html
  27. 4 0
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30067-02.html
  28. 2 2
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30067-03.html
  29. 1 1
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30067-04.html
  30. 0 0
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30067-05.html
  31. 0 0
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30067-06.html
  32. 0 0
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30067-07.html
  33. 2 2
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30069-01.html
  34. 4 0
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30069-02.html
  35. 1 1
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30069-03.html
  36. 0 0
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30069-04.html
  37. 6 0
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30073-01.html
  38. 5 0
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30073-02.html
  39. 6 0
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30073-03.html
  40. 1 1
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30073-04.html
  41. 1 1
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30073-05.html
  42. 1 1
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30073-06.html
  43. 0 0
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30073-07.html
  44. 1 2
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30078-01.html
  45. 3 0
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30078-02.html
  46. 1 1
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30078-03.html
  47. 0 0
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30078-04.html
  48. 0 0
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30461-01.html
  49. 1 1
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30461-02t1.html
  50. 1 1
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30461-02t2.html
  51. 1 1
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30461-02t3.html
  52. 2 2
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30461-02t4.html
  53. 1 1
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30461-02t5.html
  54. 1 1
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30461-04.html
  55. 1 1
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-01.htm
  56. 3 3
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-02.htm
  57. 9 0
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-03.htm
  58. 9 0
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-04.html
  59. 4 0
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-04t1.html
  60. 2 2
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-04t2.html
  61. 4 0
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-04t3.html
  62. 2 2
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-04t4.html
  63. 4 0
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-04t5.html
  64. 2 2
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-05t1.html
  65. 2 2
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-05t2.html
  66. 1 1
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-05t3.html
  67. 2 2
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-05t4.html
  68. 2 2
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-05t5.html
  69. 0 0
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-06.html
  70. 0 0
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-06t1.html
  71. 0 0
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-06t2.html
  72. 1 1
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-06t3.html
  73. 1 1
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-06t4.html
  74. 1 1
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-06t5.html
  75. 1031 0
      dist/game/data/scripts/quests/Q00330_AdeptOfTaste/Q00330_AdeptOfTaste.java
  76. 2 0
      dist/game/data/scripts/quests/QuestMasterHandler.java
  77. 1 0
      dist/sql/game/updates/20150823update.sql

+ 0 - 1
dist/game/data/scripts.cfg

@@ -186,7 +186,6 @@ quests/QuestMasterHandler.java
 quests/TerritoryWarScripts/TerritoryWarSuperClass.java
 quests/234_FatesWhisper/__init__.py
 quests/255_Tutorial/__init__.py
-quests/330_AdeptOfTaste/__init__.py
 quests/334_TheWishingPotion/__init__.py
 quests/335_TheSongOfTheHunter/__init__.py
 quests/336_CoinOfMagic/__init__.py

+ 0 - 6
dist/game/data/scripts/quests/330_AdeptOfTaste/30062-01.htm

@@ -1,6 +0,0 @@
-<html><body>Accessory Merchant Sonia:<br>
-You need mandragora essence? I do not know who you have come on behalf of, but if you need mandragora essence of the finest quality, you have come to the right person.<br>
-I can prepare mandragora essence for you, but first you must bring me<font color="LEVEL"> forty mandragora roots</font>. You can easily obtain mandragora roots that have a red tint.<br>
-However, rarely, there are also<font color="LEVEL"> white roots</font>. If I prepare the essence with only the white roots, I can obtain a clear, transparent fluid that is richer and stronger in taste compared to the red. If you bring forty white mandragora roots, I can make you clear mandragora essence.<br>
-Since you are ignorant, I assume you do not know which part of the mandragora to collect. Take this illustrated book of botany to refer to when you gather the roots.
-</body></html>

+ 0 - 4
dist/game/data/scripts/quests/330_AdeptOfTaste/30062-02.htm

@@ -1,4 +0,0 @@
-<html><body>Accessory Merchant Sonia:<br>
-I can only make essence after you find<font color="LEVEL"> forty mandragora roots</font>.<br>
-If you bring<font color="LEVEL"> 40 white mandragora roots</font> instead of red, I can make a clear essence that is richer and stronger in taste.
-</body></html>

+ 0 - 6
dist/game/data/scripts/quests/330_AdeptOfTaste/30062-03.htm

@@ -1,6 +0,0 @@
-<html><body>Accessory Merchant Sonia:<br>
-I see you have found forty mandragora roots. However, the number of white mandragora roots is far short of forty. If you are busy, I could make regular red essence with only the roots you have brought?<br>
-Or will you go and collect more white roots? If you do, then I can make a clear mandragora essence that is richer and stronger in taste than regular essence.<br>
-<a action="bypass -h Quest 330_AdeptOfTaste 30062-04.htm">Say you will look for more white roots</a><br>
-<a action="bypass -h Quest 330_AdeptOfTaste 30062_1">Ask to make mandragora essence</a>
-</body></html>

+ 0 - 4
dist/game/data/scripts/quests/330_AdeptOfTaste/30062-06.htm

@@ -1,4 +0,0 @@
-<html><body>Accessory Merchant Sonia:<br>
-I see you have found forty white mandragora roots. With this, I will make you<font color="LEVEL"> mandragora essence of the finest quality</font>. The extra red roots are of no use to you, so may I have them?<br>
-Here, take this. It is completed mandragora essence. Isn't the essence clear and transparent? It is thicker than regular red essence, and its effects are many times stronger.
-</body></html>

+ 0 - 6
dist/game/data/scripts/quests/330_AdeptOfTaste/30067-01.htm

@@ -1,6 +0,0 @@
-<html><body>Priestess Glyvka:<br>
-So you are the one helping Jonas. He told me that he needs swamp moss for his cooking. Swamp moss is very refreshing and many people enjoy eating it, but it is very hard to find. It only grows in cold and damp places deep in the Kruma swamp.<br>
-But I know an easier way of getting this swamp moss. It may be a little dangerous, but you don't need to wander the swamp for many days to find the moss. Giant ants like the<font color="LEVEL"> gray ant</font> and<font color="LEVEL"> crimson ant</font> collect the moss to line their nests. You will be able to easily obtain the moss by hunting these ants.<br>
-Take this insect diagram along with you for guidance. It shows where the moss is stored when the ant collects and swallows it.<br>
-Bring me<font color="LEVEL"> 20 bundles of moss</font> and I will prepare them for cooking. Swamp moss is usually green, but very rarely one may come across brown moss. This<font color="LEVEL"> brown moss</font> has a fuller flavor and is more nutritious, and fetches a high price on the market. If you want a more luxurious dish, it would be better to invest some time and find brown moss.
-</body></html>

+ 0 - 4
dist/game/data/scripts/quests/330_AdeptOfTaste/30067-02.htm

@@ -1,4 +0,0 @@
-<html><body>Priestess Glyvka:<br>
-So you haven't been able to gather all the moss yet. As I told you, you must hunt giant ants like the<font color="LEVEL"> gray ant</font> and<font color="LEVEL"> crimson ant</font> to obtain swamp moss. Bring me<font color="LEVEL"> twenty bundles of moss</font> and I will prepare them for cooking.<br>
-Swamp moss is usually green, but if you want a truly luxurious dish, you must invest the time and look for<font color="LEVEL"> brown moss</font>.
-</body></html>

+ 0 - 4
dist/game/data/scripts/quests/330_AdeptOfTaste/30069-02.htm

@@ -1,4 +0,0 @@
-<html><body>Magister Rollant:<br>
-Ah! You are the one that needed monster eye meat, right? Did you say you were going to use it in cooking?<br>
-If you hunt<font color="LEVEL"> monster eye searchers</font> and<font color="LEVEL"> monster eye gazers</font> and bring their carcasses, I will prepare them for you. To obtain monster eye meat for one person, you must bring back at least<font color="LEVEL"> thirty carcasses.</font>
-</body></html>

+ 0 - 6
dist/game/data/scripts/quests/330_AdeptOfTaste/30073-01.htm

@@ -1,6 +0,0 @@
-<html><body>Guard Jacob:<br>
-Honey? Hmmm? How did you know? Actually, my family has been in the beekeeping business for many generations. Though I've become a guard, I still haven't forgotten the skills of making a good honey.<br>
-To make premium honey, you must collect<font color="LEVEL"> nectar</font> from the giant bees that live here in Dion. Nectar is the honey water that the bees store in their honey sacs after sucking it out from flowers with their tongues. Bring twenty bottles of this, and I will make a honey from it.<br>
-To gather the nectar, you must hunt the giant bee called the<font color="LEVEL"> bloody bee</font>. You could also collect nectar from the<font color="LEVEL"> weird bee</font> that lives in the swamps, but it is such a large and ferocious creature that you must be very careful when taking it on. And since you probably don't know the structure of a bee's honey sac very well, refer to this insect diagram while hunting.<br>
-Oh, and if you are lucky, you may be able to obtain something called<font color="LEVEL"> royal jelly</font> from worker bees that are less than a week old. It is a white liquid with a sour smell, but it is a rare ingredient with much nutrition and flavor. If you can bring me<font color="LEVEL"> ten bottles of royal jelly</font> as well, I can make an even more flavorful and golden honey.
-</body></html>

+ 0 - 5
dist/game/data/scripts/quests/330_AdeptOfTaste/30073-02.htm

@@ -1,5 +0,0 @@
-<html><body>Guard Jacob:<br>
-To make the honey, I need enough nectar to fill twenty bottles.<br>
-You can obtain the nectar by hunting giant bees like the<font color="LEVEL"> bloody bee</font> and the<font color="LEVEL"> great stinger.</font> But the great stingers are very large and ferocious, so be careful.<br>
-If you are lucky, you may be able to obtain something called<font color="LEVEL"> royal jelly</font> from worker bees are yet a week. If I add royal jelly to the nectar, I will be able to make a more flavorful, golden honey. But for that I need<font color="LEVEL"> 10 bottles of royal jelly.</font> It is such a rare ingredient that you may have trouble finding it. 
-</body></html>

+ 0 - 6
dist/game/data/scripts/quests/330_AdeptOfTaste/30073-03.htm

@@ -1,6 +0,0 @@
-<html><body>Guard Jacob:<br>
-You've brought me twenty bottles of nectar. I can make a honey from this. But if I add royal jelly to the nectar, I will be able to make a more flavorful, golden honey. For this, I need<font color="LEVEL"> ten bottles</font> of royal jelly. It is such a rare ingredient that you may have trouble finding it.<br>
-What do you think? Should I just create a honey from the nectar you have brought me? Or will you try to gather more royal jelly?<br>
-<a action="bypass -h Quest 330_AdeptOfTaste 30073-04.htm">Say you will gather more royal jelly</a><br>
-<a action="bypass -h Quest 330_AdeptOfTaste 30073_1">Ask him to make the honey</a>
-</body></html>

+ 0 - 3
dist/game/data/scripts/quests/330_AdeptOfTaste/30078-02.htm

@@ -1,3 +0,0 @@
-<html><body>Grocer Pano:<br>
-You haven't forgotten our Contract, have you? If you kill the <font color="LEVEL">hobgoblins</font> and bring back <font color="LEVEL">thirty Hobgoblin Amulets</font>, I will give you a sack of Dionian Potatoes. Use your sword to get rid of the hobgoblins that trouble Dion's farmers, so they are not able to swagger around any more.
-</body></html>

+ 0 - 9
dist/game/data/scripts/quests/330_AdeptOfTaste/30469-03.htm

@@ -1,9 +0,0 @@
-<html><body>Jonas:<br>
-Thank you. The dish I am planning to make uses monster eye meat, which is usually used by Mystics in their research. I want to cook the monster eye meat as a steak, the way Gracian nobility like it. For that, I will need five ingredients.<br>
-I need<font color="LEVEL"> mandragora essence</font> to make a sauce for the steak. You can get this from<font color="LEVEL"> Accessory Merchant Sonia.</font><br>
-The salad that will accompany the steak will be made from<font color="LEVEL"> marsh moss,</font> one of Dion's delicacies. This moss only grows in the Cruma Marshlands, and its refreshing taste is truly a treat. They say that you can find the moss if you ask<font color="LEVEL"> Priestess Glyvka.</font><br>
-I plan to make the salad dressing with mustard and<font color="LEVEL"> honey.</font> You can obtain the finest honey if you ask<font color="LEVEL"> Guard Jacob</font> a favor.<br>
-I will also make a<font color="LEVEL"> potato dish</font> to accompany the steak. They say that the potatoes grown in Dion are the best in the kingdom. You can obtain them from<font color="LEVEL"> Grocer Pano in Floran Village.</font><br>
-The main dish, the steak, will be made from<font color="LEVEL"> monster eye meat,</font> like I mentioned before. It's best that you go to<font color="LEVEL"> Magister Rollant</font> to find the monster eye meat.<br>
-Please gather these five ingredients for me. I have written them down on this list, so don't forget. A dish's flavor depends on how much care was given in gathering the ingredients. Your job is indeed an important one. Thank you.
-</body></html>

+ 0 - 10
dist/game/data/scripts/quests/330_AdeptOfTaste/30469-04.htm

@@ -1,10 +0,0 @@
-<html><body>Jonas:<br>
-I see that you have not yet been able to gather the five ingredients I requested.<br>
-But there is no need to rush. A dish's flavor depends on how much care was given in gathering the ingredients. If you use just any ingredient, the dish will not be tasty, no matter how well you cook it.<br>
-If you've forgotten which ingredients you must get from whom, ask me again.<br>
-<a action="bypass -h Quest 330_AdeptOfTaste 30469-04t1.htm">Ask about the juice of the mandragora</a><br>
-<a action="bypass -h Quest 330_AdeptOfTaste 30469-04t2.htm">Ask about the swamp moss</a><br>
-<a action="bypass -h Quest 330_AdeptOfTaste 30469-04t3.htm">Ask about the honey</a><br>
-<a action="bypass -h Quest 330_AdeptOfTaste 30469-04t4.htm">Ask about the Dion potatoes</a><br>
-<a action="bypass -h Quest 330_AdeptOfTaste 30469-04t5.htm">Ask about the floating eye meat</a>
-</body></html>

+ 0 - 4
dist/game/data/scripts/quests/330_AdeptOfTaste/30469-04t1.htm

@@ -1,4 +0,0 @@
-<html><body>Jonas:<br>
-I need the juice of the mandragora to make a sauce for the steak. You can get this from<font color="LEVEL"> Accessory Merchant Sonia</font>.<br>
-<a action="bypass -h Quest 330_AdeptOfTaste 30469-04.htm">Go back</a>
-</body></html>

+ 0 - 4
dist/game/data/scripts/quests/330_AdeptOfTaste/30469-04t3.htm

@@ -1,4 +0,0 @@
-<html><body>Jonas:<br>
-I am planning to make a salad dressing with mustard and honey. They say you can obtain the finest honey if you ask<font color="LEVEL"> Guard Jacob</font> to do you a favor.<br>
-<a action="bypass -h Quest 330_AdeptOfTaste 30469-04.htm">Return</a>
-</body></html>

+ 0 - 4
dist/game/data/scripts/quests/330_AdeptOfTaste/30469-04t5.htm

@@ -1,4 +0,0 @@
-<html><body>Jonas:<br>
-The main dish of steak, as I already told you, will be made of floating eye meat. I heard that one must go to<font color="LEVEL"> Magister Rollant</font> to find floating eye meat.<br>
-<a action="bypass -h Quest 330_AdeptOfTaste 30469-04.htm">Return</a>
-</body></html>

+ 0 - 504
dist/game/data/scripts/quests/330_AdeptOfTaste/__init__.py

@@ -1,504 +0,0 @@
-# Made by Mr. Have fun! Version 0.2
-import sys
-from com.l2jserver.gameserver.model.quest import State
-from com.l2jserver.gameserver.model.quest import QuestState
-from com.l2jserver.gameserver.model.quest import Quest as JQuest
-
-qn = "330_AdeptOfTaste"
-
-INGREDIENT_LIST_ID = 1420
-SONIAS_BOTANYBOOK_ID = 1421
-RED_MANDRAGORA_ROOT_ID = 1422
-WHITE_MANDRAGORA_ROOT_ID = 1423
-RED_MANDRAGORA_SAP_ID = 1424
-WHITE_MANDRAGORA_SAP_ID = 1425
-JAYCUBS_INSECTBOOK_ID = 1426
-NECTAR_ID = 1427
-ROYAL_JELLY_ID = 1428
-HONEY_ID = 1429
-GOLDEN_HONEY_ID = 1430
-PANOS_CONTRACT_ID = 1431
-HOBGOBLIN_AMULET_ID = 1432
-DIONIAN_POTATO_ID = 1433
-GLYVKAS_BOTANYBOOK_ID = 1434
-GREEN_MARSH_MOSS_ID = 1435
-BROWN_MARSH_MOSS_ID = 1436
-GREEN_MOSS_BUNDLE_ID = 1437
-BROWN_MOSS_BUNDLE_ID = 1438
-ROLANTS_CREATUREBOOK_ID = 1439
-MONSTER_EYE_BODY_ID = 1440
-MONSTER_EYE_MEAT_ID = 1441
-JONAS_STEAK_DISH1_ID = 1442
-JONAS_STEAK_DISH2_ID = 1443
-JONAS_STEAK_DISH3_ID = 1444
-JONAS_STEAK_DISH4_ID = 1445
-JONAS_STEAK_DISH5_ID = 1446
-MIRIENS_REVIEW1_ID = 1447
-MIRIENS_REVIEW2_ID = 1448
-MIRIENS_REVIEW3_ID = 1449
-MIRIENS_REVIEW4_ID = 1450
-MIRIENS_REVIEW5_ID = 1451
-ADENA_ID = 57
-JONAS_SALAD_RECIPE_ID = 1455
-JONAS_SAUCE_RECIPE_ID = 1456
-JONAS_STEAK_RECIPE_ID = 1457
-
-def has_list(st) :
-    return st.getQuestItemsCount(INGREDIENT_LIST_ID)
-
-def has_review(st) :
-    return st.getQuestItemsCount(MIRIENS_REVIEW1_ID)+\
-           st.getQuestItemsCount(MIRIENS_REVIEW2_ID)+\
-           st.getQuestItemsCount(MIRIENS_REVIEW3_ID)+\
-           st.getQuestItemsCount(MIRIENS_REVIEW4_ID)+\
-           st.getQuestItemsCount(MIRIENS_REVIEW5_ID)
-
-def has_dish(st) :
-    return st.getQuestItemsCount(JONAS_STEAK_DISH1_ID)+\
-           st.getQuestItemsCount(JONAS_STEAK_DISH2_ID)+\
-           st.getQuestItemsCount(JONAS_STEAK_DISH3_ID)+\
-           st.getQuestItemsCount(JONAS_STEAK_DISH4_ID)+\
-           st.getQuestItemsCount(JONAS_STEAK_DISH5_ID)
-
-def special_ingredients(st):
-    return st.getQuestItemsCount(WHITE_MANDRAGORA_SAP_ID)+\
-           st.getQuestItemsCount(GOLDEN_HONEY_ID)+\
-           st.getQuestItemsCount(BROWN_MOSS_BUNDLE_ID)
-
-def ingredients_count(st) :
-    return st.getQuestItemsCount(RED_MANDRAGORA_SAP_ID)+\
-           st.getQuestItemsCount(HONEY_ID)+\
-           st.getQuestItemsCount(DIONIAN_POTATO_ID)+\
-           st.getQuestItemsCount(GREEN_MOSS_BUNDLE_ID)+\
-           st.getQuestItemsCount(MONSTER_EYE_MEAT_ID)+\
-           special_ingredients(st)
-
-class Quest (JQuest) :
-
- def __init__(self,id,name,descr):
-     JQuest.__init__(self,id,name,descr)
-     self.questItemIds = range(1420,1452)
-
- def onEvent (self,event,st) :
-    htmltext = event
-    if event == "1" :
-        st.set("cond","1")
-        st.setState(State.STARTED)
-        st.playSound("ItemSound.quest_accept")
-        htmltext = "30469-03.htm"
-        st.giveItems(INGREDIENT_LIST_ID,1)
-    elif event == "30062_1" :
-        htmltext = "30062-05.htm"
-        st.takeItems(SONIAS_BOTANYBOOK_ID,1)
-        st.takeItems(RED_MANDRAGORA_ROOT_ID,-1)
-        st.takeItems(WHITE_MANDRAGORA_ROOT_ID,-1)
-        st.giveItems(RED_MANDRAGORA_SAP_ID,1)
-    elif event == "30073_1" :
-        htmltext = "30073-05.htm"
-        st.takeItems(JAYCUBS_INSECTBOOK_ID,1)
-        st.takeItems(NECTAR_ID,-1)
-        st.takeItems(ROYAL_JELLY_ID,-1)
-        st.giveItems(HONEY_ID,1)
-    elif event == "30067_1" :
-        htmltext = "30067-05.htm"
-        st.takeItems(GLYVKAS_BOTANYBOOK_ID,1)
-        st.takeItems(GREEN_MARSH_MOSS_ID,-1)
-        st.takeItems(BROWN_MARSH_MOSS_ID,-1)
-        st.giveItems(GREEN_MOSS_BUNDLE_ID,1)
-    return htmltext
-
- def onTalk (self,npc,player):
-   htmltext = Quest.getNoQuestMsg(player)
-   st = self.getQuestState(player, True)
-   if not st : return htmltext
-
-   npcId = npc.getId()
-   id = st.getState()
-   if npcId != 30469 and id != State.STARTED : return htmltext
-
-   if id == State.CREATED :
-     st.set("cond","0")
-   if npcId == 30469 and st.getInt("cond")==0 :
-      if player.getLevel() >= 24 :
-         htmltext = "30469-02.htm"
-         return htmltext
-      else:
-         htmltext = "30469-01.htm"
-         st.exitQuest(1)
-   elif npcId == 30469 and st.getInt("cond") and has_list(st) and ingredients_count(st) < 5 :
-        htmltext = "30469-04.htm"
-   elif npcId == 30469 and st.getInt("cond") and has_list(st) and ingredients_count(st) >= 5 :
-          if special_ingredients(st) == 0 :
-            if self.getRandom(10)<1 :
-              htmltext = "30469-05t2.htm"
-              st.giveItems(JONAS_STEAK_DISH2_ID,1)
-            else:
-              htmltext = "30469-05t1.htm"
-              st.giveItems(JONAS_STEAK_DISH1_ID,1)
-          elif special_ingredients(st) == 1 :
-            if self.getRandom(10)<1 :
-              htmltext = "30469-05t3.htm"
-              st.giveItems(JONAS_STEAK_DISH3_ID,1)
-            else:
-              htmltext = "30469-05t2.htm"
-              st.giveItems(JONAS_STEAK_DISH2_ID,1)
-          elif special_ingredients(st) == 2 :
-            if self.getRandom(10)<1 :
-              htmltext = "30469-05t4.htm"
-              st.giveItems(JONAS_STEAK_DISH4_ID,1)
-            else:
-              htmltext = "30469-05t3.htm"
-              st.giveItems(JONAS_STEAK_DISH3_ID,1)
-          elif special_ingredients(st) == 3 :
-            if self.getRandom(10)<1 :
-              htmltext = "30469-05t5.htm"
-              st.giveItems(JONAS_STEAK_DISH5_ID,1)
-              st.playSound("ItemSound.quest_jackpot")
-            else:
-              htmltext = "30469-05t4.htm"
-              st.giveItems(JONAS_STEAK_DISH4_ID,1)
-          st.takeItems(INGREDIENT_LIST_ID,1)
-          st.takeItems(RED_MANDRAGORA_SAP_ID,1)
-          st.takeItems(WHITE_MANDRAGORA_SAP_ID,1)
-          st.takeItems(HONEY_ID,1)
-          st.takeItems(GOLDEN_HONEY_ID,1)
-          st.takeItems(DIONIAN_POTATO_ID,1)
-          st.takeItems(GREEN_MOSS_BUNDLE_ID,1)
-          st.takeItems(BROWN_MOSS_BUNDLE_ID,1)
-          st.takeItems(MONSTER_EYE_MEAT_ID,1)
-   elif npcId == 30469 and st.getInt("cond") and ingredients_count(st) == 0 and not has_list(st) and has_dish(st) and not has_review(st) :
-        htmltext = "30469-06.htm"
-   elif npcId == 30469 and st.getInt("cond") and ingredients_count(st) == 0 and not has_list(st) and not has_dish(st) and has_review(st) :
-        if st.getQuestItemsCount(MIRIENS_REVIEW1_ID) :
-          htmltext = "30469-06t1.htm"
-          st.takeItems(MIRIENS_REVIEW1_ID,1)
-          st.giveItems(ADENA_ID,7500)
-          st.addExpAndSp(6000,0)
-        elif st.getQuestItemsCount(MIRIENS_REVIEW2_ID) :
-          htmltext = "30469-06t2.htm"
-          st.takeItems(MIRIENS_REVIEW2_ID,1)
-          st.giveItems(ADENA_ID,9000)
-          st.addExpAndSp(7000,0)
-        elif st.getQuestItemsCount(MIRIENS_REVIEW3_ID) :
-          htmltext = "30469-06t3.htm"
-          st.takeItems(MIRIENS_REVIEW3_ID,1)
-          st.giveItems(ADENA_ID,5800)
-          st.giveItems(JONAS_SALAD_RECIPE_ID,1)
-          st.addExpAndSp(9000,0)
-        elif st.getQuestItemsCount(MIRIENS_REVIEW4_ID) :
-          htmltext = "30469-06t4.htm"
-          st.takeItems(MIRIENS_REVIEW4_ID,1)
-          st.giveItems(ADENA_ID,6800)
-          st.giveItems(JONAS_SAUCE_RECIPE_ID,1)
-          st.addExpAndSp(10500,0)
-        elif st.getQuestItemsCount(MIRIENS_REVIEW5_ID) :
-          htmltext = "30469-06t5.htm"
-          st.takeItems(MIRIENS_REVIEW5_ID,1)
-          st.giveItems(ADENA_ID,7800)
-          st.giveItems(JONAS_STEAK_RECIPE_ID,1)
-          st.addExpAndSp(12000,0)
-        st.playSound("ItemSound.quest_finish")
-        st.exitQuest(1)
-   elif npcId == 30461 and st.getInt("cond") and has_list(st) :
-        htmltext = "30461-01.htm"
-   elif npcId == 30461 and st.getInt("cond") and ingredients_count(st) == 0 and not has_list(st) and has_dish(st) and not has_review(st) :
-        if st.getQuestItemsCount(JONAS_STEAK_DISH1_ID) :
-          htmltext = "30461-02t1.htm"
-          st.takeItems(JONAS_STEAK_DISH1_ID,1)
-          st.giveItems(MIRIENS_REVIEW1_ID,1)
-        elif st.getQuestItemsCount(JONAS_STEAK_DISH2_ID) :
-          htmltext = "30461-02t2.htm"
-          st.takeItems(JONAS_STEAK_DISH2_ID,1)
-          st.giveItems(MIRIENS_REVIEW2_ID,1)
-        elif st.getQuestItemsCount(JONAS_STEAK_DISH3_ID) :
-          htmltext = "30461-02t3.htm"
-          st.takeItems(JONAS_STEAK_DISH3_ID,1)
-          st.giveItems(MIRIENS_REVIEW3_ID,1)
-        elif st.getQuestItemsCount(JONAS_STEAK_DISH4_ID) :
-          htmltext = "30461-02t4.htm"
-          st.takeItems(JONAS_STEAK_DISH4_ID,1)
-          st.giveItems(MIRIENS_REVIEW4_ID,1)
-        elif st.getQuestItemsCount(JONAS_STEAK_DISH5_ID) :
-          htmltext = "30461-02t5.htm"
-          st.takeItems(JONAS_STEAK_DISH5_ID,1)
-          st.giveItems(MIRIENS_REVIEW5_ID,1)
-   elif npcId == 30461 and st.getInt("cond") and ingredients_count(st) == 0 and not has_list(st) and not has_dish(st) and has_review(st) :
-        htmltext = "30461-04.htm"
-   elif npcId == 30062 and st.getInt("cond") and has_list(st) and ingredients_count(st)<5 and not st.getQuestItemsCount(SONIAS_BOTANYBOOK_ID) and (st.getQuestItemsCount(RED_MANDRAGORA_SAP_ID)+st.getQuestItemsCount(WHITE_MANDRAGORA_SAP_ID)==0) :
-        htmltext = "30062-01.htm"
-        st.giveItems(SONIAS_BOTANYBOOK_ID,1)
-   elif npcId == 30062 and st.getInt("cond") and has_list(st) and ingredients_count(st)<5 and st.getQuestItemsCount(SONIAS_BOTANYBOOK_ID) and (st.getQuestItemsCount(RED_MANDRAGORA_ROOT_ID)+st.getQuestItemsCount(WHITE_MANDRAGORA_ROOT_ID))<40 and (st.getQuestItemsCount(RED_MANDRAGORA_SAP_ID)+st.getQuestItemsCount(WHITE_MANDRAGORA_SAP_ID)==0) :
-        htmltext = "30062-02.htm"
-   elif npcId == 30062 and st.getInt("cond") and has_list(st) and ingredients_count(st)<5 and st.getQuestItemsCount(SONIAS_BOTANYBOOK_ID) and (st.getQuestItemsCount(RED_MANDRAGORA_ROOT_ID)+st.getQuestItemsCount(WHITE_MANDRAGORA_ROOT_ID))>=40 and st.getQuestItemsCount(WHITE_MANDRAGORA_ROOT_ID)<40 and (st.getQuestItemsCount(RED_MANDRAGORA_SAP_ID)+st.getQuestItemsCount(WHITE_MANDRAGORA_SAP_ID)==0) :
-        htmltext = "30062-03.htm"
-   elif npcId == 30062 and st.getInt("cond") and has_list(st) and ingredients_count(st)<5 and st.getQuestItemsCount(SONIAS_BOTANYBOOK_ID) and (st.getQuestItemsCount(RED_MANDRAGORA_ROOT_ID)+st.getQuestItemsCount(WHITE_MANDRAGORA_ROOT_ID))>=40 and st.getQuestItemsCount(WHITE_MANDRAGORA_ROOT_ID)>=40 and (st.getQuestItemsCount(RED_MANDRAGORA_SAP_ID)+st.getQuestItemsCount(WHITE_MANDRAGORA_SAP_ID)==0) :
-        htmltext = "30062-06.htm"
-        st.takeItems(SONIAS_BOTANYBOOK_ID,1)
-        st.takeItems(RED_MANDRAGORA_ROOT_ID,-1)
-        st.takeItems(WHITE_MANDRAGORA_ROOT_ID,-1)
-        st.giveItems(WHITE_MANDRAGORA_SAP_ID,1)
-   elif npcId == 30062 and st.getInt("cond") and has_list(st) and ingredients_count(st)<5 and st.getQuestItemsCount(SONIAS_BOTANYBOOK_ID)==0 and (st.getQuestItemsCount(RED_MANDRAGORA_SAP_ID)+st.getQuestItemsCount(WHITE_MANDRAGORA_SAP_ID)>0) :
-        htmltext = "30062-07.htm"
-   elif npcId == 30073 and st.getInt("cond") and has_list(st) and ingredients_count(st)<5 and st.getQuestItemsCount(JAYCUBS_INSECTBOOK_ID)==0 and (st.getQuestItemsCount(HONEY_ID)+st.getQuestItemsCount(GOLDEN_HONEY_ID)==0) :
-        htmltext = "30073-01.htm"
-        st.giveItems(JAYCUBS_INSECTBOOK_ID,1)
-   elif npcId == 30073 and st.getInt("cond") and has_list(st) and ingredients_count(st)<5 and st.getQuestItemsCount(JAYCUBS_INSECTBOOK_ID) and st.getQuestItemsCount(NECTAR_ID)<20 :
-        htmltext = "30073-02.htm"
-   elif npcId == 30073 and st.getInt("cond") and has_list(st) and ingredients_count(st)<5 and st.getQuestItemsCount(JAYCUBS_INSECTBOOK_ID) and st.getQuestItemsCount(NECTAR_ID)>=20 and st.getQuestItemsCount(ROYAL_JELLY_ID)<10 :
-        htmltext = "30073-03.htm"
-   elif npcId == 30073 and st.getInt("cond") and has_list(st) and ingredients_count(st)<5 and st.getQuestItemsCount(JAYCUBS_INSECTBOOK_ID) and st.getQuestItemsCount(NECTAR_ID)>=20 and st.getQuestItemsCount(ROYAL_JELLY_ID)>=10 :
-        htmltext = "30073-06.htm"
-        st.takeItems(JAYCUBS_INSECTBOOK_ID,1)
-        st.takeItems(NECTAR_ID,-1)
-        st.takeItems(ROYAL_JELLY_ID,-1)
-        st.giveItems(GOLDEN_HONEY_ID,1)
-   elif npcId == 30073 and st.getInt("cond") and has_list(st) and ingredients_count(st)<5 and st.getQuestItemsCount(JAYCUBS_INSECTBOOK_ID)==0 and (st.getQuestItemsCount(HONEY_ID)+st.getQuestItemsCount(GOLDEN_HONEY_ID)==1) :
-        htmltext = "30073-07.htm"
-   elif npcId == 30078 and st.getInt("cond") and has_list(st) and ingredients_count(st)<5 and st.getQuestItemsCount(PANOS_CONTRACT_ID)==0 and st.getQuestItemsCount(DIONIAN_POTATO_ID)==0 :
-        htmltext = "30078-01.htm"
-        st.giveItems(PANOS_CONTRACT_ID,1)
-   elif npcId == 30078 and st.getInt("cond") and has_list(st) and ingredients_count(st)<5 and st.getQuestItemsCount(PANOS_CONTRACT_ID) and st.getQuestItemsCount(HOBGOBLIN_AMULET_ID)<30 :
-        htmltext = "30078-02.htm"
-   elif npcId == 30078 and st.getInt("cond") and has_list(st) and ingredients_count(st)<5 and st.getQuestItemsCount(PANOS_CONTRACT_ID) and st.getQuestItemsCount(HOBGOBLIN_AMULET_ID)>=30 :
-        htmltext = "30078-03.htm"
-        st.takeItems(PANOS_CONTRACT_ID,1)
-        st.takeItems(HOBGOBLIN_AMULET_ID,-1)
-        st.giveItems(DIONIAN_POTATO_ID,1)
-   elif npcId == 30078 and st.getInt("cond") and has_list(st) and ingredients_count(st)<5 and st.getQuestItemsCount(PANOS_CONTRACT_ID)==0 and st.getQuestItemsCount(DIONIAN_POTATO_ID) :
-        htmltext = "30078-04.htm"
-   elif npcId == 30067 and st.getInt("cond") and has_list(st) and ingredients_count(st)<5 and st.getQuestItemsCount(GLYVKAS_BOTANYBOOK_ID)==0 and (st.getQuestItemsCount(GREEN_MOSS_BUNDLE_ID)+st.getQuestItemsCount(BROWN_MOSS_BUNDLE_ID)==0) :
-        htmltext = "30067-01.htm"
-        st.giveItems(GLYVKAS_BOTANYBOOK_ID,1)
-   elif npcId == 30067 and st.getInt("cond") and has_list(st) and ingredients_count(st)<5 and st.getQuestItemsCount(GLYVKAS_BOTANYBOOK_ID) and (st.getQuestItemsCount(GREEN_MARSH_MOSS_ID)+st.getQuestItemsCount(BROWN_MARSH_MOSS_ID)<20) :
-        htmltext = "30067-02.htm"
-   elif npcId == 30067 and st.getInt("cond") and has_list(st) and ingredients_count(st)<5 and st.getQuestItemsCount(GLYVKAS_BOTANYBOOK_ID) and (st.getQuestItemsCount(GREEN_MARSH_MOSS_ID)+st.getQuestItemsCount(BROWN_MARSH_MOSS_ID)>=20) and st.getQuestItemsCount(BROWN_MARSH_MOSS_ID)<20 :
-        htmltext = "30067-03.htm"
-   elif npcId == 30067 and st.getInt("cond") and has_list(st) and ingredients_count(st)<5 and st.getQuestItemsCount(GLYVKAS_BOTANYBOOK_ID) and (st.getQuestItemsCount(GREEN_MARSH_MOSS_ID)+st.getQuestItemsCount(BROWN_MARSH_MOSS_ID)>=20) and st.getQuestItemsCount(BROWN_MARSH_MOSS_ID)>=20 :
-        htmltext = "30067-06.htm"
-        st.takeItems(GLYVKAS_BOTANYBOOK_ID,1)
-        st.takeItems(GREEN_MARSH_MOSS_ID,-1)
-        st.takeItems(BROWN_MARSH_MOSS_ID,-1)
-        st.giveItems(BROWN_MOSS_BUNDLE_ID,1)
-   elif npcId == 30067 and st.getInt("cond") and has_list(st) and ingredients_count(st)<5 and st.getQuestItemsCount(GLYVKAS_BOTANYBOOK_ID)==0 and (st.getQuestItemsCount(GREEN_MOSS_BUNDLE_ID)+st.getQuestItemsCount(BROWN_MOSS_BUNDLE_ID)==1) :
-        htmltext = "30067-07.htm"
-   elif npcId == 30069 and st.getInt("cond") and has_list(st) and ingredients_count(st)<5 and st.getQuestItemsCount(ROLANTS_CREATUREBOOK_ID)==0 and st.getQuestItemsCount(MONSTER_EYE_MEAT_ID)==0 :
-        htmltext = "30069-01.htm"
-        st.giveItems(ROLANTS_CREATUREBOOK_ID,1)
-   elif npcId == 30069 and st.getInt("cond") and has_list(st) and ingredients_count(st)<5 and st.getQuestItemsCount(ROLANTS_CREATUREBOOK_ID) and st.getQuestItemsCount(MONSTER_EYE_BODY_ID)<30 :
-        htmltext = "30069-02.htm"
-   elif npcId == 30069 and st.getInt("cond") and has_list(st) and ingredients_count(st)<5 and st.getQuestItemsCount(ROLANTS_CREATUREBOOK_ID) and st.getQuestItemsCount(MONSTER_EYE_BODY_ID)>=30 :
-        htmltext = "30069-03.htm"
-        st.takeItems(ROLANTS_CREATUREBOOK_ID,1)
-        st.takeItems(MONSTER_EYE_BODY_ID,-1)
-        st.giveItems(MONSTER_EYE_MEAT_ID,1)
-   elif npcId == 30069 and st.getInt("cond") and has_list(st) and ingredients_count(st)<5 and st.getQuestItemsCount(ROLANTS_CREATUREBOOK_ID)==0 and st.getQuestItemsCount(MONSTER_EYE_MEAT_ID)==1 :
-        htmltext = "30069-04.htm"
-   return htmltext
-
- def onKill(self,npc,player,isPet):
-   st = self.getQuestState(player, False)
-   if not st : return 
-   if st.getState() != State.STARTED : return 
-   
-   npcId = npc.getId()
-   if npcId == 20265 :
-        if st.getInt("cond") and has_list(st) and ingredients_count(st)<5 and st.getQuestItemsCount(ROLANTS_CREATUREBOOK_ID) and st.getQuestItemsCount(MONSTER_EYE_BODY_ID)<30 :
-          n = self.getRandom(100)
-          if n<75 :
-            st.giveItems(MONSTER_EYE_BODY_ID,1)
-            if st.getQuestItemsCount(MONSTER_EYE_BODY_ID) == 30 :
-              st.playSound("ItemSound.quest_middle")
-            else:
-              st.playSound("ItemSound.quest_itemget")
-          else:
-            if st.getQuestItemsCount(MONSTER_EYE_BODY_ID) == 29 :
-              st.giveItems(MONSTER_EYE_BODY_ID,1)
-              st.playSound("ItemSound.quest_middle")
-            else:
-              st.giveItems(MONSTER_EYE_BODY_ID,2)
-              st.playSound("ItemSound.quest_itemget")
-   elif npcId == 20266 :
-        if st.getInt("cond") and has_list(st) and ingredients_count(st)<5 and st.getQuestItemsCount(ROLANTS_CREATUREBOOK_ID) and st.getQuestItemsCount(MONSTER_EYE_BODY_ID)<30 :
-          n = self.getRandom(10)
-          if n<7 :
-            st.giveItems(MONSTER_EYE_BODY_ID,1)
-            if st.getQuestItemsCount(MONSTER_EYE_BODY_ID) == 30 :
-              st.playSound("ItemSound.quest_middle")
-            else:
-              st.playSound("ItemSound.quest_itemget")
-          else:
-            if st.getQuestItemsCount(MONSTER_EYE_BODY_ID) == 29 :
-              st.giveItems(MONSTER_EYE_BODY_ID,1)
-              st.playSound("ItemSound.quest_middle")
-            else:
-              st.giveItems(MONSTER_EYE_BODY_ID,2)
-              st.playSound("ItemSound.quest_itemget")
-   elif npcId == 20226 :
-        if st.getInt("cond") and has_list(st) and ingredients_count(st)<5 and st.getQuestItemsCount(GLYVKAS_BOTANYBOOK_ID) :
-          n = self.getRandom(10)
-          if n<9 :
-            if st.getQuestItemsCount(GREEN_MARSH_MOSS_ID)<20 :
-              st.giveItems(GREEN_MARSH_MOSS_ID,1)
-              if st.getQuestItemsCount(GREEN_MARSH_MOSS_ID) == 20 :
-                st.playSound("ItemSound.quest_middle")
-              else:
-                st.playSound("ItemSound.quest_itemget")
-          else:
-            if st.getQuestItemsCount(BROWN_MARSH_MOSS_ID)<20 :
-              st.giveItems(BROWN_MARSH_MOSS_ID,1)
-              if st.getQuestItemsCount(BROWN_MARSH_MOSS_ID) == 20 :
-                st.playSound("ItemSound.quest_middle")
-              else:
-                st.playSound("ItemSound.quest_itemget")
-   elif npcId == 20228 :
-        if st.getInt("cond") and has_list(st) and ingredients_count(st)<5 and st.getQuestItemsCount(GLYVKAS_BOTANYBOOK_ID) :
-          n = self.getRandom(100)
-          if n<88 :
-            if st.getQuestItemsCount(GREEN_MARSH_MOSS_ID)<20 :
-              st.giveItems(GREEN_MARSH_MOSS_ID,1)
-              if st.getQuestItemsCount(GREEN_MARSH_MOSS_ID) == 20 :
-                st.playSound("ItemSound.quest_middle")
-              else:
-                st.playSound("ItemSound.quest_itemget")
-          else:
-            if st.getQuestItemsCount(BROWN_MARSH_MOSS_ID)<20 :
-              st.giveItems(BROWN_MARSH_MOSS_ID,1)
-              if st.getQuestItemsCount(BROWN_MARSH_MOSS_ID) == 20 :
-                st.playSound("ItemSound.quest_middle")
-              else:
-                st.playSound("ItemSound.quest_itemget")
-   elif npcId == 20147 :
-        if st.getInt("cond") and has_list(st) and ingredients_count(st)<5 and st.getQuestItemsCount(PANOS_CONTRACT_ID) and st.getQuestItemsCount(HOBGOBLIN_AMULET_ID)<30 :
-          st.giveItems(HOBGOBLIN_AMULET_ID,1)
-          if st.getQuestItemsCount(HOBGOBLIN_AMULET_ID) == 30 :
-            st.playSound("ItemSound.quest_middle")
-          else:
-            st.playSound("ItemSound.quest_itemget")
-   elif npcId == 20204 :
-        if st.getInt("cond") and has_list(st) and ingredients_count(st)<5 and st.getQuestItemsCount(JAYCUBS_INSECTBOOK_ID) :
-          n = self.getRandom(100)
-          if n<80 :
-            if st.getQuestItemsCount(NECTAR_ID)<20 :
-              st.giveItems(NECTAR_ID,1)
-              if st.getQuestItemsCount(NECTAR_ID) == 20 :
-                st.playSound("ItemSound.quest_middle")
-              else:
-                st.playSound("ItemSound.quest_itemget")
-          elif n>95 :
-            if st.getQuestItemsCount(ROYAL_JELLY_ID)<10 :
-              st.giveItems(ROYAL_JELLY_ID,1)
-              if st.getQuestItemsCount(ROYAL_JELLY_ID) == 10 :
-                st.playSound("ItemSound.quest_middle")
-              else:
-                st.playSound("ItemSound.quest_itemget")
-   elif npcId == 20229 :
-        if st.getInt("cond") and has_list(st) and ingredients_count(st)<5 and st.getQuestItemsCount(JAYCUBS_INSECTBOOK_ID) :
-          n = self.getRandom(100)
-          if n<92 :
-            if st.getQuestItemsCount(NECTAR_ID)<20 :
-              st.giveItems(NECTAR_ID,1)
-              if st.getQuestItemsCount(NECTAR_ID) == 20 :
-                st.playSound("ItemSound.quest_middle")
-              else:
-                st.playSound("ItemSound.quest_itemget")
-          else:
-            if st.getQuestItemsCount(ROYAL_JELLY_ID)<10 :
-              st.giveItems(ROYAL_JELLY_ID,1)
-              if st.getQuestItemsCount(ROYAL_JELLY_ID) == 10 :
-                st.playSound("ItemSound.quest_middle")
-              else:
-                st.playSound("ItemSound.quest_itemget")
-   elif npcId == 20223 :
-        if st.getInt("cond") and has_list(st) and ingredients_count(st)<5 and st.getQuestItemsCount(SONIAS_BOTANYBOOK_ID) and (st.getQuestItemsCount(RED_MANDRAGORA_SAP_ID)+st.getQuestItemsCount(WHITE_MANDRAGORA_SAP_ID) == 0) :
-          n = self.getRandom(100)
-          if n<67 :
-            if st.getQuestItemsCount(RED_MANDRAGORA_ROOT_ID)<40 :
-              st.giveItems(RED_MANDRAGORA_ROOT_ID,1)
-              if st.getQuestItemsCount(RED_MANDRAGORA_ROOT_ID) == 40 :
-                st.playSound("ItemSound.quest_middle")
-              else:
-                st.playSound("ItemSound.quest_itemget")
-          elif n>93 :
-            if st.getQuestItemsCount(WHITE_MANDRAGORA_ROOT_ID)<40 :
-              st.giveItems(WHITE_MANDRAGORA_ROOT_ID,1)
-              if st.getQuestItemsCount(WHITE_MANDRAGORA_ROOT_ID) == 40 :
-                st.playSound("ItemSound.quest_middle")
-              else:
-                st.playSound("ItemSound.quest_itemget")
-   elif npcId == 20154 :
-        if st.getInt("cond") and has_list(st) and ingredients_count(st)<5 and st.getQuestItemsCount(SONIAS_BOTANYBOOK_ID) and (st.getQuestItemsCount(RED_MANDRAGORA_SAP_ID)+st.getQuestItemsCount(WHITE_MANDRAGORA_SAP_ID) == 0) :
-          n = self.getRandom(100)
-          if n<74 :
-            if st.getQuestItemsCount(RED_MANDRAGORA_ROOT_ID)<40 :
-              st.giveItems(RED_MANDRAGORA_ROOT_ID,1)
-              if st.getQuestItemsCount(RED_MANDRAGORA_ROOT_ID) == 40 :
-                st.playSound("ItemSound.quest_middle")
-              else:
-                st.playSound("ItemSound.quest_itemget")
-          elif n>92 :
-            if st.getQuestItemsCount(WHITE_MANDRAGORA_ROOT_ID)<40 :
-              st.giveItems(WHITE_MANDRAGORA_ROOT_ID,1)
-              if st.getQuestItemsCount(WHITE_MANDRAGORA_ROOT_ID) == 40 :
-                st.playSound("ItemSound.quest_middle")
-              else:
-                st.playSound("ItemSound.quest_itemget")
-   elif npcId == 20155 :
-        if st.getInt("cond") and has_list(st) and ingredients_count(st)<5 and st.getQuestItemsCount(SONIAS_BOTANYBOOK_ID) and (st.getQuestItemsCount(RED_MANDRAGORA_SAP_ID)+st.getQuestItemsCount(WHITE_MANDRAGORA_SAP_ID) == 0) :
-          n = self.getRandom(100)
-          if n<80 :
-            if st.getQuestItemsCount(RED_MANDRAGORA_ROOT_ID)<40 :
-              st.giveItems(RED_MANDRAGORA_ROOT_ID,1)
-              if st.getQuestItemsCount(RED_MANDRAGORA_ROOT_ID) == 40 :
-                st.playSound("ItemSound.quest_middle")
-              else:
-                st.playSound("ItemSound.quest_itemget")
-          elif n>91 :
-            if st.getQuestItemsCount(WHITE_MANDRAGORA_ROOT_ID)<40 :
-              st.giveItems(WHITE_MANDRAGORA_ROOT_ID,1)
-              if st.getQuestItemsCount(WHITE_MANDRAGORA_ROOT_ID) == 40 :
-                st.playSound("ItemSound.quest_middle")
-              else:
-                st.playSound("ItemSound.quest_itemget")
-   elif npcId == 20156 :
-        if st.getInt("cond") and has_list(st) and ingredients_count(st)<5 and st.getQuestItemsCount(SONIAS_BOTANYBOOK_ID) and (st.getQuestItemsCount(RED_MANDRAGORA_SAP_ID)+st.getQuestItemsCount(WHITE_MANDRAGORA_SAP_ID) == 0) :
-          n = self.getRandom(100)
-          if n<90 :
-            if st.getQuestItemsCount(RED_MANDRAGORA_ROOT_ID)<40 :
-              st.giveItems(RED_MANDRAGORA_ROOT_ID,1)
-              if st.getQuestItemsCount(RED_MANDRAGORA_ROOT_ID) == 40 :
-                st.playSound("ItemSound.quest_middle")
-              else:
-                st.playSound("ItemSound.quest_itemget")
-          else:
-            if st.getQuestItemsCount(WHITE_MANDRAGORA_ROOT_ID)<40 :
-              st.giveItems(WHITE_MANDRAGORA_ROOT_ID,1)
-              if st.getQuestItemsCount(WHITE_MANDRAGORA_ROOT_ID) == 40 :
-                st.playSound("ItemSound.quest_middle")
-              else:
-                st.playSound("ItemSound.quest_itemget")
-   return
-
-QUEST       = Quest(330,qn,"Adept Of Taste")
-
-QUEST.addStartNpc(30469)
-
-QUEST.addTalkId(30469)
-
-QUEST.addTalkId(30062)
-QUEST.addTalkId(30067)
-QUEST.addTalkId(30069)
-QUEST.addTalkId(30073)
-QUEST.addTalkId(30078)
-QUEST.addTalkId(30461)
-
-QUEST.addKillId(20147)
-QUEST.addKillId(20154)
-QUEST.addKillId(20155)
-QUEST.addKillId(20156)
-QUEST.addKillId(20204)
-QUEST.addKillId(20223)
-QUEST.addKillId(20226)
-QUEST.addKillId(20228)
-QUEST.addKillId(20229)
-QUEST.addKillId(20265)
-QUEST.addKillId(20266)

+ 6 - 0
dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30062-01.html

@@ -0,0 +1,6 @@
+<html><body>Trader Sonia:<br>
+You need Mandragora Essence? I do not know who you have come on behalf of, but if you need Mandragora Essence of the finest quality, you have come to the right person.<br>
+I can prepare Mandragora Essence for you, but first you must bring me <font color="LEVEL">forty Mandragora Roots</font>. You can easily obtain Mandragora Roots that have a red tint.<br>
+However, rarely, there are also <font color="LEVEL">white roots</font>. If I prepare the essence with only the white roots, I can obtain a clear, transparent fluid that is richer and stronger in taste compared to the red. If you bring forty White Mandragora Roots, I can make you clear Mandragora Essence.<br>
+Since you are ignorant, I assume you do not know which part of the mandragora to collect. Take this illustrated book of botany to refer to when you gather the roots.
+</body></html>

+ 4 - 0
dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30062-02.html

@@ -0,0 +1,4 @@
+<html><body>Trader Sonia:<br>
+I can only make essence after you find <font color="LEVEL">forty Mandragora Roots</font>.<br>
+If you bring <font color="LEVEL">40 White Mandragora Roots</font> instead of red, I can make a clear essence that is richer and stronger in taste.
+</body></html>

+ 6 - 0
dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30062-03.html

@@ -0,0 +1,6 @@
+<html><body>Trader Sonia:<br>
+I see you have found forty Mandragora Roots. However, the number of White Mandragora Roots is far short of forty. If you are busy, I could make regular red essence with only the roots you have brought?<br>
+Or will you go and collect more white roots? If you do, then I can make a clear Mandragora Essence that is richer and stronger in taste than regular essence.<br>
+<a action="bypass -h Quest Q00330_AdeptOfTaste 30062-04.html">Say you will look for more white roots</a><br>
+<a action="bypass -h Quest Q00330_AdeptOfTaste 30062-05.html">Ask to make Mandragora Essence</a>
+</body></html>

+ 1 - 1
dist/game/data/scripts/quests/330_AdeptOfTaste/30062-04.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30062-04.html

@@ -1,3 +1,3 @@
-<html><body>Accessory Merchant Sonia:<br>
+<html><body>Trader Sonia:<br>
 Well then, please find a few more. You may or not know, but riper mandragoras have more chances of having white roots.
 </body></html>

+ 3 - 3
dist/game/data/scripts/quests/330_AdeptOfTaste/30062-05.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30062-05.html

@@ -1,4 +1,4 @@
-<html><body>Accessory Merchant Sonia:<br>
-Good. Then I will prepare the mandragora essence using forty of the roots you have brought. The extra roots are of no use to you anyway, so I will take them.<br>
-Here, take this. It is completed mandragora essence. Although it is not clear but red, the quality does not fall so far short.
+<html><body>Trader Sonia:<br>
+Good. Then I will prepare the Mandragora Essence using forty of the roots you have brought. The extra roots are of no use to you anyway, so I will take them.<br>
+Here, take this. It is completed Mandragora Essence. Although it is not clear but red, the quality does not fall so far short.
 </body></html>

+ 4 - 0
dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30062-06.html

@@ -0,0 +1,4 @@
+<html><body>Trader Sonia:<br>
+I see you have found forty White Mandragora Roots. With this, I will make you <font color="LEVEL">Mandragora Essence of the finest quality</font>. The extra red roots are of no use to you, so may I have them?<br>
+Here, take this. It is completed Mandragora Essence. Isn't the essence clear and transparent? It is thicker than regular red essence, and its effects are many times stronger.
+</body></html>

+ 2 - 2
dist/game/data/scripts/quests/330_AdeptOfTaste/30062-07.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30062-07.html

@@ -1,3 +1,3 @@
-<html><body>Accessory Merchant Sonia:<br>
-I see you still have the mandragora essence that I made you. I sealed the bottle so it will not spoil, but if you leave it for too long the taste may go bad. So hasten, and give the essence to the person that needs it.
+<html><body>Trader Sonia:<br>
+I see you still have the Mandragora Essence that I made you. I sealed the bottle so it will not spoil, but if you leave it for too long the taste may go bad. So hasten, and give the essence to the person that needs it.
 </body></html>

+ 6 - 0
dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30067-01.html

@@ -0,0 +1,6 @@
+<html><body>Priestess Glyvka:<br>
+So you are the one helping Jonas. He told me that he needs Swamp Moss for his cooking. Swamp Moss is very refreshing and many people enjoy eating it, but it is very hard to find. It only grows in cold and damp places deep in the Cruma Swamp.<br>
+But I know an easier way of getting this Swamp Moss. It may be a little dangerous, but you don't need to wander the swamp for many days to find the moss. Giant ants like the <font color="LEVEL">Gray Ant</font> and <font color="LEVEL">Giant Crimson Ant</font> collect the moss to line their nests. You will be able to easily obtain the moss by hunting these ants.<br>
+Take this insect diagram along with you for guidance. It shows where the moss is stored when the ant collects and swallows it.<br>
+Bring me <font color="LEVEL">20 bundles of moss</font> and I will prepare them for cooking. Swamp Moss is usually green, but very rarely one may come across brown moss. This <font color="LEVEL">brown moss</font> has a fuller flavor and is more nutritious, and fetches a high price on the market. If you want a more luxurious dish, it would be better to invest some time and find brown moss.
+</body></html>

+ 4 - 0
dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30067-02.html

@@ -0,0 +1,4 @@
+<html><body>Priestess Glyvka:<br>
+So you haven't been able to gather all the moss yet. As I told you, you must hunt giant ants like the <font color="LEVEL">gray ant</font> and <font color="LEVEL">giant crimson ant</font> to obtain swamp moss. Bring me <font color="LEVEL">twenty bundles of moss</font> and I will prepare them for cooking.<br>
+Swamp moss is usually green, but if you want a truly luxurious dish, you must invest the time and look for <font color="LEVEL">brown moss</font>.
+</body></html>

+ 2 - 2
dist/game/data/scripts/quests/330_AdeptOfTaste/30067-03.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30067-03.html

@@ -1,6 +1,6 @@
 <html><body>Priestess Glyvka:<br>
 Ah, so you have brought me twenty bundles of swamp moss. As soon as these are prepared, Jonas will be able to use them in his salad.<br>
 But it would be a much better dish if you could get twenty bundles of brown moss ... How about if you try a little harder to find the brown moss?<br>
-<a action="bypass -h Quest 330_AdeptOfTaste 30067-04.htm">Say you will try to find brown moss</a><br>
-<a action="bypass -h Quest 330_AdeptOfTaste 30067_1">Ask Priestess Glyvka to prepare the moss that was brought</a>
+<a action="bypass -h Quest Q00330_AdeptOfTaste 30067-04.html">Say you will try to find brown moss</a><br>
+<a action="bypass -h Quest Q00330_AdeptOfTaste 30067-05.html">Ask Priestess Glyvka to prepare the moss that was brought</a>
 </body></html>

+ 1 - 1
dist/game/data/scripts/quests/330_AdeptOfTaste/30067-04.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30067-04.html

@@ -1,4 +1,4 @@
 <html><body>Priestess Glyvka:<br>
 Yes. Please continue in your efforts. If you can get twenty bundles of brown moss, I will prepare them well for you. Jonas' dish will become even more astounding.<br>
-As I explained before, in order to gather the swamp moss, you must go to the Cruma Marshes and hunt gray or crimson ants. Brown swamp moss is a very rare, so it will not be easy to find it.
+As I explained before, in order to gather the swamp moss, you must go to the Cruma Marshes and hunt gray or giant crimson ants. Brown swamp moss is a very rare, so it will not be easy to find it.
 </body></html>

+ 0 - 0
dist/game/data/scripts/quests/330_AdeptOfTaste/30067-05.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30067-05.html


+ 0 - 0
dist/game/data/scripts/quests/330_AdeptOfTaste/30067-06.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30067-06.html


+ 0 - 0
dist/game/data/scripts/quests/330_AdeptOfTaste/30067-07.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30067-07.html


+ 2 - 2
dist/game/data/scripts/quests/330_AdeptOfTaste/30069-01.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30069-01.html

@@ -1,6 +1,6 @@
 <html><body>Magister Rollant:<br>
 That you want to use monster eye meat, one of the eight ingredients of magical studies, in cooking ... What a unique idea. I am becoming curious myself as to what the result will be.<br>
-Very well. I will assist you in finding monster eye meat. If you hunt the monster eye and bring back the carcass, I will prepare it for you. To make monster eye meat for one person, you need<font color="LEVEL"> thirty carcasses.</font><br>
-The monster eye meat eaten by magicians when they prepare spells for psychic seeing and detection is usually obtained from<font color="LEVEL"> monster eye searchers</font> and<font color="LEVEL"> monster eye gazers.</font> Compared to other monster eye meat, which is very tough and bitter, the meat of these two monster eyes is tender and sweet. I think they will be appropriate to use as cooking ingredients.<br>
+Very well. I will assist you in finding monster eye meat. If you hunt the monster eye and bring back the carcass, I will prepare it for you. To make monster eye meat for one person, you need <font color="LEVEL">thirty carcasses.</font><br>
+The monster eye meat eaten by magicians when they prepare spells for psychic seeing and detection is usually obtained from <font color="LEVEL">monster eye searchers</font> and <font color="LEVEL">monster eye gazers.</font> Compared to other monster eye meat, which is very tough and bitter, the meat of these two monster eyes is tender and sweet. I think they will be appropriate to use as cooking ingredients.<br>
 Take this book. I have marked the sections on the monster eye's body that have the most flesh. Keep it in mind when you hunt monster eyes.
 </body></html>

+ 4 - 0
dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30069-02.html

@@ -0,0 +1,4 @@
+<html><body>Magister Rollant:<br>
+Ah! You are the one that needed monster eye meat, right? Did you say you were going to use it in cooking?<br>
+If you hunt <font color="LEVEL">monster eye searchers</font> and <font color="LEVEL">monster eye gazers</font> and bring their carcasses, I will prepare them for you. To obtain monster eye meat for one person, you must bring back at least <font color="LEVEL">thirty carcasses.</font>
+</body></html>

+ 1 - 1
dist/game/data/scripts/quests/330_AdeptOfTaste/30069-03.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30069-03.html

@@ -1,5 +1,5 @@
 <html><body>Magister Rollant:<br>
-You have found all thirty monster eye carcasses! Thank you for your efforts. Now I will begin to prepare the meat.<br>
+You have found all thirty Monster Eye Carcasses! Thank you for your efforts. Now I will begin to prepare the meat.<br>
 The monster eye has many pores that emit poisons on its body. Therefore it is very dangerous if you do not trim the meat properly. If you cut off all the dangerous sections, you are not left with much meat. That is why you need thirty carcasses to obtain meat for one person.<br>
 There! All finished. I have packed it well, so take it to your chef friend just as I've packed it. Monster eye meat steak...I am truly curious as to its taste. Tell your friend that I wish him luck.
 </body></html>

+ 0 - 0
dist/game/data/scripts/quests/330_AdeptOfTaste/30069-04.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30069-04.html


+ 6 - 0
dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30073-01.html

@@ -0,0 +1,6 @@
+<html><body>Guard Jacob:<br>
+Honey? Hmmm? How did you know? Actually, my family has been in the beekeeping business for many generations. Though I've become a guard, I still haven't forgotten the skills of making a good honey.<br>
+To make premium honey, you must collect <font color="LEVEL">nectar</font> from the giant bees that live here in Dion. Nectar is the honey water that the bees store in their honey sacs after sucking it out from flowers with their tongues. Bring twenty bottles of this, and I will make a honey from it.<br>
+To gather the nectar, you must hunt the giant bee called the <font color="LEVEL">bloody bee</font>. You could also collect nectar from the <font color="LEVEL">stinger wasp</font> that lives in the swamps, but it is such a large and ferocious creature that you must be very careful when taking it on. And since you probably don't know the structure of a bee's honey sac very well, refer to this insect diagram while hunting.<br>
+Oh, and if you are lucky, you may be able to obtain something called <font color="LEVEL">Royal Jelly</font> from worker bees that are less than a week old. It is a white liquid with a sour smell, but it is a rare ingredient with much nutrition and flavor. If you can bring me <font color="LEVEL">ten bottles of Royal Jelly</font> as well, I can make an even more flavorful and Golden Honey.
+</body></html>

+ 5 - 0
dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30073-02.html

@@ -0,0 +1,5 @@
+<html><body>Guard Jacob:<br>
+To make the honey, I need enough nectar to fill twenty bottles.<br>
+You can obtain the nectar by hunting giant bees like the <font color="LEVEL">bloody bee</font> and the <font color="LEVEL">stinger wasp.</font> But the stinger wasps are very large and ferocious, so be careful.<br>
+If you are lucky, you may be able to obtain something called <font color="LEVEL">Royal Jelly</font> from worker bees are yet a week. If I add Royal Jelly to the nectar, I will be able to make a more flavorful, Golden Honey. But for that I need <font color="LEVEL">10 bottles of Royal Jelly.</font> It is such a rare ingredient that you may have trouble finding it.
+</body></html>

+ 6 - 0
dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30073-03.html

@@ -0,0 +1,6 @@
+<html><body>Guard Jacob:<br>
+You've brought me twenty bottles of nectar. I can make a honey from this. But if I add Royal Jelly to the nectar, I will be able to make a more flavorful, Golden Honey. For this, I need <font color="LEVEL">ten bottles</font> of Royal Jelly. It is such a rare ingredient that you may have trouble finding it.<br>
+What do you think? Should I just create a honey from the nectar you have brought me? Or will you try to gather more Royal Jelly?<br>
+<a action="bypass -h Quest Q00330_AdeptOfTaste 30073-04.html">Say you will gather more Royal Jelly</a><br>
+<a action="bypass -h Quest Q00330_AdeptOfTaste 30073-05.html">Ask him to make the honey</a>
+</body></html>

+ 1 - 1
dist/game/data/scripts/quests/330_AdeptOfTaste/30073-04.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30073-04.html

@@ -1,3 +1,3 @@
 <html><body>Guard Jacob:<br>
-Please continue, then. Royal jelly is an ingredient that is contained only within worker bees that are less than a week old, and it will be hard to find. But it is worth all the bother it takes to obtain this. Honey that contains royal jelly cannot compare in taste to ordinary honey.
+Please continue, then. Royal Jelly is an ingredient that is contained only within worker bees that are less than a week old, and it will be hard to find. But it is worth all the bother it takes to obtain this. Honey that contains Royal Jelly cannot compare in taste to ordinary honey.
 </body></html>

+ 1 - 1
dist/game/data/scripts/quests/330_AdeptOfTaste/30073-05.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30073-05.html

@@ -1,4 +1,4 @@
 <html><body>Guard Jacob:<br>
-I understand. I will make a honey from the ingredients you have brought me. It's a shame we don't have enough royal jelly. But it's quite all right. I can make plenty of good honey from this.<br>
+I understand. I will make a honey from the ingredients you have brought me. It's a shame we don't have enough Royal Jelly. But it's quite all right. I can make plenty of good honey from this.<br>
 Here you go. A honey so sweet that slumbering grizzly bears will awaken with a snap! Ha ha! Be careful not to break the bottle while carrying it.
 </body></html>

+ 1 - 1
dist/game/data/scripts/quests/330_AdeptOfTaste/30073-06.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30073-06.html

@@ -1,4 +1,4 @@
 <html><body>Guard Jacob:<br>
-You've brought me twenty bottles of nectar. And ten bottles of royal jelly to boot! I will be able to make a delicious golden honey from this!<br>
+You've brought me twenty bottles of nectar. And ten bottles of Royal Jelly to boot! I will be able to make a delicious Golden Honey from this!<br>
 Here you go. A honey so sweet that slumbering grizzly bears will awaken with a snap! Put some of this honey on freshly baked bread and eat it with a nice glass of warm milk ... Ahh ... Just the thought of that makes my mouth water!
 </body></html>

+ 0 - 0
dist/game/data/scripts/quests/330_AdeptOfTaste/30073-07.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30073-07.html


+ 1 - 2
dist/game/data/scripts/quests/330_AdeptOfTaste/30078-01.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30078-01.html

@@ -1,6 +1,5 @@
 <html><body>Grocer Pano:<br>
 Dionian Potatoes? Yes... People say they are the best potatoes in the kingdom, raised in our own province. They are not only big but also sweet.<br>
 However, recently <font color="LEVEL">hobgoblin plunderers</font> are interfering with our potato production. The farmers are experiencing severe damage. Those hobgoblin rascals steal flock, tear up the fields, and take all our crop... If this goes on, it will be difficult to properly harvest any crop this year, let alone potatoes. Since wares are not coming in, it is harder for me to keep up my trade.<br>
-The village chief seems to be hiring some soldiers to try to keep out the thieves... But it is not as easy as people thought it would be. It would be nice if you went out and got rid of the hobgoblins. If you take care of the task, I will give you some Dionian Potatoes that I have in stock.<br>
-I will keep my promise, so don't worry. Here, I have written a Contract, so keep it safe with you. Remember the conditions of the Contract. If you kill the hobgoblins and bring back <font color="LEVEL">thirty Hobgoblin Amulets</font> as proof, I will give you a sack of Dionian Potatoes.
+The village chief seems to be hiring some soldiers to try to keep out the thieves... But it is not as easy as people thought it would be. It would be nice if you went out and got rid of the hobgoblins. If you take care of the task, I will give you some Dionian Potatoes that I have in stock.<br>I will keep my promise, so don't worry. Here, I have written a Contract, so keep it safe with you. Remember the conditions of the Contract. If you kill the hobgoblins and bring back <font color="LEVEL">thirty Hobgoblin Amulets</font> as proof, I will give you a sack of Dionian Potatoes.
 </body></html>

+ 3 - 0
dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30078-02.html

@@ -0,0 +1,3 @@
+<html><body>Grocer Pano:<br>
+You haven't forgotten our Contract, have you? If you kill the <font color="LEVEL">hobgoblins</font> and bring back <font color="LEVEL">thirty thirty Hobgoblin Amulets</font>, I will give you a sack of Dionian Potatoes. Use your sword to get rid of the hobgoblins that trouble Dion's farmers, so they are not able to swagger around any more.
+</body></html>

+ 1 - 1
dist/game/data/scripts/quests/330_AdeptOfTaste/30078-03.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30078-03.html

@@ -1,4 +1,4 @@
 <html><body>Grocer Pano:<br>
 Good job! You have not completely driven out all the hobgoblins from Dion, but now they will not be able to swagger about the farms or villages arrogantly.<br>
-As promised, I will give you a sack of Dionian potatoes. They are not only big, but also sweet, and are the best potatoes in the kingdom.
+As promised, I will give you a sack of Dionian Potatoes. They are not only big, but also sweet, and are the best potatoes in the kingdom.
 </body></html>

+ 0 - 0
dist/game/data/scripts/quests/330_AdeptOfTaste/30078-04.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30078-04.html


+ 0 - 0
dist/game/data/scripts/quests/330_AdeptOfTaste/30461-01.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30461-01.html


+ 1 - 1
dist/game/data/scripts/quests/330_AdeptOfTaste/30461-02t1.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30461-02t1.html

@@ -2,5 +2,5 @@
 Is this Jonas' cooking? I tasted his cooking last month. He definitely has talent, but still lacks in some areas. His cooking is flawless, but his selection of ingredients is ... inappropriate, should I say? I wonder what this dish will be like.<br>
 Oh! It's a steak! Shall I have a taste ...?<br>
 It is monster eye meat! How did he think to cook it into a steak? What a unique idea. However ... The meat is tough and the sauce seems too mild. The salad goes well with the meat, but lacks freshness. Is it because of the dressing? It was a good attempt, but has some weaknesses.<br>
-I will give you this letter with my review. Please give it to<font color="LEVEL"> Jonas</font>. And tell him that I look forward to finer cuisine in the future.
+I will give you this letter with my review. Please give it to <font color="LEVEL">Jonas</font>. And tell him that I look forward to finer cuisine in the future.
 </body></html>

+ 1 - 1
dist/game/data/scripts/quests/330_AdeptOfTaste/30461-02t2.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30461-02t2.html

@@ -2,5 +2,5 @@
 Is this Jonas' cooking? I tasted his cooking last month. He definitely has talent, but still lacks in some areas. His cooking is flawless, but his selection of ingredients is ... inappropriate, should I say? I wonder what this dish will be like.<br>
 Oh! It's a steak! Shall I have a taste ...?<br>
 It is monster eye meat! How did he think to cook it into a steak? What a unique idea. However ... The sauce tastes too mild. The salad goes well with the meat, but lacks freshness. It was a good attempt, but has some weaknesses.<br>
-I will give you this letter with my review. Please give it to<font color="LEVEL"> Jonas</font>. And tell him that I look forward to finer cuisine in the future.
+I will give you this letter with my review. Please give it to <font color="LEVEL">Jonas</font>. And tell him that I look forward to finer cuisine in the future.
 </body></html>

+ 1 - 1
dist/game/data/scripts/quests/330_AdeptOfTaste/30461-02t3.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30461-02t3.html

@@ -2,5 +2,5 @@
 Is this Jonas' cooking? I tasted his cooking last month. He definitely has talent, but still lacks in some areas. His cooking is flawless, but his selection of ingredients is ... inappropriate, should I say? I wonder what this dish will be like.<br>
 Oh! It's a steak! Shall I have a taste ...?<br>
 It is monster eye meat! How did he think to cook it into a steak? What a unique idea. The taste is very good. It would have been better if the sauce were a little richer ... The salad goes well with the meat, but it is not that fresh. There are a few flaws, but overall, I am pleased. A little improvement will make it a magnificent dish.<br>
-I will give you this letter with my review. Please give it to<font color="LEVEL"> Jonas</font>. And tell him that I look forward to finer cuisine in the future.
+I will give you this letter with my review. Please give it to <font color="LEVEL">Jonas</font>. And tell him that I look forward to finer cuisine in the future.
 </body></html>

+ 2 - 2
dist/game/data/scripts/quests/330_AdeptOfTaste/30461-02t4.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30461-02t4.html

@@ -1,6 +1,6 @@
 <html><body>Magister Mirien:<br>
 Is this Jonas' cooking? I tasted his cooking last month. He definitely has talent, but still lacks in some areas. His cooking is flawless, but his selection of ingredients is ... inappropriate, should I say? I wonder what this dish will be like.<br>
 Oh! It's a steak! Shall I have a taste ...?<br>
-It is monster eye meat! How did he think to cook it into a steak? What a unique idea. It is truly delicious! The sauce is excellent. Did he use mandragora essence? The fresh salad goes well with the meat. Magnificent!<br>
-I will give you this letter where I wrote my review. Please give it to<font color="LEVEL"> Jonas</font>. And tell him that I look forward to finer cuisine in the future.
+It is monster eye meat! How did he think to cook it into a steak? What a unique idea. It is truly delicious! The sauce is excellent. Did he use Mandragora Essence? The fresh salad goes well with the meat. Magnificent!<br>
+I will give you this letter where I wrote my review. Please give it to <font color="LEVEL">Jonas</font>. And tell him that I look forward to finer cuisine in the future.
 </body></html>

+ 1 - 1
dist/game/data/scripts/quests/330_AdeptOfTaste/30461-02t5.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30461-02t5.html

@@ -1,6 +1,6 @@
 <html><body>Magister Mirien:<br>
 Was it made by Jonas? I tasted his cooking last month. He definitely has talent, but still lacks in some areas. His cooking is flawless, but his selection of ingredients is ... inappropriate, should I say? I wonder what this dish will be like.<br>
 Oh! It's a steak! Shall I have a taste ...?<br>
-It is monster eye meat! How did he think to cook it into a steak? It is a unique idea. Ahh ... Delicious! Truly delicious! The tenderness of the meat and the sauce are first rate. Did he use mandragora essence? The fresh moss salad goes well with the meat. The honey mustard dressing is also very good. Excellent!<br>
+It is monster eye meat! How did he think to cook it into a steak? It is a unique idea. Ahh ... Delicious! Truly delicious! The tenderness of the meat and the sauce are first rate. Did he use Mandragora Essence? The fresh moss salad goes well with the meat. The honey mustard dressing is also very good. Excellent!<br>
 This steak is by far the finest I have tasted since I have come out into the Human world! With these skills, I believe he has a great chance to become a court cook of the King's Castle of Aden. I will give Jonas the highest marks. Please give him this review. And tell him that I anticipate more of his fine cuisine in the future.
 </body></html>

+ 1 - 1
dist/game/data/scripts/quests/330_AdeptOfTaste/30461-04.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30461-04.html

@@ -1,3 +1,3 @@
 <html><body>Magister Mirien:<br>
-Do you have the review that I wrote you? Go on now and take it to<font color="LEVEL"> Jonas</font>. And tell him that I look forward to finer cuisine in the future.
+Do you have the review that I wrote you? Go on now and take it to <font color="LEVEL">Jonas</font>. And tell him that I look forward to finer cuisine in the future.
 </body></html>

+ 1 - 1
dist/game/data/scripts/quests/330_AdeptOfTaste/30469-01.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-01.htm

@@ -1,7 +1,7 @@
 <html><body>Jonas:<br>
 I learned the arts of cooking from Master Croker, and have developed my skills by myself for the last ten years. Though I do not know how to wield a sword or anything about magic, I am sure that I know more about cooking than anyone else.<br>
 But I am frustrated, as I have yet to receive recognition for my talents. I would like to prove my skills and become famous as the top chef of the kingdom. And I want to return to my family with pride.<br>
-That is why I have come to Dion. Every month, chefs from all over the kingdom come together to compete in a contest. The judge is the Elven Magister Mirien, also known as the<font color="LEVEL"> Food Critic</font> for her food judging abilities and discerning palette. Cooks that receive acknowledgement from Mirien receive a reward from the lord himself.<br>
+That is why I have come to Dion. Every month, chefs from all over the kingdom come together to compete in a contest. The judge is the Elven Magister Mirien, also known as the <font color="LEVEL">Food Critic</font> for her food judging abilities and discerning palette. Cooks that receive acknowledgement from Mirien receive a reward from the lord himself.<br>
 I entered a chicken dish at the last contest, but failed. But that is because the weather was bad and the meat was not good! It had nothing to do with my cooking methods! I plan to enter the contest being held next month. I am currently thinking up a new dish that I can enter. I would appreciate it if you could help me with gathering the ingredients later.<br>
 (Quest for characters level 24 and above.)
 </body></html>

+ 3 - 3
dist/game/data/scripts/quests/330_AdeptOfTaste/30469-02.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-02.htm

@@ -1,9 +1,9 @@
 <html><body>Jonas:<br>
-I learned the arts of cooking from Master Croker, and have developed my skills by myself for the last ten years. Though I do not know how to wield a sword or anything about magic, I am sure that I know more about cooking than anyone else.<br>
+I learned the arts of cooking from Master Croker, and have continued to develop my skills over the last ten years. Though I do not know how to wield a sword or cast spells, I am sure that I know more about cooking than anyone else.<br>
 But I am frustrated, as I have yet to receive recognition for my talents. I would like to prove my skills and become famous as the top chef of the kingdom. And I want to return to my family with pride.<br>
-That is why I have come to Dion. Every month, chefs from all over the kingdom come together to compete in a contest. The judge is the Elf<font color="LEVEL"> Magister Mirien</font>, also known as the<font color="LEVEL"> Food Critic</font> for her food-judging abilities and discerning palette. Cooks that receive acknowledgement from Mirien receive a reward from the lord himself.<br>
+That is why I have come to Dion. Every month, chefs from all over the kingdom come together to compete in a contest. The judge is the Elf <font color="LEVEL">Magister Mirien</font>, also known as the <font color="LEVEL">Food Critic</font> for her food-judging abilities and discerning palette. Cooks that receive acknowledgement from Mirien receive a reward from the lord himself.<br>
 I entered a chicken dish at the last contest, but failed. But that was because the weather was bad and the meat was not good! It has nothing to do with my cooking methods! I plan to enter the contest being held next month.<br>
 I failed the last contest, but I want to try again with this month's cooking contest. I have thought of a marvelous dish, but I am worried about the ingredients. A dish depends on fresh, quality ingredients, but the ingredients needed for this dish are all hard to find.<br>
 Please help me gather these ingredients. If I do well in the contest and receive the lord's award, I will give you half of it.<br>
-<a action="bypass -h Quest 330_AdeptOfTaste 1">Say you will help</a>
+<a action="bypass -h Quest Q00330_AdeptOfTaste 30469-03.htm">Say you will help</a>
 </body></html>

+ 9 - 0
dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-03.htm

@@ -0,0 +1,9 @@
+<html><body>Jonas:<br>
+Thank you. The dish I am planning to make uses monster eye meat, which is usually used by Mystics in their research. I want to cook the monster eye meat as a steak, the way Gracian nobility like it. For that, I will need five ingredients.<br>
+I need <font color="LEVEL">Mandragora Essence</font> to make a sauce for the steak. You can get this from <font color="LEVEL">Trader Sonia.</font><br>
+The salad that will accompany the steak will be made from <font color="LEVEL">marsh moss,</font> one of Dion's delicacies. This moss only grows in the Cruma Marshlands, and its refreshing taste is truly a treat. They say that you can find the moss if you ask <font color="LEVEL">Priestess Glyvka.</font><br>
+I plan to make the salad dressing with mustard and <font color="LEVEL">honey.</font> You can obtain the finest honey if you ask <font color="LEVEL">Guard Jacob</font> a favor.<br>
+I will also make a <font color="LEVEL">potato dish</font> to accompany the steak. They say that the potatoes grown in Dion are the best in the kingdom. You can obtain them from <font color="LEVEL">Grocer Pano in Floran Village.</font><br>
+The main dish, the steak, will be made from <font color="LEVEL">monster eye meat,</font> like I mentioned before. It's best that you go to <font color="LEVEL">Magister Rollant</font> to find the  monster eye meat.<br>
+Please gather these five ingredients for me. I have written them down on this list, so don't forget. A dish's flavor depends on how much care was given in gathering the ingredients. Your job is indeed an important one. Thank you.
+</body></html>

+ 9 - 0
dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-04.html

@@ -0,0 +1,9 @@
+<html><body>Jonas:<br>
+I see that you have not yet been able to gather the five ingredients I requested.<br>But there is no need to rush. A dish's flavor depends on how much care was given in gathering the ingredients. If you use just any ingredient, the dish will not be tasty, no matter how well you cook it.<br>
+If you've forgotten which ingredients you must get from whom, ask me again.<br>
+<a action="bypass -h Quest Q00330_AdeptOfTaste 30469-04t1.html">Ask about the juice of the mandragora</a><br>
+<a action="bypass -h Quest Q00330_AdeptOfTaste 30469-04t2.html">Ask about the swamp moss</a><br>
+<a action="bypass -h Quest Q00330_AdeptOfTaste 30469-04t3.html">Ask about the honey</a><br>
+<a action="bypass -h Quest Q00330_AdeptOfTaste 30469-04t4.html">Ask about the Dion potatoes</a><br>
+<a action="bypass -h Quest Q00330_AdeptOfTaste 30469-04t5.html">Ask about the floating eye meat</a>
+</body></html>

+ 4 - 0
dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-04t1.html

@@ -0,0 +1,4 @@
+<html><body>Jonas:<br>
+I need the juice of the mandragora to make a sauce for the steak. You can get this from <font color="LEVEL">Trader Sonia</font>.<br>
+<a action="bypass -h Quest Q00330_AdeptOfTaste 30469-04.html">Go back</a>
+</body></html>

+ 2 - 2
dist/game/data/scripts/quests/330_AdeptOfTaste/30469-04t2.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-04t2.html

@@ -1,4 +1,4 @@
 <html><body>Jonas:<br>
-The salad that will accompany the steak will be made from marsh moss, one of Dion's delicacies. This moss only grows in the Cruma Marshlands, and its refreshing taste is truly a treat. They say that you can find the moss if you ask<font color="LEVEL"> Priestess Glyvka.</font><br>
-<a action="bypass -h Quest 330_AdeptOfTaste 30469-04.htm">Return</a>
+The salad that will accompany the steak will be made from marsh moss, one of Dion's delicacies. This moss only grows in the Cruma Marshlands, and its refreshing taste is truly a treat. They say that you can find the moss if you ask <font color="LEVEL">Priestess Glyvka.</font><br>
+<a action="bypass -h Quest Q00330_AdeptOfTaste 30469-04.html">Return</a>
 </body></html>

+ 4 - 0
dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-04t3.html

@@ -0,0 +1,4 @@
+<html><body>Jonas:<br>
+I am planning to make a salad dressing with mustard and honey. They say you can obtain the finest honey if you ask <font color="LEVEL">Guard Jacob</font> to do you a favor.<br>
+<a action="bypass -h Quest Q00330_AdeptOfTaste 30469-04.html">Return</a>
+</body></html>

+ 2 - 2
dist/game/data/scripts/quests/330_AdeptOfTaste/30469-04t4.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-04t4.html

@@ -1,4 +1,4 @@
 <html><body>Jonas:<br>
-I am thinking of having potatoes with the steak. They say that the potatoes grown in Dion are the best in the kingdom. You can obtain them from<font color="LEVEL"> Grocer Pano in the village of Floran</font>.<br>
-<a action="bypass -h Quest 330_AdeptOfTaste 30469-04.htm">Return</a>
+I am thinking of having potatoes with the steak. They say that the potatoes grown in Dion are the best in the kingdom. You can obtain them from <font color="LEVEL">Grocer Pano in the village of Floran</font>.<br>
+<a action="bypass -h Quest Q00330_AdeptOfTaste 30469-04.html">Return</a>
 </body></html>

+ 4 - 0
dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-04t5.html

@@ -0,0 +1,4 @@
+<html><body>Jonas:<br>
+The main dish of steak, as I already told you, will be made of monster eye meat. I heard that one must go to <font color="LEVEL">Magister Rollant</font> to find monster eye meat.<br>
+<a action="bypass -h Quest Q00330_AdeptOfTaste 30469-04.html">Return</a></body>
+</html>

+ 2 - 2
dist/game/data/scripts/quests/330_AdeptOfTaste/30469-05t1.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-05t1.html

@@ -1,6 +1,6 @@
 <html><body>Jonas:<br>
 I see you have brought all five ingredients that I asked you for. Thank you for your trouble. However ...<br>
 I am sorry, but the ingredients are not very much to my liking. You could have found better ingredients if you had spared a little more time ... But we must not tarry any further, so I will go right into the preparations.<br>
-First, to slice the monster eye meat into appropriate pieces and marinate it in drevian wine ... Next, we go into preparations for the steak sauce ... Mix mandragora essence and vinegar and add thinly sliced onions ...<br>
-There! It is complete. I have finished the setting and packed it, so please hurry and take it to<font color="LEVEL"> Magister Mirien</font>. And please tell me how she evaluates my cooking!
+First, to slice the monster eye meat into appropriate pieces and marinate it in drevian wine ... Next, we go into preparations for the steak sauce ... Mix Mandragora Essence and vinegar and add thinly sliced onions ...<br>
+There! It is complete. I have finished the setting and packed it, so please hurry and take it to <font color="LEVEL">Magister Mirien</font>. And please tell me how she evaluates my cooking!
 </body></html>

+ 2 - 2
dist/game/data/scripts/quests/330_AdeptOfTaste/30469-05t2.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-05t2.html

@@ -1,6 +1,6 @@
 <html><body>Jonas:<br>
 I see you have brought all five ingredients that I asked you. Thank you for your trouble. However ...<br>
 I am sorry to say this, but some of the ingredients you brought could have been better. You could have found better ingredients if you had taken a little more time ... But we must not tarry any further, so I will go right into the preparations.<br>
-First, to slice the monster eye meat into appropriate pieces and marinate it in drevian wine ... Next, we go into preparations for the steak sauce ... Mix mandragora essence and vinegar and add thinly sliced onions ...<br>
-There! It is complete. I have finished the setting and packed it, so please hurry and take it to<font color="LEVEL"> Magister Mirien</font>. And please tell me how she evaluates my cooking!
+First, to slice the monster eye meat into appropriate pieces and marinate it in drevian wine ... Next, we go into preparations for the steak sauce ... Mix Mandragora Essence and vinegar and add thinly sliced onions ...<br>
+There! It is complete. I have finished the setting and packed it, so please hurry and take it to <font color="LEVEL">Magister Mirien</font>. And please tell me how she evaluates my cooking!
 </body></html>

+ 1 - 1
dist/game/data/scripts/quests/330_AdeptOfTaste/30469-05t3.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-05t3.html

@@ -2,5 +2,5 @@
 I see you have brought all the ingredients that I asked you. Thank you for your trouble.<br>
 Some ingredients could be better ... but this will make quite a satisfactory dish indeed. I will proceed immediately with the preparations.<br>
 First, I cut the monster eye meat into small pieces and marinate it in drevian wine ... Next, we go into preparations for the steak sauce ... Mandragora extract combined with vinegar, then thinly sliced onions ...<br>
-And so! It is complete. I have finished the setting and packed it, so hurry up and take it to<font color="LEVEL"> Magister Mirien</font>. And please tell me how she evaluated my cooking after she tasted it.
+And so! It is complete. I have finished the setting and packed it, so hurry up and take it to <font color="LEVEL">Magister Mirien</font>. And please tell me how she evaluated my cooking after she tasted it.
 </body></html>

+ 2 - 2
dist/game/data/scripts/quests/330_AdeptOfTaste/30469-05t4.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-05t4.html

@@ -1,6 +1,6 @@
 <html><body>Jonas:<br>
 I see you have brought all five ingredients that I asked you for. Thank you for your trouble.<br>
 I see you have found excellent ingredients. These ingredients will make a magnificent dish. Shall we begin cooking, then?<br>
-First, I slice the monster eye meat into appropriate pieces and marinate it in drevian wine ... Next, we go into preparations for the steak sauce ... Mix mandragora essence and vinegar and add thinly sliced onions ...<br>
-There! It is complete. I have finished the setting and packed it, so please hurry and take it to<font color="LEVEL"> Magister Mirien</font>. And please tell me how she evaluates my cooking!
+First, I slice the monster eye meat into appropriate pieces and marinate it in drevian wine ... Next, we go into preparations for the steak sauce ... Mix Mandragora Essence and vinegar and add thinly sliced onions ...<br>
+There! It is complete. I have finished the setting and packed it, so please hurry and take it to <font color="LEVEL">Magister Mirien</font>. And please tell me how she evaluates my cooking!
 </body></html>

+ 2 - 2
dist/game/data/scripts/quests/330_AdeptOfTaste/30469-05t5.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-05t5.html

@@ -1,5 +1,5 @@
 <html><body>Jonas:<br>
 I see you have brought all five ingredients that I asked you for. Thank you for your trouble. These ingredients will make a first-class dish. Shall we begin cooking, then?<br>
-First, I slice the monster eye meat into appropriate pieces and marinate it in drevian wine ... Next, we go into preparations for the steak sauce ... Mix mandragora essence and vinegar and add thinly sliced onions ...<br>
-There! It is complete. I have finished the setting and packed it, so please hurry and take it to<font color="LEVEL"> Magister Mirien</font>. And please tell me how she evaluates my cooking! This dish will most definitely receive the highest points.
+First, I slice the monster eye meat into appropriate pieces and marinate it in drevian wine ... Next, we go into preparations for the steak sauce ... Mix Mandragora Essence and vinegar and add thinly sliced onions ...<br>
+There! It is complete. I have finished the setting and packed it, so please hurry and take it to <font color="LEVEL">Magister Mirien</font>. And please tell me how she evaluates my cooking! This dish will most definitely receive the highest points.
 </body></html>

+ 0 - 0
dist/game/data/scripts/quests/330_AdeptOfTaste/30469-06.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-06.html


+ 0 - 0
dist/game/data/scripts/quests/330_AdeptOfTaste/30469-06t1.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-06t1.html


+ 0 - 0
dist/game/data/scripts/quests/330_AdeptOfTaste/30469-06t2.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-06t2.html


+ 1 - 1
dist/game/data/scripts/quests/330_AdeptOfTaste/30469-06t3.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-06t3.html

@@ -1,6 +1,6 @@
 <html><body>Jonas:<br>
 I see you have returned. I have already heard. It is not easy to receive a favorable review from the Food Critic Mirien. However, we must not be satisfied at this level. Next time, please find me better ingredients so I can try again.<br>
 It seems that the lord has already been informed of the results. I did not receive a high score, but the lord sent some prize money. As promised, I will give a portion to you.<br>
-And as a gift, I will give you a memo with the secrets of my cooking. When I later become a famous cook, the secrets may sell for a high price to rich epicures ... Ha Ha!<br>
+And as a gift, I will give you a memo with the secrets of my cooking.<br>
 I suppose you have your own dreams as well? Be patient and persevere. Then someday you will fulfill that dream.
 </body></html>

+ 1 - 1
dist/game/data/scripts/quests/330_AdeptOfTaste/30469-06t4.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-06t4.html

@@ -1,6 +1,6 @@
 <html><body>Jonas:<br>
 I see you have returned. I have already heard the news. It is not easy for the Food Critic Mirien to say that something is "magnificent!" At last, I will be recognized as a cook! Now I can be the man of my family. This is all thanks to your help.<br>
 It seems that the lord has already been informed of the results. He has sent me some prize money. As promised, I will give a portion to you. Thank you so much for your trouble. You have gone through so much trouble to find good ingredients.<br>
-Ah, and as a gift, I will give you a memo with the secrets of my cooking. When I later become a famous cook, the secret may sell for a high price to rich epicures ... Ha ha!<br>
+Ah, and as a gift, I will give you a memo with the secrets of my cooking.<br>
 I suppose you have your own dreams as well? Be patient and persevere. Then someday you will fulfill that dream.
 </body></html>

+ 1 - 1
dist/game/data/scripts/quests/330_AdeptOfTaste/30469-06t5.htm → dist/game/data/scripts/quests/Q00330_AdeptOfTaste/30469-06t5.html

@@ -2,6 +2,6 @@
 I see you have returned. I have already heard the news. So the Food Critic Mirien said that it was the "best dish!" Finally, I am acknowledged for my skills as a cook! Do you think this is finally the reward of all the shame and contempt I received from my family and friends? This is all thanks to your help.<br>
 I plan to cultivate my skills further and someday go to the king's palace of Aden and apply for the position of court cook. Then I will go meet my family in style.<br>
 The lord has sent a letter of congratulation and prize money. He has requested that I prepare the food that will be served at the banquet that takes place at the castle next month. I think I will be busy with that for the time being. As promised, I will give a portion of the prize to you.<br>
-Ah, and as a gift, I will give you a memo with the secrets of my cooking. When I later become a famous cook, the secret may sell for a high price to rich epicures ... Ha Ha!<br>
+Ah, and as a gift, I will give you a memo with the secrets of my cooking.<br>
 I suppose you have your own dreams as well? Be patient and persevere. Then someday you will surely fulfill that dream.
 </body></html>

+ 1031 - 0
dist/game/data/scripts/quests/Q00330_AdeptOfTaste/Q00330_AdeptOfTaste.java

@@ -0,0 +1,1031 @@
+/*
+ * Copyright (C) 2004-2015 L2J DataPack
+ * 
+ * This file is part of L2J DataPack.
+ * 
+ * L2J DataPack is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * L2J DataPack is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package quests.Q00330_AdeptOfTaste;
+
+import com.l2jserver.gameserver.enums.QuestSound;
+import com.l2jserver.gameserver.model.actor.L2Npc;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.model.quest.Quest;
+import com.l2jserver.gameserver.model.quest.QuestState;
+import com.l2jserver.gameserver.util.Util;
+
+/**
+ * Adept Of Taste (330)
+ * @author ivantotov
+ */
+public final class Q00330_AdeptOfTaste extends Quest
+{
+	// NPCs
+	private static final int ACCESSORY_MERCHANT_SONIA = 30062;
+	private static final int PRIESTESS_GLYVKA = 30067;
+	private static final int MAGISTER_ROLLANT = 30069;
+	private static final int GUARD_JACOB = 30073;
+	private static final int GROCER_PANO = 30078;
+	private static final int MAGISTER_MIRIEN = 30461;
+	private static final int JONAS = 30469;
+	// Items
+	private static final int INGREDIENT_LIST = 1420;
+	private static final int SONIAS_BOTANY_BOOK = 1421;
+	private static final int RED_MANDRAGORA_ROOT = 1422;
+	private static final int WHITE_MANDRAGORA_ROOT = 1423;
+	private static final int RED_MANDRAGORA_SAP = 1424;
+	private static final int WHITE_MANDRAGORA_SAP = 1425;
+	private static final int JACOBS_INSECT_BOOK = 1426;
+	private static final int NECTAR = 1427;
+	private static final int ROYAL_JELLY = 1428;
+	private static final int HONEY = 1429;
+	private static final int GOLDEN_HONEY = 1430;
+	private static final int PANOS_CONTRACT = 1431;
+	private static final int HOBGOBLIN_AMULET = 1432;
+	private static final int DIONIAN_POTATO = 1433;
+	private static final int GLYVKAS_BOTANY_BOOK = 1434;
+	private static final int GREEN_MARSH_MOSS = 1435;
+	private static final int BROWN_MARSH_MOSS = 1436;
+	private static final int GREEN_MOSS_BUNDLE = 1437;
+	private static final int BROWN_MOSS_BUNDLE = 1438;
+	private static final int ROLLANTS_CREATURE_BOOK = 1439;
+	private static final int BODY_OF_MONSTER_EYE = 1440;
+	private static final int MONSTER_EYE_MEAT = 1441;
+	private static final int JONASS_1ST_STEAK_DISH = 1442;
+	private static final int JONASS_2ND_STEAK_DISH = 1443;
+	private static final int JONASS_3RD_STEAK_DISH = 1444;
+	private static final int JONASS_4TH_STEAK_DISH = 1445;
+	private static final int JONASS_5TH_STEAK_DISH = 1446;
+	private static final int MIRIENS_REVIEW_1 = 1447;
+	private static final int MIRIENS_REVIEW_2 = 1448;
+	private static final int MIRIENS_REVIEW_3 = 1449;
+	private static final int MIRIENS_REVIEW_4 = 1450;
+	private static final int MIRIENS_REVIEW_5 = 1451;
+	// Reward
+	private static final int JONASS_SALAD_RECIPE = 1455;
+	private static final int JONASS_SAUCE_RECIPE = 1456;
+	private static final int JONASS_STEAK_RECIPE = 1457;
+	// Monster
+	private static final int HOBGOBLIN = 20147;
+	private static final int MANDRAGORA_SPROUT1 = 20154;
+	private static final int MANDRAGORA_SAPLING = 20155;
+	private static final int MANDRAGORA_BLOSSOM = 20156;
+	private static final int BLOODY_BEE = 20204;
+	private static final int MANDRAGORA_SPROUT2 = 20223;
+	private static final int GRAY_ANT = 20226;
+	private static final int GIANT_CRIMSON_ANT = 20228;
+	private static final int STINGER_WASP = 20229;
+	private static final int MONSTER_EYE_SEARCHER = 20265;
+	private static final int MONSTER_EYE_GAZER = 20266;
+	// Misc
+	private static final int MIN_LEVEL = 24;
+	
+	public Q00330_AdeptOfTaste()
+	{
+		super(330, Q00330_AdeptOfTaste.class.getSimpleName(), "Adept Of Taste");
+		addStartNpc(JONAS);
+		addTalkId(JONAS, ACCESSORY_MERCHANT_SONIA, PRIESTESS_GLYVKA, MAGISTER_ROLLANT, GUARD_JACOB, GROCER_PANO, MAGISTER_MIRIEN);
+		addKillId(HOBGOBLIN, MANDRAGORA_SPROUT1, MANDRAGORA_SAPLING, MANDRAGORA_BLOSSOM, BLOODY_BEE, MANDRAGORA_SPROUT2, GRAY_ANT, GIANT_CRIMSON_ANT, STINGER_WASP, MONSTER_EYE_SEARCHER, MONSTER_EYE_GAZER);
+		registerQuestItems(INGREDIENT_LIST, SONIAS_BOTANY_BOOK, RED_MANDRAGORA_ROOT, WHITE_MANDRAGORA_ROOT, RED_MANDRAGORA_SAP, WHITE_MANDRAGORA_SAP, JACOBS_INSECT_BOOK, NECTAR, ROYAL_JELLY, HONEY, GOLDEN_HONEY, PANOS_CONTRACT, HOBGOBLIN_AMULET, DIONIAN_POTATO, GLYVKAS_BOTANY_BOOK, GREEN_MARSH_MOSS, BROWN_MARSH_MOSS, GREEN_MOSS_BUNDLE, BROWN_MOSS_BUNDLE, ROLLANTS_CREATURE_BOOK, BODY_OF_MONSTER_EYE, MONSTER_EYE_MEAT, JONASS_1ST_STEAK_DISH, JONASS_2ND_STEAK_DISH, JONASS_3RD_STEAK_DISH, JONASS_4TH_STEAK_DISH, JONASS_5TH_STEAK_DISH, MIRIENS_REVIEW_1, MIRIENS_REVIEW_2, MIRIENS_REVIEW_3, MIRIENS_REVIEW_4, MIRIENS_REVIEW_5);
+	}
+	
+	@Override
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+	{
+		final QuestState qs = getQuestState(player, false);
+		if (qs == null)
+		{
+			return null;
+		}
+		
+		String htmltext = null;
+		switch (event)
+		{
+			case "30469-03.htm":
+			{
+				if (qs.isCreated())
+				{
+					qs.startQuest();
+					giveItems(player, INGREDIENT_LIST, 1);
+					htmltext = event;
+				}
+				break;
+			}
+			case "30062-05.html":
+			{
+				if (hasQuestItems(player, SONIAS_BOTANY_BOOK) && ((getQuestItemsCount(player, RED_MANDRAGORA_ROOT) + getQuestItemsCount(player, WHITE_MANDRAGORA_ROOT)) >= 40))
+				{
+					if (getQuestItemsCount(player, WHITE_MANDRAGORA_ROOT) < 40)
+					{
+						takeItems(player, SONIAS_BOTANY_BOOK, 1);
+						takeItems(player, RED_MANDRAGORA_ROOT, -1);
+						takeItems(player, WHITE_MANDRAGORA_ROOT, -1);
+						giveItems(player, RED_MANDRAGORA_SAP, 1);
+						htmltext = event;
+					}
+				}
+				break;
+			}
+			case "30067-05.html":
+			{
+				if (hasQuestItems(player, GLYVKAS_BOTANY_BOOK) && ((getQuestItemsCount(player, GREEN_MARSH_MOSS) + getQuestItemsCount(player, BROWN_MARSH_MOSS)) >= 20))
+				{
+					if (getQuestItemsCount(player, BROWN_MARSH_MOSS) < 20)
+					{
+						takeItems(player, GLYVKAS_BOTANY_BOOK, 1);
+						takeItems(player, GREEN_MARSH_MOSS, -1);
+						takeItems(player, BROWN_MARSH_MOSS, -1);
+						giveItems(player, GREEN_MOSS_BUNDLE, 1);
+						htmltext = event;
+					}
+				}
+				break;
+			}
+			case "30073-05.html":
+			{
+				if ((hasQuestItems(player, JACOBS_INSECT_BOOK) && (getQuestItemsCount(player, NECTAR) >= 20)) && (getQuestItemsCount(player, ROYAL_JELLY) < 10))
+				{
+					takeItems(player, JACOBS_INSECT_BOOK, 1);
+					takeItems(player, NECTAR, -1);
+					takeItems(player, ROYAL_JELLY, -1);
+					giveItems(player, HONEY, 1);
+					htmltext = event;
+				}
+				break;
+			}
+			case "30062-04.html":
+			case "30067-04.html":
+			case "30073-04.html":
+			case "30469-04.html":
+			case "30469-04t1.html":
+			case "30469-04t2.html":
+			case "30469-04t3.html":
+			case "30469-04t4.html":
+			case "30469-04t5.html":
+			{
+				htmltext = event;
+				break;
+			}
+		}
+		return htmltext;
+	}
+	
+	@Override
+	public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+	{
+		final QuestState qs = getQuestState(killer, false);
+		if ((qs != null) && qs.isStarted() && Util.checkIfInRange(1500, npc, killer, true))
+		{
+			switch (npc.getId())
+			{
+				case HOBGOBLIN:
+				{
+					if ((getQuestItemsCount(killer, RED_MANDRAGORA_SAP) + getQuestItemsCount(killer, WHITE_MANDRAGORA_SAP) + getQuestItemsCount(killer, HONEY) + getQuestItemsCount(killer, GOLDEN_HONEY) + getQuestItemsCount(killer, DIONIAN_POTATO) + getQuestItemsCount(killer, GREEN_MOSS_BUNDLE) + getQuestItemsCount(killer, BROWN_MOSS_BUNDLE) + getQuestItemsCount(killer, MONSTER_EYE_MEAT)) < 5)
+					{
+						if (hasQuestItems(killer, INGREDIENT_LIST, PANOS_CONTRACT) && (getQuestItemsCount(killer, HOBGOBLIN_AMULET) < 30))
+						{
+							giveItems(killer, HOBGOBLIN_AMULET, 1);
+							if (getQuestItemsCount(killer, HOBGOBLIN_AMULET) == 30)
+							{
+								playSound(killer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
+							}
+							else
+							{
+								playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+							}
+						}
+					}
+					break;
+				}
+				case MANDRAGORA_SPROUT1:
+				case MANDRAGORA_SPROUT2:
+				{
+					if ((getQuestItemsCount(killer, RED_MANDRAGORA_SAP) + getQuestItemsCount(killer, WHITE_MANDRAGORA_SAP) + getQuestItemsCount(killer, HONEY) + getQuestItemsCount(killer, GOLDEN_HONEY) + getQuestItemsCount(killer, DIONIAN_POTATO) + getQuestItemsCount(killer, GREEN_MOSS_BUNDLE) + getQuestItemsCount(killer, BROWN_MOSS_BUNDLE) + getQuestItemsCount(killer, MONSTER_EYE_MEAT)) < 5)
+					{
+						if (hasQuestItems(killer, INGREDIENT_LIST, SONIAS_BOTANY_BOOK) && !hasAtLeastOneQuestItem(killer, RED_MANDRAGORA_SAP, WHITE_MANDRAGORA_SAP))
+						{
+							final int i0 = getRandom(100);
+							if (i0 < 70)
+							{
+								if (getQuestItemsCount(killer, RED_MANDRAGORA_ROOT) < 40)
+								{
+									giveItems(killer, RED_MANDRAGORA_ROOT, 1);
+									if (getQuestItemsCount(killer, RED_MANDRAGORA_ROOT) == 40)
+									{
+										playSound(killer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
+									}
+									else
+									{
+										playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+									}
+								}
+							}
+							else if (i0 < 77)
+							{
+								if (getQuestItemsCount(killer, WHITE_MANDRAGORA_ROOT) < 40)
+								{
+									giveItems(killer, WHITE_MANDRAGORA_ROOT, 1);
+									if (getQuestItemsCount(killer, WHITE_MANDRAGORA_ROOT) == 40)
+									{
+										playSound(killer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
+									}
+									else
+									{
+										playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+									}
+								}
+							}
+						}
+					}
+					break;
+				}
+				case MANDRAGORA_SAPLING:
+				{
+					if ((getQuestItemsCount(killer, RED_MANDRAGORA_SAP) + getQuestItemsCount(killer, WHITE_MANDRAGORA_SAP) + getQuestItemsCount(killer, HONEY) + getQuestItemsCount(killer, GOLDEN_HONEY) + getQuestItemsCount(killer, DIONIAN_POTATO) + getQuestItemsCount(killer, GREEN_MOSS_BUNDLE) + getQuestItemsCount(killer, BROWN_MOSS_BUNDLE) + getQuestItemsCount(killer, MONSTER_EYE_MEAT)) < 5)
+					{
+						if (hasQuestItems(killer, INGREDIENT_LIST, SONIAS_BOTANY_BOOK) && !hasAtLeastOneQuestItem(killer, RED_MANDRAGORA_SAP, WHITE_MANDRAGORA_SAP))
+						{
+							final int i0 = getRandom(100);
+							if (i0 < 77)
+							{
+								if (getQuestItemsCount(killer, RED_MANDRAGORA_ROOT) < 40)
+								{
+									giveItems(killer, RED_MANDRAGORA_ROOT, 1);
+									if (getQuestItemsCount(killer, RED_MANDRAGORA_ROOT) == 40)
+									{
+										playSound(killer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
+									}
+									else
+									{
+										playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+									}
+								}
+							}
+							else if (i0 < 85)
+							{
+								if (getQuestItemsCount(killer, WHITE_MANDRAGORA_ROOT) < 40)
+								{
+									giveItems(killer, WHITE_MANDRAGORA_ROOT, 1);
+									if (getQuestItemsCount(killer, WHITE_MANDRAGORA_ROOT) == 40)
+									{
+										playSound(killer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
+									}
+									else
+									{
+										playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+									}
+								}
+							}
+						}
+					}
+					break;
+				}
+				case MANDRAGORA_BLOSSOM:
+				{
+					if ((getQuestItemsCount(killer, RED_MANDRAGORA_SAP) + getQuestItemsCount(killer, WHITE_MANDRAGORA_SAP) + getQuestItemsCount(killer, HONEY) + getQuestItemsCount(killer, GOLDEN_HONEY) + getQuestItemsCount(killer, DIONIAN_POTATO) + getQuestItemsCount(killer, GREEN_MOSS_BUNDLE) + getQuestItemsCount(killer, BROWN_MOSS_BUNDLE) + getQuestItemsCount(killer, MONSTER_EYE_MEAT)) < 5)
+					{
+						if (hasQuestItems(killer, INGREDIENT_LIST, SONIAS_BOTANY_BOOK) && !hasAtLeastOneQuestItem(killer, RED_MANDRAGORA_SAP, WHITE_MANDRAGORA_SAP))
+						{
+							final int i0 = getRandom(100);
+							if (i0 < 87)
+							{
+								if (getQuestItemsCount(killer, RED_MANDRAGORA_ROOT) < 40)
+								{
+									giveItems(killer, RED_MANDRAGORA_ROOT, 1);
+									if (getQuestItemsCount(killer, RED_MANDRAGORA_ROOT) == 40)
+									{
+										playSound(killer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
+									}
+									else
+									{
+										playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+									}
+								}
+							}
+							else if (i0 < 96)
+							{
+								if (getQuestItemsCount(killer, WHITE_MANDRAGORA_ROOT) < 40)
+								{
+									giveItems(killer, WHITE_MANDRAGORA_ROOT, 1);
+									if (getQuestItemsCount(killer, WHITE_MANDRAGORA_ROOT) == 40)
+									{
+										playSound(killer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
+									}
+									else
+									{
+										playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+									}
+								}
+							}
+						}
+					}
+					break;
+				}
+				case BLOODY_BEE:
+				{
+					if ((getQuestItemsCount(killer, RED_MANDRAGORA_SAP) + getQuestItemsCount(killer, WHITE_MANDRAGORA_SAP) + getQuestItemsCount(killer, HONEY) + getQuestItemsCount(killer, GOLDEN_HONEY) + getQuestItemsCount(killer, DIONIAN_POTATO) + getQuestItemsCount(killer, GREEN_MOSS_BUNDLE) + getQuestItemsCount(killer, BROWN_MOSS_BUNDLE) + getQuestItemsCount(killer, MONSTER_EYE_MEAT)) < 5)
+					{
+						if (hasQuestItems(killer, INGREDIENT_LIST, JACOBS_INSECT_BOOK))
+						{
+							final int i0 = getRandom(100);
+							if (i0 < 80)
+							{
+								if (getQuestItemsCount(killer, NECTAR) < 20)
+								{
+									giveItems(killer, NECTAR, 1);
+									if (getQuestItemsCount(killer, NECTAR) == 20)
+									{
+										playSound(killer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
+									}
+									else
+									{
+										playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+									}
+								}
+							}
+							else if (i0 < 95)
+							{
+								if (getQuestItemsCount(killer, ROYAL_JELLY) < 10)
+								{
+									giveItems(killer, ROYAL_JELLY, 1);
+									if (getQuestItemsCount(killer, ROYAL_JELLY) == 10)
+									{
+										playSound(killer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
+									}
+									else
+									{
+										playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+									}
+								}
+							}
+						}
+					}
+					break;
+				}
+				case GRAY_ANT:
+				{
+					if ((getQuestItemsCount(killer, RED_MANDRAGORA_SAP) + getQuestItemsCount(killer, WHITE_MANDRAGORA_SAP) + getQuestItemsCount(killer, HONEY) + getQuestItemsCount(killer, GOLDEN_HONEY) + getQuestItemsCount(killer, DIONIAN_POTATO) + getQuestItemsCount(killer, GREEN_MOSS_BUNDLE) + getQuestItemsCount(killer, BROWN_MOSS_BUNDLE) + getQuestItemsCount(killer, MONSTER_EYE_MEAT)) < 5)
+					{
+						if (hasQuestItems(killer, INGREDIENT_LIST, GLYVKAS_BOTANY_BOOK))
+						{
+							final int i0 = getRandom(100);
+							if (i0 < 87)
+							{
+								if (getQuestItemsCount(killer, GREEN_MARSH_MOSS) < 20)
+								{
+									giveItems(killer, GREEN_MARSH_MOSS, 1);
+									if (getQuestItemsCount(killer, GREEN_MARSH_MOSS) == 20)
+									{
+										playSound(killer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
+									}
+									else
+									{
+										playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+									}
+								}
+							}
+							else if (i0 < 96)
+							{
+								if (getQuestItemsCount(killer, BROWN_MARSH_MOSS) < 20)
+								{
+									giveItems(killer, BROWN_MARSH_MOSS, 1);
+									if (getQuestItemsCount(killer, BROWN_MARSH_MOSS) == 20)
+									{
+										playSound(killer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
+									}
+									else
+									{
+										playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+									}
+								}
+							}
+						}
+					}
+					break;
+				}
+				case GIANT_CRIMSON_ANT:
+				{
+					if ((getQuestItemsCount(killer, RED_MANDRAGORA_SAP) + getQuestItemsCount(killer, WHITE_MANDRAGORA_SAP) + getQuestItemsCount(killer, HONEY) + getQuestItemsCount(killer, GOLDEN_HONEY) + getQuestItemsCount(killer, DIONIAN_POTATO) + getQuestItemsCount(killer, GREEN_MOSS_BUNDLE) + getQuestItemsCount(killer, BROWN_MOSS_BUNDLE) + getQuestItemsCount(killer, MONSTER_EYE_MEAT)) < 5)
+					{
+						if (hasQuestItems(killer, INGREDIENT_LIST, GLYVKAS_BOTANY_BOOK))
+						{
+							final int i0 = getRandom(100);
+							if (i0 < 90)
+							{
+								if (getQuestItemsCount(killer, GREEN_MARSH_MOSS) < 20)
+								{
+									giveItems(killer, GREEN_MARSH_MOSS, 1);
+									if (getQuestItemsCount(killer, GREEN_MARSH_MOSS) == 20)
+									{
+										playSound(killer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
+									}
+									else
+									{
+										playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+									}
+								}
+							}
+							else
+							{
+								if (getQuestItemsCount(killer, BROWN_MARSH_MOSS) < 20)
+								{
+									giveItems(killer, BROWN_MARSH_MOSS, 1);
+									if (getQuestItemsCount(killer, BROWN_MARSH_MOSS) == 20)
+									{
+										playSound(killer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
+									}
+									else
+									{
+										playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+									}
+								}
+							}
+						}
+					}
+					break;
+				}
+				case STINGER_WASP:
+				{
+					if ((getQuestItemsCount(killer, RED_MANDRAGORA_SAP) + getQuestItemsCount(killer, WHITE_MANDRAGORA_SAP) + getQuestItemsCount(killer, HONEY) + getQuestItemsCount(killer, GOLDEN_HONEY) + getQuestItemsCount(killer, DIONIAN_POTATO) + getQuestItemsCount(killer, GREEN_MOSS_BUNDLE) + getQuestItemsCount(killer, BROWN_MOSS_BUNDLE) + getQuestItemsCount(killer, MONSTER_EYE_MEAT)) < 5)
+					{
+						if (hasQuestItems(killer, INGREDIENT_LIST, JACOBS_INSECT_BOOK))
+						{
+							final int i0 = getRandom(100);
+							if (i0 < 92)
+							{
+								if (getQuestItemsCount(killer, NECTAR) < 20)
+								{
+									giveItems(killer, NECTAR, 1);
+									if (getQuestItemsCount(killer, NECTAR) == 20)
+									{
+										playSound(killer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
+									}
+									else
+									{
+										playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+									}
+								}
+							}
+							else
+							{
+								if (getQuestItemsCount(killer, ROYAL_JELLY) < 10)
+								{
+									giveItems(killer, ROYAL_JELLY, 1);
+									if (getQuestItemsCount(killer, ROYAL_JELLY) == 10)
+									{
+										playSound(killer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
+									}
+									else
+									{
+										playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+									}
+								}
+							}
+						}
+					}
+					break;
+				}
+				case MONSTER_EYE_SEARCHER:
+				{
+					if ((getQuestItemsCount(killer, RED_MANDRAGORA_SAP) + getQuestItemsCount(killer, WHITE_MANDRAGORA_SAP) + getQuestItemsCount(killer, HONEY) + getQuestItemsCount(killer, GOLDEN_HONEY) + getQuestItemsCount(killer, DIONIAN_POTATO) + getQuestItemsCount(killer, GREEN_MOSS_BUNDLE) + getQuestItemsCount(killer, BROWN_MOSS_BUNDLE) + getQuestItemsCount(killer, MONSTER_EYE_MEAT)) < 5)
+					{
+						if (hasQuestItems(killer, INGREDIENT_LIST, ROLLANTS_CREATURE_BOOK) && (getQuestItemsCount(killer, BODY_OF_MONSTER_EYE) < 30))
+						{
+							final int i0 = getRandom(100);
+							if (i0 < 77)
+							{
+								if (getQuestItemsCount(killer, BODY_OF_MONSTER_EYE) == 29)
+								{
+									giveItems(killer, BODY_OF_MONSTER_EYE, 1);
+									playSound(killer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
+								}
+								else
+								{
+									giveItems(killer, BODY_OF_MONSTER_EYE, 2);
+									playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+								}
+							}
+							else if (i0 < 97)
+							{
+								if (getQuestItemsCount(killer, BROWN_MARSH_MOSS) == 28)
+								{
+									giveItems(killer, BODY_OF_MONSTER_EYE, 2);
+									playSound(killer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
+								}
+								else if (getQuestItemsCount(killer, BROWN_MARSH_MOSS) == 29)
+								{
+									giveItems(killer, BODY_OF_MONSTER_EYE, 1);
+									playSound(killer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
+								}
+								else
+								{
+									giveItems(killer, BODY_OF_MONSTER_EYE, 3);
+									playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+								}
+								
+							}
+						}
+					}
+					break;
+				}
+				case MONSTER_EYE_GAZER:
+				{
+					if ((getQuestItemsCount(killer, RED_MANDRAGORA_SAP) + getQuestItemsCount(killer, WHITE_MANDRAGORA_SAP) + getQuestItemsCount(killer, HONEY) + getQuestItemsCount(killer, GOLDEN_HONEY) + getQuestItemsCount(killer, DIONIAN_POTATO) + getQuestItemsCount(killer, GREEN_MOSS_BUNDLE) + getQuestItemsCount(killer, BROWN_MOSS_BUNDLE) + getQuestItemsCount(killer, MONSTER_EYE_MEAT)) < 5)
+					{
+						if (hasQuestItems(killer, INGREDIENT_LIST, ROLLANTS_CREATURE_BOOK) && (getQuestItemsCount(killer, BODY_OF_MONSTER_EYE) < 30))
+						{
+							final int i0 = getRandom(10);
+							if (i0 < 7)
+							{
+								giveItems(killer, BODY_OF_MONSTER_EYE, 1);
+								if (getQuestItemsCount(killer, BODY_OF_MONSTER_EYE) == 30)
+								{
+									playSound(killer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
+								}
+								else
+								{
+									playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+								}
+							}
+							else
+							{
+								if (getQuestItemsCount(killer, BROWN_MARSH_MOSS) == 29)
+								{
+									giveItems(killer, BODY_OF_MONSTER_EYE, 1);
+									playSound(killer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
+								}
+								else
+								{
+									giveItems(killer, BODY_OF_MONSTER_EYE, 2);
+									playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+								}
+								
+							}
+						}
+					}
+					break;
+				}
+			}
+		}
+		return super.onKill(npc, killer, isSummon);
+	}
+	
+	@Override
+	public String onTalk(L2Npc npc, L2PcInstance player)
+	{
+		final QuestState qs = getQuestState(player, true);
+		String htmltext = getNoQuestMsg(player);
+		if (qs.isCreated())
+		{
+			if (npc.getId() == JONAS)
+			{
+				if (player.getLevel() < MIN_LEVEL)
+				{
+					htmltext = "30469-01.htm";
+				}
+				else
+				{
+					htmltext = "30469-02.htm";
+				}
+			}
+		}
+		else if (qs.isStarted())
+		{
+			switch (npc.getId())
+			{
+				case JONAS:
+				{
+					if (hasQuestItems(player, INGREDIENT_LIST))
+					{
+						if ((getQuestItemsCount(player, RED_MANDRAGORA_SAP) + getQuestItemsCount(player, WHITE_MANDRAGORA_SAP) + getQuestItemsCount(player, HONEY) + getQuestItemsCount(player, GOLDEN_HONEY) + getQuestItemsCount(player, DIONIAN_POTATO) + getQuestItemsCount(player, GREEN_MOSS_BUNDLE) + getQuestItemsCount(player, BROWN_MOSS_BUNDLE) + getQuestItemsCount(player, MONSTER_EYE_MEAT)) < 5)
+						{
+							htmltext = "30469-04.html";
+						}
+						else
+						{
+							if ((getQuestItemsCount(player, WHITE_MANDRAGORA_SAP) + getQuestItemsCount(player, GOLDEN_HONEY) + getQuestItemsCount(player, BROWN_MOSS_BUNDLE)) == 0)
+							{
+								if (getRandom(10) < 5)
+								{
+									takeItems(player, INGREDIENT_LIST, -1);
+									takeItems(player, RED_MANDRAGORA_SAP, -1);
+									takeItems(player, WHITE_MANDRAGORA_SAP, -1);
+									takeItems(player, HONEY, -1);
+									takeItems(player, GOLDEN_HONEY, -1);
+									takeItems(player, DIONIAN_POTATO, -1);
+									takeItems(player, GREEN_MOSS_BUNDLE, -1);
+									takeItems(player, BROWN_MOSS_BUNDLE, -1);
+									takeItems(player, MONSTER_EYE_MEAT, -1);
+									giveItems(player, JONASS_2ND_STEAK_DISH, 1);
+									htmltext = "30469-05t2.html";
+								}
+								else
+								{
+									takeItems(player, INGREDIENT_LIST, -1);
+									takeItems(player, RED_MANDRAGORA_SAP, -1);
+									takeItems(player, WHITE_MANDRAGORA_SAP, -1);
+									takeItems(player, HONEY, -1);
+									takeItems(player, GOLDEN_HONEY, -1);
+									takeItems(player, DIONIAN_POTATO, -1);
+									takeItems(player, GREEN_MOSS_BUNDLE, -1);
+									takeItems(player, BROWN_MOSS_BUNDLE, -1);
+									takeItems(player, MONSTER_EYE_MEAT, -1);
+									giveItems(player, JONASS_1ST_STEAK_DISH, 1);
+									htmltext = "30469-05t1.html";
+								}
+							}
+							
+							if ((getQuestItemsCount(player, WHITE_MANDRAGORA_SAP) + getQuestItemsCount(player, GOLDEN_HONEY) + getQuestItemsCount(player, BROWN_MOSS_BUNDLE)) == 1)
+							{
+								if (getRandom(10) < 5)
+								{
+									takeItems(player, INGREDIENT_LIST, -1);
+									takeItems(player, RED_MANDRAGORA_SAP, -1);
+									takeItems(player, WHITE_MANDRAGORA_SAP, -1);
+									takeItems(player, HONEY, -1);
+									takeItems(player, GOLDEN_HONEY, -1);
+									takeItems(player, DIONIAN_POTATO, -1);
+									takeItems(player, GREEN_MOSS_BUNDLE, -1);
+									takeItems(player, BROWN_MOSS_BUNDLE, -1);
+									takeItems(player, MONSTER_EYE_MEAT, -1);
+									giveItems(player, JONASS_3RD_STEAK_DISH, 1);
+									htmltext = "30469-05t3.html";
+								}
+								else
+								{
+									takeItems(player, INGREDIENT_LIST, -1);
+									takeItems(player, RED_MANDRAGORA_SAP, -1);
+									takeItems(player, WHITE_MANDRAGORA_SAP, -1);
+									takeItems(player, HONEY, -1);
+									takeItems(player, GOLDEN_HONEY, -1);
+									takeItems(player, DIONIAN_POTATO, -1);
+									takeItems(player, GREEN_MOSS_BUNDLE, -1);
+									takeItems(player, BROWN_MOSS_BUNDLE, -1);
+									takeItems(player, MONSTER_EYE_MEAT, -1);
+									giveItems(player, JONASS_2ND_STEAK_DISH, 1);
+									htmltext = "30469-05t2.html";
+								}
+							}
+							
+							if ((getQuestItemsCount(player, WHITE_MANDRAGORA_SAP) + getQuestItemsCount(player, GOLDEN_HONEY) + getQuestItemsCount(player, BROWN_MOSS_BUNDLE)) == 2)
+							{
+								if (getRandom(10) < 5)
+								{
+									takeItems(player, INGREDIENT_LIST, -1);
+									takeItems(player, RED_MANDRAGORA_SAP, -1);
+									takeItems(player, WHITE_MANDRAGORA_SAP, -1);
+									takeItems(player, HONEY, -1);
+									takeItems(player, GOLDEN_HONEY, -1);
+									takeItems(player, DIONIAN_POTATO, -1);
+									takeItems(player, GREEN_MOSS_BUNDLE, -1);
+									takeItems(player, BROWN_MOSS_BUNDLE, -1);
+									takeItems(player, MONSTER_EYE_MEAT, -1);
+									giveItems(player, JONASS_4TH_STEAK_DISH, 1);
+									htmltext = "30469-05t4.html";
+								}
+								else
+								{
+									takeItems(player, INGREDIENT_LIST, -1);
+									takeItems(player, RED_MANDRAGORA_SAP, -1);
+									takeItems(player, WHITE_MANDRAGORA_SAP, -1);
+									takeItems(player, HONEY, -1);
+									takeItems(player, GOLDEN_HONEY, -1);
+									takeItems(player, DIONIAN_POTATO, -1);
+									takeItems(player, GREEN_MOSS_BUNDLE, -1);
+									takeItems(player, BROWN_MOSS_BUNDLE, -1);
+									takeItems(player, MONSTER_EYE_MEAT, -1);
+									giveItems(player, JONASS_3RD_STEAK_DISH, 1);
+									htmltext = "30469-05t3.html";
+								}
+							}
+							
+							if ((getQuestItemsCount(player, WHITE_MANDRAGORA_SAP) + getQuestItemsCount(player, GOLDEN_HONEY) + getQuestItemsCount(player, BROWN_MOSS_BUNDLE)) == 3)
+							{
+								if (getRandom(10) < 5)
+								{
+									takeItems(player, INGREDIENT_LIST, -1);
+									takeItems(player, RED_MANDRAGORA_SAP, -1);
+									takeItems(player, WHITE_MANDRAGORA_SAP, -1);
+									takeItems(player, HONEY, -1);
+									takeItems(player, GOLDEN_HONEY, -1);
+									takeItems(player, DIONIAN_POTATO, -1);
+									takeItems(player, GREEN_MOSS_BUNDLE, -1);
+									takeItems(player, BROWN_MOSS_BUNDLE, -1);
+									takeItems(player, MONSTER_EYE_MEAT, -1);
+									giveItems(player, JONASS_5TH_STEAK_DISH, 1);
+									playSound(player, QuestSound.ITEMSOUND_QUEST_JACKPOT);
+									htmltext = "30469-05t5.html";
+								}
+								else
+								{
+									takeItems(player, INGREDIENT_LIST, -1);
+									takeItems(player, RED_MANDRAGORA_SAP, -1);
+									takeItems(player, WHITE_MANDRAGORA_SAP, -1);
+									takeItems(player, HONEY, -1);
+									takeItems(player, GOLDEN_HONEY, -1);
+									takeItems(player, DIONIAN_POTATO, -1);
+									takeItems(player, GREEN_MOSS_BUNDLE, -1);
+									takeItems(player, BROWN_MOSS_BUNDLE, -1);
+									takeItems(player, MONSTER_EYE_MEAT, -1);
+									giveItems(player, JONASS_4TH_STEAK_DISH, 1);
+									htmltext = "30469-05t4.html";
+								}
+							}
+						}
+					}
+					else
+					{
+						if ((getQuestItemsCount(player, RED_MANDRAGORA_SAP) + getQuestItemsCount(player, WHITE_MANDRAGORA_SAP) + getQuestItemsCount(player, HONEY) + getQuestItemsCount(player, GOLDEN_HONEY) + getQuestItemsCount(player, DIONIAN_POTATO) + getQuestItemsCount(player, GREEN_MOSS_BUNDLE) + getQuestItemsCount(player, BROWN_MOSS_BUNDLE) + getQuestItemsCount(player, MONSTER_EYE_MEAT)) == 0)
+						{
+							if ((getQuestItemsCount(player, JONASS_1ST_STEAK_DISH) + getQuestItemsCount(player, JONASS_2ND_STEAK_DISH) + getQuestItemsCount(player, JONASS_3RD_STEAK_DISH) + getQuestItemsCount(player, JONASS_4TH_STEAK_DISH) + getQuestItemsCount(player, JONASS_5TH_STEAK_DISH)) == 1)
+							{
+								if ((getQuestItemsCount(player, MIRIENS_REVIEW_1) + getQuestItemsCount(player, MIRIENS_REVIEW_2) + getQuestItemsCount(player, MIRIENS_REVIEW_3) + getQuestItemsCount(player, MIRIENS_REVIEW_4) + getQuestItemsCount(player, MIRIENS_REVIEW_5)) == 0)
+								{
+									htmltext = "30469-06.html";
+								}
+							}
+							else
+							{
+								if ((getQuestItemsCount(player, MIRIENS_REVIEW_1) + getQuestItemsCount(player, MIRIENS_REVIEW_2) + getQuestItemsCount(player, MIRIENS_REVIEW_3) + getQuestItemsCount(player, MIRIENS_REVIEW_4) + getQuestItemsCount(player, MIRIENS_REVIEW_5)) == 1)
+								{
+									if (hasQuestItems(player, MIRIENS_REVIEW_1))
+									{
+										takeItems(player, MIRIENS_REVIEW_1, 1);
+										giveAdena(player, 10000, true);
+										htmltext = "30469-06t1.html";
+									}
+									
+									if (hasQuestItems(player, MIRIENS_REVIEW_2))
+									{
+										takeItems(player, MIRIENS_REVIEW_2, 1);
+										giveAdena(player, 14870, true);
+										htmltext = "30469-06t2.html";
+									}
+									
+									if (hasQuestItems(player, MIRIENS_REVIEW_3))
+									{
+										takeItems(player, MIRIENS_REVIEW_3, 1);
+										giveAdena(player, 6490, true);
+										giveItems(player, JONASS_SALAD_RECIPE, 1);
+										htmltext = "30469-06t3.html";
+									}
+									
+									if (hasQuestItems(player, MIRIENS_REVIEW_4))
+									{
+										takeItems(player, MIRIENS_REVIEW_4, 1);
+										giveAdena(player, 12220, true);
+										giveItems(player, JONASS_SAUCE_RECIPE, 1);
+										htmltext = "30469-06t4.html";
+									}
+									
+									if (hasQuestItems(player, MIRIENS_REVIEW_5))
+									{
+										takeItems(player, MIRIENS_REVIEW_5, 1);
+										giveAdena(player, 16540, true);
+										giveItems(player, JONASS_STEAK_RECIPE, 1);
+										htmltext = "30469-06t5.html";
+									}
+									
+									qs.exitQuest(true, true);
+								}
+							}
+						}
+					}
+					break;
+				}
+				case ACCESSORY_MERCHANT_SONIA:
+				{
+					if (hasQuestItems(player, INGREDIENT_LIST) && ((getQuestItemsCount(player, RED_MANDRAGORA_SAP) + getQuestItemsCount(player, WHITE_MANDRAGORA_SAP) + getQuestItemsCount(player, HONEY) + getQuestItemsCount(player, GOLDEN_HONEY) + getQuestItemsCount(player, DIONIAN_POTATO) + getQuestItemsCount(player, GREEN_MOSS_BUNDLE) + getQuestItemsCount(player, BROWN_MOSS_BUNDLE) + getQuestItemsCount(player, MONSTER_EYE_MEAT)) < 5) && !hasAtLeastOneQuestItem(player, SONIAS_BOTANY_BOOK, RED_MANDRAGORA_SAP, WHITE_MANDRAGORA_SAP))
+					{
+						giveItems(player, SONIAS_BOTANY_BOOK, 1);
+						htmltext = "30062-01.html";
+					}
+					else if (hasQuestItems(player, INGREDIENT_LIST, SONIAS_BOTANY_BOOK) && ((getQuestItemsCount(player, RED_MANDRAGORA_SAP) + getQuestItemsCount(player, WHITE_MANDRAGORA_SAP) + getQuestItemsCount(player, HONEY) + getQuestItemsCount(player, GOLDEN_HONEY) + getQuestItemsCount(player, DIONIAN_POTATO) + getQuestItemsCount(player, GREEN_MOSS_BUNDLE) + getQuestItemsCount(player, BROWN_MOSS_BUNDLE) + getQuestItemsCount(player, MONSTER_EYE_MEAT)) < 5) && !hasAtLeastOneQuestItem(player, RED_MANDRAGORA_SAP, WHITE_MANDRAGORA_SAP))
+					{
+						if ((getQuestItemsCount(player, RED_MANDRAGORA_ROOT) + getQuestItemsCount(player, WHITE_MANDRAGORA_ROOT)) < 40)
+						{
+							htmltext = "30062-02.html";
+						}
+						else
+						{
+							if (getQuestItemsCount(player, WHITE_MANDRAGORA_ROOT) < 40)
+							{
+								htmltext = "30062-03.html";
+							}
+							else
+							{
+								takeItems(player, SONIAS_BOTANY_BOOK, 1);
+								takeItems(player, RED_MANDRAGORA_ROOT, -1);
+								takeItems(player, WHITE_MANDRAGORA_ROOT, -1);
+								giveItems(player, WHITE_MANDRAGORA_SAP, 1);
+								htmltext = "30062-06.html";
+							}
+						}
+					}
+					else if (hasQuestItems(player, INGREDIENT_LIST) && !hasQuestItems(player, SONIAS_BOTANY_BOOK) && ((getQuestItemsCount(player, RED_MANDRAGORA_SAP) + getQuestItemsCount(player, WHITE_MANDRAGORA_SAP) + getQuestItemsCount(player, HONEY) + getQuestItemsCount(player, GOLDEN_HONEY) + getQuestItemsCount(player, DIONIAN_POTATO) + getQuestItemsCount(player, GREEN_MOSS_BUNDLE) + getQuestItemsCount(player, BROWN_MOSS_BUNDLE) + getQuestItemsCount(player, MONSTER_EYE_MEAT)) < 5) && hasAtLeastOneQuestItem(player, RED_MANDRAGORA_SAP, WHITE_MANDRAGORA_SAP))
+					{
+						htmltext = "30062-07.html";
+					}
+					break;
+				}
+				case PRIESTESS_GLYVKA:
+				{
+					if (hasQuestItems(player, INGREDIENT_LIST) && ((getQuestItemsCount(player, RED_MANDRAGORA_SAP) + getQuestItemsCount(player, WHITE_MANDRAGORA_SAP) + getQuestItemsCount(player, HONEY) + getQuestItemsCount(player, GOLDEN_HONEY) + getQuestItemsCount(player, DIONIAN_POTATO) + getQuestItemsCount(player, GREEN_MOSS_BUNDLE) + getQuestItemsCount(player, BROWN_MOSS_BUNDLE) + getQuestItemsCount(player, MONSTER_EYE_MEAT)) < 5) && !hasAtLeastOneQuestItem(player, GLYVKAS_BOTANY_BOOK, GREEN_MOSS_BUNDLE, BROWN_MOSS_BUNDLE))
+					{
+						giveItems(player, GLYVKAS_BOTANY_BOOK, 1);
+						htmltext = "30067-01.html";
+					}
+					else if (hasQuestItems(player, INGREDIENT_LIST, GLYVKAS_BOTANY_BOOK) && ((getQuestItemsCount(player, RED_MANDRAGORA_SAP) + getQuestItemsCount(player, WHITE_MANDRAGORA_SAP) + getQuestItemsCount(player, HONEY) + getQuestItemsCount(player, GOLDEN_HONEY) + getQuestItemsCount(player, DIONIAN_POTATO) + getQuestItemsCount(player, GREEN_MOSS_BUNDLE) + getQuestItemsCount(player, BROWN_MOSS_BUNDLE) + getQuestItemsCount(player, MONSTER_EYE_MEAT)) < 5))
+					{
+						if ((getQuestItemsCount(player, GREEN_MARSH_MOSS) + getQuestItemsCount(player, BROWN_MARSH_MOSS)) < 20)
+						{
+							htmltext = "30067-02.html";
+						}
+						else
+						{
+							if (getQuestItemsCount(player, BROWN_MARSH_MOSS) < 20)
+							{
+								htmltext = "30067-03.html";
+							}
+							else
+							{
+								takeItems(player, GLYVKAS_BOTANY_BOOK, 1);
+								takeItems(player, GREEN_MARSH_MOSS, -1);
+								takeItems(player, BROWN_MARSH_MOSS, -1);
+								giveItems(player, BROWN_MOSS_BUNDLE, 1);
+								htmltext = "30067-06.html";
+							}
+						}
+					}
+					else if (hasQuestItems(player, INGREDIENT_LIST) && !hasQuestItems(player, GLYVKAS_BOTANY_BOOK) && ((getQuestItemsCount(player, RED_MANDRAGORA_SAP) + getQuestItemsCount(player, WHITE_MANDRAGORA_SAP) + getQuestItemsCount(player, HONEY) + getQuestItemsCount(player, GOLDEN_HONEY) + getQuestItemsCount(player, DIONIAN_POTATO) + getQuestItemsCount(player, GREEN_MOSS_BUNDLE) + getQuestItemsCount(player, BROWN_MOSS_BUNDLE) + getQuestItemsCount(player, MONSTER_EYE_MEAT)) < 5) && hasAtLeastOneQuestItem(player, GREEN_MOSS_BUNDLE, BROWN_MOSS_BUNDLE))
+					{
+						htmltext = "30067-07.html";
+					}
+					break;
+				}
+				case MAGISTER_ROLLANT:
+				{
+					if (hasQuestItems(player, INGREDIENT_LIST) && ((getQuestItemsCount(player, RED_MANDRAGORA_SAP) + getQuestItemsCount(player, WHITE_MANDRAGORA_SAP) + getQuestItemsCount(player, HONEY) + getQuestItemsCount(player, GOLDEN_HONEY) + getQuestItemsCount(player, DIONIAN_POTATO) + getQuestItemsCount(player, GREEN_MOSS_BUNDLE) + getQuestItemsCount(player, BROWN_MOSS_BUNDLE) + getQuestItemsCount(player, MONSTER_EYE_MEAT)) < 5) && !hasAtLeastOneQuestItem(player, ROLLANTS_CREATURE_BOOK, MONSTER_EYE_MEAT))
+					{
+						giveItems(player, ROLLANTS_CREATURE_BOOK, 1);
+						htmltext = "30069-01.html";
+					}
+					else if (hasQuestItems(player, INGREDIENT_LIST, ROLLANTS_CREATURE_BOOK) && ((getQuestItemsCount(player, RED_MANDRAGORA_SAP) + getQuestItemsCount(player, WHITE_MANDRAGORA_SAP) + getQuestItemsCount(player, HONEY) + getQuestItemsCount(player, GOLDEN_HONEY) + getQuestItemsCount(player, DIONIAN_POTATO) + getQuestItemsCount(player, GREEN_MOSS_BUNDLE) + getQuestItemsCount(player, BROWN_MOSS_BUNDLE) + getQuestItemsCount(player, MONSTER_EYE_MEAT)) < 5))
+					{
+						if (getQuestItemsCount(player, BODY_OF_MONSTER_EYE) < 30)
+						{
+							htmltext = "30069-02.html";
+						}
+						else
+						{
+							takeItems(player, ROLLANTS_CREATURE_BOOK, 1);
+							takeItems(player, BODY_OF_MONSTER_EYE, -1);
+							giveItems(player, MONSTER_EYE_MEAT, 1);
+							htmltext = "30069-03.html";
+						}
+					}
+					else if (hasQuestItems(player, INGREDIENT_LIST, MONSTER_EYE_MEAT) && !hasQuestItems(player, ROLLANTS_CREATURE_BOOK) && ((getQuestItemsCount(player, RED_MANDRAGORA_SAP) + getQuestItemsCount(player, WHITE_MANDRAGORA_SAP) + getQuestItemsCount(player, HONEY) + getQuestItemsCount(player, GOLDEN_HONEY) + getQuestItemsCount(player, DIONIAN_POTATO) + getQuestItemsCount(player, GREEN_MOSS_BUNDLE) + getQuestItemsCount(player, BROWN_MOSS_BUNDLE) + getQuestItemsCount(player, MONSTER_EYE_MEAT)) < 5))
+					{
+						htmltext = "30069-04.html";
+					}
+					break;
+				}
+				case GUARD_JACOB:
+				{
+					if (hasQuestItems(player, INGREDIENT_LIST) && ((getQuestItemsCount(player, RED_MANDRAGORA_SAP) + getQuestItemsCount(player, WHITE_MANDRAGORA_SAP) + getQuestItemsCount(player, HONEY) + getQuestItemsCount(player, GOLDEN_HONEY) + getQuestItemsCount(player, DIONIAN_POTATO) + getQuestItemsCount(player, GREEN_MOSS_BUNDLE) + getQuestItemsCount(player, BROWN_MOSS_BUNDLE) + getQuestItemsCount(player, MONSTER_EYE_MEAT)) < 5) && !hasAtLeastOneQuestItem(player, JACOBS_INSECT_BOOK, HONEY, GOLDEN_HONEY))
+					{
+						giveItems(player, JACOBS_INSECT_BOOK, 1);
+						htmltext = "30073-01.html";
+					}
+					else if (hasQuestItems(player, INGREDIENT_LIST, JACOBS_INSECT_BOOK) && ((getQuestItemsCount(player, RED_MANDRAGORA_SAP) + getQuestItemsCount(player, WHITE_MANDRAGORA_SAP) + getQuestItemsCount(player, HONEY) + getQuestItemsCount(player, GOLDEN_HONEY) + getQuestItemsCount(player, DIONIAN_POTATO) + getQuestItemsCount(player, GREEN_MOSS_BUNDLE) + getQuestItemsCount(player, BROWN_MOSS_BUNDLE) + getQuestItemsCount(player, MONSTER_EYE_MEAT)) < 5))
+					{
+						if (getQuestItemsCount(player, NECTAR) < 20)
+						{
+							htmltext = "30073-02.html";
+						}
+						else
+						{
+							if (getQuestItemsCount(player, ROYAL_JELLY) < 10)
+							{
+								htmltext = "30073-03.html";
+							}
+							else
+							{
+								takeItems(player, JACOBS_INSECT_BOOK, 1);
+								takeItems(player, NECTAR, -1);
+								takeItems(player, ROYAL_JELLY, -1);
+								giveItems(player, GOLDEN_HONEY, 1);
+								htmltext = "30073-06.html";
+							}
+						}
+					}
+					else if (hasQuestItems(player, INGREDIENT_LIST) && !hasQuestItems(player, JACOBS_INSECT_BOOK) && ((getQuestItemsCount(player, RED_MANDRAGORA_SAP) + getQuestItemsCount(player, WHITE_MANDRAGORA_SAP) + getQuestItemsCount(player, HONEY) + getQuestItemsCount(player, GOLDEN_HONEY) + getQuestItemsCount(player, DIONIAN_POTATO) + getQuestItemsCount(player, GREEN_MOSS_BUNDLE) + getQuestItemsCount(player, BROWN_MOSS_BUNDLE) + getQuestItemsCount(player, MONSTER_EYE_MEAT)) < 5) && hasAtLeastOneQuestItem(player, HONEY, GOLDEN_HONEY))
+					{
+						htmltext = "30073-07.html";
+					}
+					break;
+				}
+				case GROCER_PANO:
+				{
+					if (hasQuestItems(player, INGREDIENT_LIST) && ((getQuestItemsCount(player, RED_MANDRAGORA_SAP) + getQuestItemsCount(player, WHITE_MANDRAGORA_SAP) + getQuestItemsCount(player, HONEY) + getQuestItemsCount(player, GOLDEN_HONEY) + getQuestItemsCount(player, DIONIAN_POTATO) + getQuestItemsCount(player, GREEN_MOSS_BUNDLE) + getQuestItemsCount(player, BROWN_MOSS_BUNDLE) + getQuestItemsCount(player, MONSTER_EYE_MEAT)) < 5) && !hasAtLeastOneQuestItem(player, PANOS_CONTRACT, DIONIAN_POTATO))
+					{
+						giveItems(player, PANOS_CONTRACT, 1);
+						htmltext = "30078-01.html";
+					}
+					else if (hasQuestItems(player, INGREDIENT_LIST, PANOS_CONTRACT) && ((getQuestItemsCount(player, RED_MANDRAGORA_SAP) + getQuestItemsCount(player, WHITE_MANDRAGORA_SAP) + getQuestItemsCount(player, HONEY) + getQuestItemsCount(player, GOLDEN_HONEY) + getQuestItemsCount(player, DIONIAN_POTATO) + getQuestItemsCount(player, GREEN_MOSS_BUNDLE) + getQuestItemsCount(player, BROWN_MOSS_BUNDLE) + getQuestItemsCount(player, MONSTER_EYE_MEAT)) < 5))
+					{
+						if (getQuestItemsCount(player, HOBGOBLIN_AMULET) < 30)
+						{
+							htmltext = "30078-02.html";
+						}
+						else
+						{
+							takeItems(player, PANOS_CONTRACT, 1);
+							takeItems(player, HOBGOBLIN_AMULET, -1);
+							giveItems(player, DIONIAN_POTATO, 1);
+							htmltext = "30078-03.html";
+						}
+					}
+					else if (hasQuestItems(player, INGREDIENT_LIST, DIONIAN_POTATO) && !hasQuestItems(player, PANOS_CONTRACT) && ((getQuestItemsCount(player, RED_MANDRAGORA_SAP) + getQuestItemsCount(player, WHITE_MANDRAGORA_SAP) + getQuestItemsCount(player, HONEY) + getQuestItemsCount(player, GOLDEN_HONEY) + getQuestItemsCount(player, DIONIAN_POTATO) + getQuestItemsCount(player, GREEN_MOSS_BUNDLE) + getQuestItemsCount(player, BROWN_MOSS_BUNDLE) + getQuestItemsCount(player, MONSTER_EYE_MEAT)) < 5))
+					{
+						htmltext = "30078-04.html";
+					}
+					break;
+				}
+				case MAGISTER_MIRIEN:
+				{
+					if (hasQuestItems(player, INGREDIENT_LIST))
+					{
+						htmltext = "30461-01.html";
+					}
+					else
+					{
+						if ((getQuestItemsCount(player, RED_MANDRAGORA_SAP) + getQuestItemsCount(player, WHITE_MANDRAGORA_SAP) + getQuestItemsCount(player, HONEY) + getQuestItemsCount(player, GOLDEN_HONEY) + getQuestItemsCount(player, DIONIAN_POTATO) + getQuestItemsCount(player, GREEN_MOSS_BUNDLE) + getQuestItemsCount(player, BROWN_MOSS_BUNDLE) + getQuestItemsCount(player, MONSTER_EYE_MEAT)) == 0)
+						{
+							if ((getQuestItemsCount(player, JONASS_1ST_STEAK_DISH) + getQuestItemsCount(player, JONASS_2ND_STEAK_DISH) + getQuestItemsCount(player, JONASS_3RD_STEAK_DISH) + getQuestItemsCount(player, JONASS_4TH_STEAK_DISH) + getQuestItemsCount(player, JONASS_5TH_STEAK_DISH)) == 1)
+							{
+								if ((getQuestItemsCount(player, MIRIENS_REVIEW_1) + getQuestItemsCount(player, MIRIENS_REVIEW_2) + getQuestItemsCount(player, MIRIENS_REVIEW_3) + getQuestItemsCount(player, MIRIENS_REVIEW_4) + getQuestItemsCount(player, MIRIENS_REVIEW_5)) == 0)
+								{
+									if (hasQuestItems(player, JONASS_1ST_STEAK_DISH))
+									{
+										takeItems(player, JONASS_1ST_STEAK_DISH, 1);
+										giveItems(player, MIRIENS_REVIEW_1, 1);
+										htmltext = "30461-02t1.html";
+									}
+									
+									if (hasQuestItems(player, JONASS_2ND_STEAK_DISH))
+									{
+										takeItems(player, JONASS_2ND_STEAK_DISH, 1);
+										giveItems(player, MIRIENS_REVIEW_2, 1);
+										htmltext = "30461-02t2.html";
+									}
+									
+									if (hasQuestItems(player, JONASS_3RD_STEAK_DISH))
+									{
+										takeItems(player, JONASS_3RD_STEAK_DISH, 1);
+										giveItems(player, MIRIENS_REVIEW_3, 1);
+										htmltext = "30461-02t3.html";
+									}
+									
+									if (hasQuestItems(player, JONASS_4TH_STEAK_DISH))
+									{
+										takeItems(player, JONASS_4TH_STEAK_DISH, 1);
+										giveItems(player, MIRIENS_REVIEW_4, 1);
+										htmltext = "30461-02t4.html";
+									}
+									
+									if (hasQuestItems(player, JONASS_5TH_STEAK_DISH))
+									{
+										takeItems(player, JONASS_5TH_STEAK_DISH, 1);
+										giveItems(player, MIRIENS_REVIEW_5, 1);
+										htmltext = "30461-02t5.html";
+									}
+								}
+							}
+							else
+							{
+								if ((getQuestItemsCount(player, MIRIENS_REVIEW_1) + getQuestItemsCount(player, MIRIENS_REVIEW_2) + getQuestItemsCount(player, MIRIENS_REVIEW_3) + getQuestItemsCount(player, MIRIENS_REVIEW_4) + getQuestItemsCount(player, MIRIENS_REVIEW_5)) == 1)
+								{
+									htmltext = "30461-04.html";
+								}
+							}
+						}
+					}
+					break;
+				}
+			}
+		}
+		return htmltext;
+	}
+}

+ 2 - 0
dist/game/data/scripts/quests/QuestMasterHandler.java

@@ -301,6 +301,7 @@ import quests.Q00326_VanquishRemnants.Q00326_VanquishRemnants;
 import quests.Q00327_RecoverTheFarmland.Q00327_RecoverTheFarmland;
 import quests.Q00328_SenseForBusiness.Q00328_SenseForBusiness;
 import quests.Q00329_CuriosityOfADwarf.Q00329_CuriosityOfADwarf;
+import quests.Q00330_AdeptOfTaste.Q00330_AdeptOfTaste;
 import quests.Q00331_ArrowOfVengeance.Q00331_ArrowOfVengeance;
 import quests.Q00333_HuntOfTheBlackLion.Q00333_HuntOfTheBlackLion;
 import quests.Q00337_AudienceWithTheLandDragon.Q00337_AudienceWithTheLandDragon;
@@ -779,6 +780,7 @@ public class QuestMasterHandler
 		Q00327_RecoverTheFarmland.class,
 		Q00328_SenseForBusiness.class,
 		Q00329_CuriosityOfADwarf.class,
+		Q00330_AdeptOfTaste.class,
 		Q00331_ArrowOfVengeance.class,
 		Q00333_HuntOfTheBlackLion.class,
 		Q00337_AudienceWithTheLandDragon.class,

+ 1 - 0
dist/sql/game/updates/20150823update.sql

@@ -0,0 +1 @@
+UPDATE character_quests SET name='Q00330_AdeptOfTaste' WHERE name='330_AdeptOfTaste';