Selaa lähdekoodia

Retail-like Supplier Of Reagents (Q00373)

Joxit 10 vuotta sitten
vanhempi
sitoutus
e83d769986
84 muutettua tiedostoa jossa 743 lisäystä ja 447 poistoa
  1. 0 1
      L2J_DataPack/dist/game/data/scripts.cfg
  2. 0 5
      L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/30166-4.htm
  3. 0 6
      L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/30166-4b.htm
  4. 0 5
      L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/31149-2.htm
  5. 0 5
      L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/31149-2a.htm
  6. 0 4
      L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/31149-2b.htm
  7. 0 5
      L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/31149-2c.htm
  8. 0 4
      L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/31149-3a.htm
  9. 0 4
      L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/31149-3b.htm
  10. 0 4
      L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/31149-4a.htm
  11. 0 4
      L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/31149-4b.htm
  12. 0 7
      L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/31149-5.htm
  13. 0 4
      L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/31149-5a.htm
  14. 0 4
      L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/31149-6.htm
  15. 0 4
      L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/31149-6a.htm
  16. 0 4
      L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/31149-6b.htm
  17. 0 4
      L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/31149-6c.htm
  18. 0 4
      L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/31149-6d.htm
  19. 0 4
      L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/31149-7a.htm
  20. 0 4
      L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/31149-7b.htm
  21. 0 4
      L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/31149-7c.htm
  22. 0 4
      L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/31149-7d.htm
  23. 0 316
      L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/__init__.py
  24. 4 4
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-01.html
  25. 4 4
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-02.htm
  26. 4 4
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-03.htm
  27. 5 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-04.html
  28. 6 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-04a.html
  29. 5 5
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-04b.html
  30. 5 5
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-04c.html
  31. 5 5
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-04d.html
  32. 5 5
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-05.html
  33. 2 2
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-06.html
  34. 3 3
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-07.html
  35. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-01.html
  36. 18 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-02.html
  37. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-03.html
  38. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-04.html
  39. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-05.html
  40. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-06.html
  41. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-07.html
  42. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-08.html
  43. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-09.html
  44. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-10.html
  45. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-11.html
  46. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-12.html
  47. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-13.html
  48. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-14.html
  49. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-15.html
  50. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-16.html
  51. 3 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-17.html
  52. 10 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-18.html
  53. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-19.html
  54. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-20.html
  55. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-21.html
  56. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-22.html
  57. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-23.html
  58. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-24.html
  59. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-25.html
  60. 6 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-26.html
  61. 6 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-26a.html
  62. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-27.html
  63. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-28a.html
  64. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-29a.html
  65. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-30.html
  66. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-31.html
  67. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-32.html
  68. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-33.html
  69. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-34.html
  70. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-35.html
  71. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-36.html
  72. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-37.html
  73. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-38.html
  74. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-39.html
  75. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-40.html
  76. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-41.html
  77. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-42.html
  78. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-43.html
  79. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-44.html
  80. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-45.html
  81. 4 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-46.html
  82. 481 0
      L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/Q00373_SupplierOfReagents.java
  83. 2 0
      L2J_DataPack/dist/game/data/scripts/quests/QuestMasterHandler.java
  84. 1 0
      L2J_DataPack/dist/sql/game/updates/Q0373.sql

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

@@ -196,7 +196,6 @@ quests/337_AudienceWithTheLandDragon/__init__.py
 quests/343_UnderTheShadowOfTheIvoryTower/__init__.py
 quests/348_ArrogantSearch/__init__.py
 quests/372_LegacyOfInsolence/__init__.py
-quests/373_SupplierOfReagents/__init__.py
 quests/384_WarehouseKeepersPastime/__init__.py
 quests/386_StolenDignity/__init__.py
 quests/419_GetAPet/__init__.py

+ 0 - 5
L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/30166-4.htm

@@ -1,5 +0,0 @@
-<html><body>Magic Trader Wesley:<br>
-Sir... or, should I call you partner? You must bring me the ingredients I need to make reagents using the<font color="LEVEL"> Alchemical Mixing Urn</font>.<br>
-Take this<font color="LEVEL"> Mixing Manual</font>. And this Stone is used to activate the mixing urn.<br>
-<a action="bypass -h Quest 373_SupplierOfReagents 30166-4b.htm">"Where can I find the ingredients?"</a>
-</body></html>

+ 0 - 6
L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/30166-4b.htm

@@ -1,6 +0,0 @@
-<html><body>Magic Trader Wesley:<br>
-You can obtain the ingredients from<font color="LEVEL"> Crendion, Hallate's Maid, Hallate's Guardian, the Platinum Tribe Shaman and the Platinum Guardian Shaman</font> in the<font color="LEVEL"> Tower of Insolence</font>.<br>
-You can also obtain some important ingredients from<font color="LEVEL"> Lava Wyrms and the Hames Orc Shaman</font> in the<font color="LEVEL"> Blazing Swamp</font>.<br>
-Do you want to know how to use the mixing urn?<br>
-<a action="bypass -h Quest 373_SupplierOfReagents 30166-4c.htm">"Tell me how to use the urn."</a>
-</body></html>

+ 0 - 5
L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/31149-2.htm

@@ -1,5 +0,0 @@
-<html><body>Alchemists Mixing Urn:<br>
-You have inserted your Mixing Stone into the Urn and may operate it now.<br>
-Remember to withdraw it when you don't use the Urn.<br><br>
-<a action="bypass -h Quest 373_SupplierOfReagents urn">Back</a>
-</body></html>

+ 0 - 5
L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/31149-2a.htm

@@ -1,5 +0,0 @@
-<html><body>Alchemists Mixing Urn:<br>
-You have withdrawn your Mixing Stone from the Urn and should insert it again in order to operate the Urn.<br>
-When you remove your stone from the Urn, preferences such as temperature are set blank.<br><br>
-<a action="bypass -h Quest 373_SupplierOfReagents urn">Back</a>
-</body></html>

+ 0 - 4
L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/31149-2b.htm

@@ -1,4 +0,0 @@
-<html><body>Alchemists Mixing Urn:<br>
-The niche in the side of the urn is empty. Your Mixing Stone is probably somewhere else...<br><br>
-<a action="bypass -h Quest 373_SupplierOfReagents urn">Back</a>
-</body></html>

+ 0 - 5
L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/31149-2c.htm

@@ -1,5 +0,0 @@
-<html><body>Alchemists Mixing Urn:<br>
-You have withdrawn your Mixing Stone from the Urn and should insert it again in order to operate.<br>
-Remember you left some components within the urn, either withdraw all of your stuff or put the stone back in the niche and complete the mixing process properly.<br><br>
-<a action="bypass -h Quest 373_SupplierOfReagents urn">Back</a>
-</body></html>

+ 0 - 4
L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/31149-3a.htm

@@ -1,4 +0,0 @@
-<html><body>Alchemists Mixing Urn:<br>
-You have succesfully withdrawn components from the Urn.<br>
-<a action="bypass -h Quest 373_SupplierOfReagents urn">Back</a>
-</body></html>

+ 0 - 4
L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/31149-3b.htm

@@ -1,4 +0,0 @@
-<html><body>Alchemists Mixing Urn:<br>
-There are no components to withdraw from the Urn. What are you trying to do?<br>
-<a action="bypass -h Quest 373_SupplierOfReagents urn">Back</a>
-</body></html>

+ 0 - 4
L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/31149-4a.htm

@@ -1,4 +0,0 @@
-<html><body>Alchemists Mixing Urn:<br>
-You have succesfully put components into the Urn.<br>
-<a action="bypass -h Quest 373_SupplierOfReagents urn">Back</a>
-</body></html>

+ 0 - 4
L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/31149-4b.htm

@@ -1,4 +0,0 @@
-<html><body>Alchemists Mixing Urn:<br>
-You don't have enough materials to insert into the Urn...<br>
-<a action="bypass -h Quest 373_SupplierOfReagents urn">Back</a>
-</body></html>

+ 0 - 7
L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/31149-5.htm

@@ -1,7 +0,0 @@
-<html><body>Alchemists Mixing Urn:<br><br>
-<font color="LEVEL">Temperature Selection</font><br><br>
-<a action="bypass -h Quest 373_SupplierOfReagents tmp_1">1-Salamander</a><br><br>
-<a action="bypass -h Quest 373_SupplierOfReagents tmp_2">2-Ifrit</a><br><br>
-<a action="bypass -h Quest 373_SupplierOfReagents tmp_3">3-Phoenix</a><br><br>
-<a action="bypass -h Quest 373_SupplierOfReagents urn">Back</a>
-</body></html>

+ 0 - 4
L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/31149-5a.htm

@@ -1,4 +0,0 @@
-<html><body>Alchemists Mixing Urn:<br>
-Mixing temperature has been set.<br>
-<a action="bypass -h Quest 373_SupplierOfReagents urn">Back</a>
-</body></html>

+ 0 - 4
L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/31149-6.htm

@@ -1,4 +0,0 @@
-<html><body>Alchemists Mixing Urn:<br>
-Mixing process finished correctly.<br>
-<a action="bypass -h Quest 373_SupplierOfReagents urn">Back</a>
-</body></html>

+ 0 - 4
L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/31149-6a.htm

@@ -1,4 +0,0 @@
-<html><body>Alchemists Mixing Urn:<br>
-<font color="LEVEL">Mixing Stone</font> is missing from the niche. Urn does not start mixing.<br>
-<a action="bypass -h Quest 373_SupplierOfReagents urn">Back</a>
-</body></html>

+ 0 - 4
L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/31149-6b.htm

@@ -1,4 +0,0 @@
-<html><body>Alchemists Mixing Urn:<br>
-<font color="LEVEL">Mixing temperature</font> has not been set. Urn does not start mixing.<br>
-<a action="bypass -h Quest 373_SupplierOfReagents urn">Back</a>
-</body></html>

+ 0 - 4
L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/31149-6c.htm

@@ -1,4 +0,0 @@
-<html><body>Alchemists Mixing Urn:<br>
-Components melt down durin mixing process. Try setting a lower temperature next time.<br>
-<a action="bypass -h Quest 373_SupplierOfReagents urn">Back</a>
-</body></html>

+ 0 - 4
L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/31149-6d.htm

@@ -1,4 +0,0 @@
-<html><body>Alchemists Mixing Urn:<br>
-Mixing process completed, but no reagent were obtained. Check the formulas next time.<br>
-<a action="bypass -h Quest 373_SupplierOfReagents urn">Back</a>
-</body></html>

+ 0 - 4
L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/31149-7a.htm

@@ -1,4 +0,0 @@
-<html><body>Alchemists Mixing Urn:<br>
-Mixing process failed. Ordinary fire isn't enough for this formula. Try bringing<font color="LEVEL"> Blood Fire</font> with you next time.<br>
-<a action="bypass -h Quest 373_SupplierOfReagents urn">Back</a>
-</body></html>

+ 0 - 4
L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/31149-7b.htm

@@ -1,4 +0,0 @@
-<html><body>Alchemists Mixing Urn:<br>
-Mixing process failed. Temperature was too low. Try setting<font color="LEVEL"> Phoenix</font> next time.<br>
-<a action="bypass -h Quest 373_SupplierOfReagents urn">Back</a>
-</body></html>

+ 0 - 4
L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/31149-7c.htm

@@ -1,4 +0,0 @@
-<html><body>Alchemists Mixing Urn:<br>
-Mixing process failed. Temperature was too high to produce Pure Silver. Try setting<font color="LEVEL"> Salamander</font> next time.<br>
-<a action="bypass -h Quest 373_SupplierOfReagents urn">Back</a>
-</body></html>

+ 0 - 4
L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/31149-7d.htm

@@ -1,4 +0,0 @@
-<html><body>Alchemists Mixing Urn:<br>
-You don't have enough experience to handle this combination and succeed. Talk with<font color="LEVEL"> Magister Ladd</font> about<font color="LEVEL"> Mimir's Elixir</font>.<br>
-<a action="bypass -h Quest 373_SupplierOfReagents urn">Back</a>
-</body></html>

+ 0 - 316
L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/__init__.py

@@ -1,316 +0,0 @@
-# Supplier of Reagents version 0.2
-# by DrLecter for the Official L2J Datapack Project.
-# Visit http://www.l2jdp.com/forum/ for more details.
-
-import sys
-from com.l2jserver import Config
-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
-#Quest info
-QUEST_NUMBER,QUEST_NAME,QUEST_DESCRIPTION = 373,"SupplierOfReagents","Supplier of Reagents"
-qn = "373_SupplierOfReagents"
-
-#Variables
-#itemId:[icon,name,description]
-ITEMS={
-6011:["etc_reagent_red_i00","Wyrm's Blood",""],
-6012:["etc_inf_ore_high_i00","Lava Stone",""],
-6013:["etc_broken_crystal_silver_i00","Moonstone Shard",""],
-6014:["etc_piece_bone_black_i00","Rotten Bone Piece",""],
-6015:["etc_reagent_green_i00","Demon's Blood",""],
-6016:["etc_inf_ore_least_i00","Infernium Ore","Low Level Reagent"],
-6017:["etc_ginseng_red_i00","Blood Root",""],
-6018:["etc_powder_gray_i00","Volcanic Ash",""],
-6019:["etc_reagent_silver_i00","Quicksilver",""],
-6020:["etc_powder_orange_i00","Sulfur",""],
-6021:["etc_dragons_blood_i05","Dracoplasm","Low Level Reagent"],
-6022:["etc_powder_red_i00","Magma Dust",""],
-6023:["etc_powder_white_i00","Moon Dust","Low Level Reagent"],
-6024:["etc_potion_purpel_i00","Necroplasm","Low Level Reagent"],
-6025:["etc_potion_green_i00","Demonplasm","Low Level Reagent"],
-6026:["etc_powder_black_i00","Inferno Dust",""], 
-6027:["etc_dragon_blood_i00","Draconic Essence","High Level Reagent"],
-6028:["etc_dragons_blood_i00","Fire Essence","High Level Reagent"],
-6029:["etc_mithril_ore_i00","Lunargent","High Level Reagent"],
-6030:["etc_dragons_blood_i02","Midnight Oil","High Level Reagent"],
-6031:["etc_dragons_blood_i05","Demonic Essence","High Level Reagent"],
-6032:["etc_dragons_blood_i04","Abyss Oil","High Level Reagent"],
-6033:["etc_luxury_wine_b_i00","Hellfire Oil","Highest Level Reagent"],
-6034:["etc_luxury_wine_c_i00","Nightmare Oil","Highest Level Reagent"],
-6320:["etc_broken_crystal_silver_i00","Pure Silver",""],
-6321:["etc_broken_crystal_gold_i00","True Gold",""],
-}
-#Quest items
-REAGENT_POUCH1,   REAGENT_POUCH2,REAGENT_POUCH3, REAGENT_BOX, \
-WYRMS_BLOOD,      LAVA_STONE,    MOONSTONE_SHARD,ROTTEN_BONE, \
-DEMONS_BLOOD,     INFERNIUM_ORE, BLOOD_ROOT,     VOLCANIC_ASH,\
-QUICKSILVER,      SULFUR,        DRACOPLASM,     MAGMA_DUST,  \
-MOON_DUST,        NECROPLASM,    DEMONPLASM,     INFERNO_DUST,\
-DRACONIC_ESSENCE, FIRE_ESSENCE,  LUNARGENT,      MIDNIGHT_OIL,\
-DEMONIC_ESSENCE,  ABYSS_OIL,     HELLFIRE_OIL,   NIGHTMARE_OIL=range(6007,6035)
-MIXING_STONE1 = 5904
-#Mimir's Elixir items
-BLOOD_FIRE, MIMIRS_ELIXIR, PURE_SILVER, TRUE_GOLD = range(6318,6322)
-
-MATS=range(6011,6032)+range(6320,6322)
-#NPCs
-WESLEY,URN=30166,31149
-#Mobs & Drop
-#index = mobId, array = [ TotalChance, (item0, chance0),(item1, chance1),...]
-DROPLIST = {
-20813: [100, (QUICKSILVER,60),(ROTTEN_BONE,40)],
-20822: [100, (VOLCANIC_ASH,40),(REAGENT_POUCH1,60)],
-21061: [90, (DEMONS_BLOOD,70),(MOONSTONE_SHARD,20)],
-20828: [100, (REAGENT_POUCH2,70),(QUICKSILVER,30)],
-21066: [40, (REAGENT_BOX,40)],
-21111: [74, (WYRMS_BLOOD,50),(LAVA_STONE,24)],
-21115: [50, (REAGENT_POUCH3,50)]
-}
-#temperature:[success_%,reagent_qty_obtained]
-TEMPERATURE={1:[100,1],2:[45,2],3:[15,3]}
-#reagent:[ingredient,ingredient_qty,catalyst,catalyst_qty]
-FORMULAS = {
-DRACOPLASM:      [WYRMS_BLOOD,10,BLOOD_ROOT,1],     MAGMA_DUST:     [LAVA_STONE,10,VOLCANIC_ASH,1],MOON_DUST:[MOONSTONE_SHARD,10,VOLCANIC_ASH,1],
-NECROPLASM:      [ROTTEN_BONE,10,BLOOD_ROOT,1],     DEMONPLASM:     [DEMONS_BLOOD,10,BLOOD_ROOT,1],INFERNO_DUST:[INFERNIUM_ORE,10,VOLCANIC_ASH,1],
-DRACONIC_ESSENCE:[DRACOPLASM,10,QUICKSILVER,1],     FIRE_ESSENCE:   [MAGMA_DUST,10,SULFUR,1],      LUNARGENT:[MOON_DUST,10,QUICKSILVER,1],
-MIDNIGHT_OIL:    [NECROPLASM,10,QUICKSILVER,1],     DEMONIC_ESSENCE:[DEMONPLASM,10,SULFUR,1],      ABYSS_OIL:[INFERNO_DUST,10,SULFUR,1],
-HELLFIRE_OIL:    [FIRE_ESSENCE,1,DEMONIC_ESSENCE,1],NIGHTMARE_OIL:  [LUNARGENT,1,MIDNIGHT_OIL,1],  PURE_SILVER:[LUNARGENT,1,QUICKSILVER,1],
-MIMIRS_ELIXIR:   [PURE_SILVER,1,TRUE_GOLD,1],
-}
-
-def render_urn(st, page) :
-    stone,ingredient,catalyst = st.getInt("mixing"),st.getInt("ingredient"),st.getInt("catalyst")
-    if page == "Start" :
-       html = "<html><body>Alchemists Mixing Urn:<br><table border=0 width=300><tr><tr><td width=50%><a action=\"bypass -h Quest 373_SupplierOfReagents U_M_MACT\">MACT Mixing Stone</a></td><td></td></tr><tr><td><a action=\"bypass -h Quest 373_SupplierOfReagents U_I_IACT\">IACT Ingredients</a></td><td>(current: INGR)</td></tr><tr><td><a action=\"bypass -h Quest 373_SupplierOfReagents U_C_CACT\">CACT Catalyst</a></td><td>(current: CATA)</td></tr><tr><td><a action=\"bypass -h Quest 373_SupplierOfReagents 31149-5.htm\">Select Temperature</a></td><td>(current: TEMP)</td></tr><tr><td><a action=\"bypass -h Quest 373_SupplierOfReagents 31149-6.htm\">Mix Ingredients</a></td><td></td></tr></table></body></html>"
-       ingr,cata,temp=st.getInt("ingredient"),st.getInt("catalyst"),st.get("temp")
-       if ingr : ingr = ITEMS[ingr][1]+"x"+st.get("i_qty")
-       else : ingr = "None"
-       if cata : cata = ITEMS[cata][1]+"x"+st.get("c_qty")
-       else : cata = "None"
-       html = html.replace("INGR",ingr).replace("CATA",cata).replace("TEMP",temp)
-       if stone : html = html.replace("MACT","Retrieve")
-       else : html = html.replace("MACT","Insert")
-       if ingredient : html = html.replace("IACT","Retrieve")
-       else : html = html.replace("IACT","Insert")
-       if catalyst : html = html.replace("CACT","Retrieve")
-       else : html = html.replace("CACT","Insert")
-    elif isinstance(page,list) :
-       html = "<html><body>Insert:<table border=0>"
-       amt = 0
-       for i in MATS :
-         if st.getQuestItemsCount(i):
-           amt += 1
-           html += "<tr><td height=45><img src=icon."+ITEMS[i][0]+" height=32 width=32></td><td width=180>"+ITEMS[i][1]+"</td><td><button value=X1 action=\"bypass -h Quest 373_SupplierOfReagents x_1_"+page[1]+"_"+str(i)+"\" width=40 height=15 fore=sek.cbui92><button value=X10 action=\"bypass -h Quest 373_SupplierOfReagents x_2_"+page[1]+"_"+str(i)+"\" width=40 height=15 fore=sek.cbui92></td></tr>"
-       if not amt : html += "<tr><td>You don't have any material that could be used with this Urn. Read the Mixing Manual.</td></tr>"
-       html += "</table><center><a action=\"bypass -h Quest 373_SupplierOfReagents urn\">Back</a></center></body></html>"
-    return html
-
-class Quest (JQuest) :
-
- def __init__(self,id,name,descr):
-     JQuest.__init__(self,id,name,descr)
-     self.questItemIds = [5904]
-
- def onEvent (self,event,st) :
-    id = st.getState() 
-    htmltext = event
-    if event == "30166-4.htm" :
-       st.setState(State.STARTED)
-       st.set("cond","1")
-       st.set("ingredient","0")
-       st.set("catalyst","0")
-       st.set("i_qty","0")
-       st.set("c_qty","0")
-       st.set("temp","0")
-       st.set("mixing","0")
-       st.giveItems(6317,1)
-       st.giveItems(5904,1)
-       st.playSound("ItemSound.quest_accept")
-    elif event == "30166-5.htm" :
-       for i in range(6007,6035)+[6317,5904] : 
-          st.takeItems(i,-1)
-       st.exitQuest(1)
-       st.playSound("ItemSound.quest_finish")
-    elif event == "urn" :
-        htmltext = render_urn(st,"Start")
-    elif event.startswith("U_") :
-       event = event.split("_")
-       if event[1]=="M" :
-          if event[2] == "Insert" :
-              if st.getQuestItemsCount(MIXING_STONE1) :
-                 st.takeItems(MIXING_STONE1,-1)
-                 st.set("mixing","1")
-                 htmltext = "31149-2.htm"
-              else :
-                 htmltext = "You don't have a mixing stone."
-          elif event[2] == "Retrieve" :
-              if st.getInt("mixing") :
-                 st.set("mixing","0")
-                 st.set("temp","0")
-                 st.giveItems(MIXING_STONE1,1)
-                 if st.getInt("ingredient") or st.getInt("catalyst") :
-                     htmltext = "31149-2c.htm"
-                 else :
-                     htmltext = "31149-2a.htm"
-              else :
-                 htmltext = "31149-2b.htm"
-       elif event[2] == "Insert" :
-          htmltext = render_urn(st,event)
-       elif event[2] == "Retrieve" :
-          if event[1] == "I" :
-             item=st.getInt("ingredient")
-             qty =st.getInt("i_qty")
-             st.set("ingredient","0")
-             st.set("i_qty","0")
-          elif event[1] == "C" :
-             item=st.getInt("catalyst")
-             qty =st.getInt("c_qty")
-             st.set("catalyst","0")
-             st.set("c_qty","0")
-          if item and qty :
-             st.giveItems(item,qty)
-             htmltext="31149-3a.htm"
-          else :
-             htmltext = "31149-3b.htm" 
-    elif event.startswith("x_") :
-       x,qty,dst,item=event.split("_")
-       if qty=="2": qty="10"
-       if st.getQuestItemsCount(int(item)) >= int(qty) :
-          if dst == "I" :
-             dest = "ingredient"
-             count= "i_qty"
-          else :
-             dest = "catalyst"
-             count= "c_qty"
-          st.takeItems(int(item),int(qty))
-          st.set(dest,item)
-          st.set(count,qty)
-          st.playSound("SkillSound5.liquid_mix_01")
-          htmltext = "31149-4a.htm"
-       else :
-          htmltext = "31149-4b.htm"
-    elif event.startswith("tmp_") :
-       st.set("temp",event.split("_")[1])
-       htmltext = "31149-5a.htm"
-    elif event == "31149-6.htm" :
-       if st.getInt("mixing") :
-          temp=st.getInt("temp")
-          if temp :
-             ingredient,catalyst,iq,cq = st.getInt("ingredient"),st.getInt("catalyst"),st.getInt("i_qty"),st.getInt("c_qty")
-             st.set("ingredient","0")
-             st.set("i_qty","0")
-             st.set("catalyst","0")
-             st.set("c_qty","0")
-             st.set("temp","0")
-             item=0
-             for i in FORMULAS :
-                 if [ingredient,iq,catalyst,cq] == FORMULAS[i] :
-                    item=i
-                    break
-             if item == PURE_SILVER and temp != 1:
-                st.playSound("SkillSound5.liquid_fail_01")
-                return "31149-7c.htm"
-             if item == MIMIRS_ELIXIR :
-                if temp == 3 :
-                  if st.getQuestItemsCount(BLOOD_FIRE) :
-                     st.takeItems(BLOOD_FIRE,1)
-                  else :
-                     st.playSound("SkillSound5.liquid_fail_01")
-                     return "31149-7a.htm"
-                else :
-                  st.playSound("SkillSound5.liquid_fail_01")
-                  return "31149-7b.htm"
-             if item :
-                chance,qty=TEMPERATURE[temp]
-                if item == MIMIRS_ELIXIR :
-                   mimirs=st.getPlayer().getQuestState("Q00235_MimirsElixir")
-                   if mimirs :
-                      chance = 100
-                      qty = 1
-                      mimirs.set("cond","8")
-                   else :
-                      st.playSound("SkillSound5.liquid_fail_01")
-                      return "31149-7d.htm"
-                if self.getRandom(100) < chance :
-                   st.giveItems(item,qty)
-                   st.playSound("SkillSound5.liquid_success_01")
-                else :
-                   st.playSound("SkillSound5.liquid_fail_01")
-                   htmltext = "31149-6c.htm"
-             else :
-                st.playSound("SkillSound5.liquid_fail_01")
-                htmltext = "31149-6d.htm"
-          else :
-             st.playSound("SkillSound5.liquid_fail_01")
-             htmltext = "31149-6b.htm"
-       else :
-          st.playSound("SkillSound5.liquid_fail_01")
-          htmltext="31149-6a.htm"
-    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 == WESLEY :
-      if id == State.CREATED :
-         st.set("cond","0")
-         htmltext = "30166-1.htm"
-         if player.getLevel() < 57 :
-            st.exitQuest(1)
-            htmltext = "30166-2.htm"
-      else :
-         htmltext = "30166-3.htm"
-   elif id == State.STARTED :
-      htmltext = render_urn(st,"Start")
-   return htmltext
-
- def onKill(self,npc,player,isPet) :
-     partyMember = self.getRandomPartyMemberState(player, State.STARTED)
-     if not partyMember : return
-     st = partyMember.getQuestState(qn)
-     npcId = npc.getId()
-     # The quest rates increase the rates of dropping "something", but only one
-     # entry will be chosen to drop per kill.  In order to not overshadow entries
-     # that appear later in the list, first check with the sum of all entries to
-     # see if any one of them will drop, then select which one...
-     totalDropChance = DROPLIST[npcId][0]
-     if totalDropChance*Config.RATE_QUEST_DROP > self.getRandom(100) :
-         # At this point, we decided that one entry from this list will definitely be dropped
-         # to select which one, get a random value in the range of the total chance and find
-         # the first item that passes this range.
-         itemToDrop =self.getRandom(totalDropChance)
-         indexChance = 0
-         for i in range(1,len(DROPLIST[npcId])) :
-             item, chance = DROPLIST[npcId][i]
-             indexChance += chance
-             if indexChance > itemToDrop :
-                 # Now, we have selected which item to drop.  However, the quest rates are also
-                 # capable of giving this item a bonus amount, if its individual chance surpases
-                 # 100% after rates.  Apply rates to see for bonus amounts...
-                 # definitely give at least 1 item.  If the chance exceeds 100%, then give some
-                 # additional bonus...
-                 numItems,chance = divmod(chance*Config.RATE_QUEST_DROP,100)
-                 if numItems == 0 or chance > self.getRandom(100) :
-                     numItems += 1
-                 st.giveItems(item,int(numItems))
-                 st.playSound("ItemSound.quest_itemget")
-                 break
-     return
-
-# Quest class and state definition
-QUEST       = Quest(QUEST_NUMBER, str(QUEST_NUMBER)+"_"+QUEST_NAME, QUEST_DESCRIPTION)
-
-# Quest NPC starter initialization
-QUEST.addStartNpc(WESLEY)
-# Quest initialization
-QUEST.addTalkId(WESLEY)
-
-QUEST.addTalkId(URN)
-
-for i in DROPLIST.keys():
-  QUEST.addKillId(i)

+ 4 - 4
L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/30166-2.htm → L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-01.html

@@ -1,5 +1,5 @@
-<html><body>Magic Trader Wesley:<br>
-I buy ingredients from adventurers like you, create various reagents from them and then sell them to the Mystics of the Ivory Tower. Although a mere merchant, I am proud of my association with the Mystics.<br>
-Many common ingredients such as jade and Dragon's Tooth are readily available, as many adventurers bring them to me. But there are other ingredients that are much more rare. I need a new regular supplier of these ingredients... Would you like to be that person? I must be honest with you, it is very dangerous work, and I am afraid you aren't quite up to the task...<br>
-(This quest can only be undertaken by characters of level 57 or higher.)
+<html><body>Magic Trader Wesley:<br>
+I buy ingredients from adventurers like you, create various reagents from them and then sell them to the Mystics of the Ivory Tower. Although a mere merchant, I am proud of my association with the Mystics.<br>
+Many common ingredients such as jade and Dragon's Tooth are readily available, as many adventurers bring them to me. But there are other ingredients that are much more rare. I need a new regular supplier of these ingredients... Would you like to be that person? I must be honest with you, it is very dangerous work, and I am afraid you aren't quite up to the task...<br>
+(This quest can only be undertaken by characters of level 57 or higher.)
 </body></html>

+ 4 - 4
L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/30166-1.htm → L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-02.htm

@@ -1,5 +1,5 @@
-<html><body>Magic Trader Wesley:<br>
-I buy ingredients from adventurers like you, create various reagents from them and then sell them to the Mystics of the Ivory Tower. Although a mere merchant, I am proud of my association with the Mystics.<br>
-Many common ingredients such as Jade and Dragon's Tooth are readily available, as many adventurers bring them to me. But there are other ingredients that are much more rare. I need a new regular supplier of these ingredients... Would you like to be that person?<br>
-<a action="bypass -h Quest 373_SupplierOfReagents 30166-4a.htm">"I'll take the job."</a>
+<html><body>Magic Trader Wesley:<br>
+I buy ingredients from adventurers like you, create various reagents from them and then sell them to the Mystics of the Ivory Tower. Although a mere merchant, I am proud of my association with the Mystics.<br>
+Many common ingredients such as Jade and Dragon's Tooth are readily available, as many adventurers bring them to me. But there are other ingredients that are much more rare. I need a new regular supplier of these ingredients... Would you like to be that person?<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 30166-03.htm">"I'll take the job."</a>
 </body></html>

+ 4 - 4
L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/30166-4a.htm → L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-03.htm

@@ -1,5 +1,5 @@
-<html><body>Magic Trader Wesley:<br>
-Seriously? That would be great! My previous suppliers recently quit after complaining about the low pay and hazardous working conditions! To add insult to injury, Grand Magister Valleria has threatened to take his business elsewhere!<br>
-This is such a relief. Let me tell you what the job entails...<br>
-<a action="bypass -h Quest 373_SupplierOfReagents 30166-4.htm">Listen to the job description.</a>
+ <html><body>Magic Trader Wesley:<br>
+Seriously? That would be great! My previous suppliers recently quit after complaining about the low pay and hazardous working conditions! To add insult to injury, Grand Magister Valleria has threatened to take his business elsewhere!<br>
+This is such a relief. Let me tell you what the job entails...<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 30166-04.html">Listen to the job description.</a>
 </body></html>

+ 5 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-04.html

@@ -0,0 +1,5 @@
+<html><body>Magic Trader Wesley:<br>
+Sir... or, should I call you partner? You must bring me the ingredients I need to make reagents using the <font color="LEVEL">Alchemical Mixing Urn</font>.<br>
+Take this <font color="LEVEL">Mixing Manual</font>. This is used to activate the mixing urn.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 30166-04a.html">"Where can I find the ingredients?"</a>
+</body></html>

+ 6 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-04a.html

@@ -0,0 +1,6 @@
+<html><body>Magic Trader Wesley:<br>
+You can obtain the ingredients from <font color="LEVEL">Crendion, Hallate's Maid, Hallate's Guardian, the Platinum Tribe Shaman and the Platinum Guardian Shaman</font> in the <font color="LEVEL">Tower of Insolence</font>.<br>
+You can also obtain some important ingredients from <font color="LEVEL"> Lava Wyrms and the Hames Orc Shaman</font> in the <font color="LEVEL">Blazing Swamp</font>.<br>
+Do you want to know how to use the mixing urn?<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 30166-04b.html">"Tell me how to use the urn."</a>
+</body></html>

+ 5 - 5
L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/30166-4c.htm → L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-04b.html

@@ -1,6 +1,6 @@
-<html><body>Magic Trader Wesley:<br>
-First you must activate the jar. Do this by inserting a mixing stone into the niche on the side of the jar. Once activated, you can start using the jar immediately. You must gather the correct quantity and types of ingredients and catalysts and put them into it.<br>
-Remember, once you put ingredients into mixing you cannot take them out again. So, be careful! You can waste your hard-won ingredients with a single mistake... Before you start mixing, make sure that you have the proper amount of all the necessary ingredients.<br>
-Now, I'll tell you how to set the temperature of the jar.<br>
-<a action="bypass -h Quest 373_SupplierOfReagents 30166-4d.htm">Listen to the instructions.</a>
+<html><body>Magic Trader Wesley:<br>
+First you must activate the jar. Do this by inserting a mixing stone into the niche on the side of the jar. Once activated, you can start using the jar immediately. You must gather the correct quantity and types of ingredients and catalysts and put them into it.<br>
+Remember, once you place ingredients into the jar, you cannot take them out again. So, be careful! You can waste your hard-won ingredients with a single mistake... Before you start mixing, make sure that you have the proper amount of all the necessary ingredients.<br>
+Now, I'll tell you how to set the temperature of the jar.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 30166-04c.html">Listen to the instructions.</a>
 </body></html>

+ 5 - 5
L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/30166-4d.htm → L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-04c.html

@@ -1,6 +1,6 @@
-<html><body>Magic Trader Wesley:<br>
-The lowest temperature you can set is 1 degree, also called "Salamander." This is the safest choice. Although the success rate for mixing is 100%, the amount of reagent produced will be the smallest.<br>
-The medium temperature setting is 2 degrees, also called "Ifrit." You run a risk of melting your ingredients at this temperature. This setting will yield a larger amount of reagent.<br>
-The highest temperature setting is 3 degrees, also known as "Phoenix." Although ingredients often melt at this setting, if successful, you will obtain the greatest amount of reagent.<br>
-<a action="bypass -h Quest 373_SupplierOfReagents 30166-4e.htm">"Tell me about mixing reagents."</a>
+<html><body>Magic Trader Wesley:<br>
+The lowest temperature you can set is 1 degree, also called "Salamander." This is the safest choice. Although the success rate for mixing is 100%, the amount of reagent produced will be the smallest.<br>
+The medium temperature setting is 2 degrees, also called "Ifrit." You run a risk of melting your ingredients at this temperature. This setting will yield a larger amount of reagent.<br>
+The highest temperature setting is 3 degrees, also known as "Phoenix." Although ingredients often melt at this setting, if successful, you will obtain the greatest amount of reagent.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 30166-04d.html">"Tell me about mixing reagents."</a>
 </body></html>

+ 5 - 5
L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/30166-4e.htm → L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-04d.html

@@ -1,6 +1,6 @@
-<html><body>Magic Trader Wesley:<br>
-Formulas explain which ingredients and the amounts you will need in order to create a particular reagent. All formulas explain how many ingredients and how many catalysts should be added.<br>
-For example, in order to create Dracoplasm, ten units of Wyrm's Blood and one Blood Root should be mixed.<br>
-I wrote down a list of the required reagents and mixing formulas on the<font color="LEVEL"> memo</font> and attached it on the urn. Please refer to it often.<br>
-Well, my dear new partner... I'll be counting on you.
+<html><body>Magic Trader Wesley:<br>
+Formulas explain which ingredients and the amounts you will need in order to create a particular reagent. All formulas explain how many ingredients and how many catalysts should be added.<br>
+For example, in order to create Dracoplasm, ten units of Wyrm's Blood and one Blood Root should be mixed.<br>
+I wrote down a list of the required reagents and mixing formulas on the <font color="LEVEL">memo</font> and attached it on the urn. Please refer to it often.<br>
+Well, my dear new partner... I'll be counting on you.
 </body></html>

+ 5 - 5
L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/30166-3.htm → L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-05.html

@@ -1,6 +1,6 @@
-<html><body>Trader Wesley:<br>
-Welcome back! Come in! You're just in time. Grand Magister Arkenias has been asking for his order... I was able to put him off for a few days. Have you found the reagents I need? Bring them and I'll give you some ingredients, recipes or other items that you'll find useful.<br>
-<a action="bypass -h npc_%objectId%_multisell 301660373">"Here are the reagents you requested."</a><br>
-<a action="bypass -h Quest 373_SupplierOfReagents 30166-3a.htm">"Tell me about the memo."</a><br>
-<a action="bypass -h Quest 373_SupplierOfReagents 30166-5.htm">"I quit."</a>
+<html><body>Magic Trader Wesley:<br>
+Welcome back! Come in! You're just in time. Grand Magister Arkenias has been asking for his order... I was able to put him off for a few days. Have you found the reagents I need? Bring them and I'll give you some ingredients, recipes or other items that you'll find useful.<br>
+<a action="bypass -h npc_%objectId%_multisell 301660373">"Here are the reagents you requested."</a><br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 30166-06.html">"Tell me about the memo."</a><br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 30166-07.html">"I quit."</a>
 </body></html>

+ 2 - 2
L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/30166-3a.htm → L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-06.html

@@ -1,3 +1,3 @@
-<html><body>Magic Trader Wesley:<br>
-I wrote down detailed instructions for using the urn, setting temperatures, a list of reagents and their formulas on the memo and attached it to the side of the urn. Please refer to it often.
+<html><body>Magic Trader Wesley:<br>
+I wrote down detailed instructions for using the urn, setting temperatures, a list of reagents and their formulas on the memo and attached it to the side of the urn. Please refer to it often.
 </body></html>

+ 3 - 3
L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/30166-5.htm → L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-07.html

@@ -1,4 +1,4 @@
-<html><body>Magic Trader Wesley:<br>
-My partner! How can you quit so abruptly? What shall I do? You can't do this to me!<br>
-Oh, well, there's nothing I can do to stop you... I suppose I'll have to find another partner...
+<html><body>Magic Trader Wesley:<br>
+My partner! How can you quit so abruptly? What shall I do? You can't do this to me!<br>
+Oh, well, there's nothing I can do to stop you... I suppose I'll have to find another partner...
 </body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-01.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+A small dent is visible on the side of the urn.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-02.html">Insert a mixing stone into the dent.</a>
+</body></html>

+ 18 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-02.html

@@ -0,0 +1,18 @@
+ <html><body>Alchemical Mixing Urn:<br>
+The urn is glowing faintly.<br>
+Please select your ingredients:<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-03.html">Wyrm's Blood(10) </a><br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-04.html">Lava Stone(10)</a><br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-05.html">Moonstone Shard(10)</a><br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-06.html">Rotten Bone Piece(10)</a><br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-07.html">Demon's Blood(10)</a><br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-08.html">Infernium Ore(10)</a><br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-09.html">Dracoplasm(10)</a><br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-10.html">Magma Dust(10)</a><br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-11.html">Moon Dust(10)</a><br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-12.html">Necroplasm(10)</a><br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-13.html">Demonplasm(10)</a><br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-14.html">Inferno Dust(10)</a><br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-15.html">Fire Essence(1)</a><br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-16.html">Lunargent(1)</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-03.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+10 units of Wyrm's Blood have been put into the urn.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-18.html">Next step</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-04.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+10 Lava Stones have been put into the urn.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-18.html">Next step</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-05.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+10 Moonstone Shards have been placed into the urn.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-18.html">Next step</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-06.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+10 Rotten Bone Pieces have been placed into the urn.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-18.html">Next step</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-07.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+10 units of Demon's Blood have been placed into the urn.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-18.html">Next step</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-08.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+10 pieces of Infernium Ore have been placed into the urn.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-18.html">Next step</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-09.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+10 units of Dracoplasm have been placed into the urn.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-18.html">Next step</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-10.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+10 units of Magma Dust have been placed into the urn.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-18.html">Next step</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-11.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+10 units of Moon Dust have been placed into the urn.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-18.html">Next step</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-12.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+10 units of Necroplasm have been placed into the urn.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-18.html">Next step</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-13.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+10 units of Demonplasm have been placed into the urn.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-18.html">Next step</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-14.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+10 units of Inferno Dust have been placed into the urn.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-18.html">Next step</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-15.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+One Fire Essence has been placed into the urn.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-18.html">Next step</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-16.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+One Lunargent has been placed into the urn.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-18.html">Next step</a>
+</body></html>

+ 3 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-17.html

@@ -0,0 +1,3 @@
+<html><body>Alchemical Mixing Urn:<br>
+You don't have the necessary ingredients.
+</body></html>

+ 10 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-18.html

@@ -0,0 +1,10 @@
+<html><body>Alchemical Mixing Urn:<br>
+The urn is glowing brightly and has begun to vibrate.<br>
+Please select your catalyst:<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-19.html">Blood Root(1)</a><br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-20.html">Volcanic Ash(1)</a><br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-21.html">Quicksilver(1)</a><br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-22.html">Sulfur(1)</a><br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-23.html">Demonic Essence(1)</a><br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-24.html">Midnight Oil(1)</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-19.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+One Blood Root has been put into the urn.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-26.html">Next step</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-20.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+One Volcanic Ash has been put into the urn.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-26.html">Next step</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-21.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+One Quicksilver has been put into the urn.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-26.html">Next step</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-22.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+One unit of Sulfur has been placed into the urn.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-26.html">Next step</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-23.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+One Demonic Essence has been put into the urn.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-26.html">Next step</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-24.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+One Midnight Oil has been put into the urn.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-26.html">Next step</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-25.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+You don't have enough ingredients.<br>
+The urn has gone still and dark. The process has failed!
+</body></html>

+ 6 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-26.html

@@ -0,0 +1,6 @@
+<html><body>Alchemical Mixing Urn:<br>
+Select temperature:<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-27.html">1 degree - Salamander</a><br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-28a.html">2 degrees - Ifrit</a><br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-29a.html">3 degrees - Phoenix</a>
+</body></html>

+ 6 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-26a.html

@@ -0,0 +1,6 @@
+<html><body>Mixing Urn:<br>
+Select temperature:<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-27.html">1 degree - Salamander</a><br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-27.html">2 degrees - Ifrit</a><br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-27.html">3 degrees - Phoenix</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-27.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+The urn is glowing red-hot.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents mixitems">Mix the ingredients.</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-28a.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+The urn is glowing red-hot.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents mixitems">Mix the ingredients.</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-29a.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+The urn is glowing red-hot.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents mixitems">Mix the ingredients.</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-30.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+Mixing successful! The Dracoplasm has been created.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-02.html">Mix a new reagent.</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-31.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+Mixing successful! Magma Dust has been created.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-02.html">Mix a new reagent.</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-32.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+Mixing successful! Moon Dust has been created.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-02.html">Mix a new reagent.</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-33.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+Mixing successful! Necroplasm has been created.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-02.html">Mix a new reagent.</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-34.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+Mixing successful! Demonplasm has been created.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-02.html">Mix a new reagent.</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-35.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+Mixing successful! Inferno Dust has been created.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-02.html">Mix a new reagent.</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-36.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+Mixing successful! Draconic Essence has been created.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-02.html">Mix a new reagent.</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-37.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+Mixing successful! Fire Essence has been created.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-02.html">Mix a new reagent.</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-38.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+Mixing successful! Lunargent has been created.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-02.html">Mix a new reagent.</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-39.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+Mixing successful! Midnight Oil has been created.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-02.html">Mix a new reagent.</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-40.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+Mixing successful! Demonic Essence has been created.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-02.html">Mix a new reagent.</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-41.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+Mixing successful! Abyss Oil has been created.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-02.html">Mix a new reagent.</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-42.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+Mixing successful! Hellfire Oil has been created.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-02.html">Mix a new reagent.</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-43.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+Mixing successful! Nightmare Oil has been created.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-02.html">Mix a new reagent.</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-44.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+The urn has gone still and dark. Mixing has failed!<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-02.html">Mix a new reagent.</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-45.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+The ingredient melted during mixing. The process failed!<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-02.html">Mix a new reagent.</a>
+</body></html>

+ 4 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-46.html

@@ -0,0 +1,4 @@
+<html><body>Alchemical Mixing Urn:<br>
+Mixing successful! Pure Silver has been created.<br>
+<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-02.html">Alchemical Mixing Urn</a>
+</body></html>

+ 481 - 0
L2J_DataPack/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/Q00373_SupplierOfReagents.java

@@ -0,0 +1,481 @@
+/*
+ * 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.Q00373_SupplierOfReagents;
+
+import java.util.HashMap;
+
+import quests.Q00235_MimirsElixir.Q00235_MimirsElixir;
+
+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.holders.ItemHolder;
+import com.l2jserver.gameserver.model.quest.Quest;
+import com.l2jserver.gameserver.model.quest.QuestState;
+
+/**
+ * Supplier of Reagents (373)
+ * @author Joxit
+ */
+public final class Q00373_SupplierOfReagents extends Quest
+{
+	// NPCs
+	private static final int WESLEY = 30166;
+	private static final int ALCHEMIST_MIXING_URN = 31149;
+	// Mobs
+	private static final int HALLATE_MAID = 20822;
+	private static final int HALLATE_GUARDIAN = 21061;
+	private static final int HAMES_ORC_SHAMAN = 21115;
+	private static final int LAVA_WYRM = 21111;
+	private static final int CRENDION = 20813;
+	private static final int PLATINUM_TRIBE_SHAMAN = 20828;
+	private static final int PLATINUM_GUARDIAN_SHAMAN = 21066;
+	// Items
+	private static final int REAGENT_POUNCH1 = 6007;
+	private static final int REAGENT_POUNCH2 = 6008;
+	private static final int REAGENT_POUNCH3 = 6009;
+	private static final int REAGENT_BOX = 6010;
+	private static final int WYRM_BLOOD = 6011;
+	private static final int LAVA_STONE = 6012;
+	private static final int MOONSTONE_SHARD = 6013;
+	private static final int ROTTEN_BONE = 6014;
+	private static final int DEMONS_BLOOD = 6015;
+	private static final int INFERNIUM_ORE = 6016;
+	private static final int BLOOD_ROOT = 6017;
+	private static final int VOLCANIC_ASH = 6018;
+	private static final int QUICKSILVER = 6019;
+	private static final int SULFUR = 6020;
+	private static final int DRACOPLASM = 6021;
+	private static final int MAGMA_DUST = 6022;
+	private static final int MOON_DUST = 6023;
+	private static final int NECROPLASM = 6024;
+	private static final int DEMONPLASM = 6025;
+	private static final int INFERNO_DUST = 6026;
+	private static final int DRACONIC_ESSENCE = 6027;
+	private static final int FIRE_ESSENCE = 6028;
+	private static final int LUNARGENT = 6029;
+	private static final int MIDNIGHT_OIL = 6030;
+	private static final int DEMONIC_ESSENCE = 6031;
+	private static final int ABYSS_OIL = 6032;
+	private static final int HELLFIRE_OIL = 6033;
+	private static final int NIGHTMARE_OIL = 6034;
+	private static final int PURE_SILVER = 6320;
+	private static final int MIXING_MANUAL = 6317;
+	private static final int WESLEYS_MIXING_STONE = 5904;
+	// Misc
+	private static final int MIN_LVL = 57;
+	private static final HashMap<String, Integer> HTML_TO_MEMO_STATE = new HashMap<>(20);
+	private static final HashMap<Integer, ItemHolder> MEMO_STATE_TO_ITEM = new HashMap<>(20);
+	private static final HashMap<Integer, Entry> MEMO_STATE_TO_REWARD = new HashMap<>(15);
+	
+	static
+	{
+		// List of ingredients to mix
+		HTML_TO_MEMO_STATE.put("31149-03.html", 11);
+		HTML_TO_MEMO_STATE.put("31149-04.html", 12);
+		HTML_TO_MEMO_STATE.put("31149-05.html", 13);
+		HTML_TO_MEMO_STATE.put("31149-06.html", 14);
+		HTML_TO_MEMO_STATE.put("31149-07.html", 15);
+		HTML_TO_MEMO_STATE.put("31149-08.html", 16);
+		HTML_TO_MEMO_STATE.put("31149-09.html", 17);
+		HTML_TO_MEMO_STATE.put("31149-10.html", 18);
+		HTML_TO_MEMO_STATE.put("31149-11.html", 19);
+		HTML_TO_MEMO_STATE.put("31149-12.html", 20);
+		HTML_TO_MEMO_STATE.put("31149-13.html", 21);
+		HTML_TO_MEMO_STATE.put("31149-14.html", 22);
+		HTML_TO_MEMO_STATE.put("31149-15.html", 23);
+		HTML_TO_MEMO_STATE.put("31149-16.html", 24);
+		MEMO_STATE_TO_ITEM.put(11, new ItemHolder(WYRM_BLOOD, 10));
+		MEMO_STATE_TO_ITEM.put(12, new ItemHolder(LAVA_STONE, 10));
+		MEMO_STATE_TO_ITEM.put(13, new ItemHolder(MOONSTONE_SHARD, 10));
+		MEMO_STATE_TO_ITEM.put(14, new ItemHolder(ROTTEN_BONE, 10));
+		MEMO_STATE_TO_ITEM.put(15, new ItemHolder(DEMONS_BLOOD, 10));
+		MEMO_STATE_TO_ITEM.put(16, new ItemHolder(INFERNIUM_ORE, 10));
+		MEMO_STATE_TO_ITEM.put(17, new ItemHolder(DRACOPLASM, 10));
+		MEMO_STATE_TO_ITEM.put(18, new ItemHolder(MAGMA_DUST, 10));
+		MEMO_STATE_TO_ITEM.put(19, new ItemHolder(MOON_DUST, 10));
+		MEMO_STATE_TO_ITEM.put(20, new ItemHolder(NECROPLASM, 10));
+		MEMO_STATE_TO_ITEM.put(21, new ItemHolder(DEMONPLASM, 10));
+		MEMO_STATE_TO_ITEM.put(22, new ItemHolder(INFERNO_DUST, 10));
+		MEMO_STATE_TO_ITEM.put(23, new ItemHolder(FIRE_ESSENCE, 1));
+		MEMO_STATE_TO_ITEM.put(24, new ItemHolder(LUNARGENT, 1));
+		
+		// List of catalysts to mix
+		HTML_TO_MEMO_STATE.put("31149-19.html", 1100);
+		HTML_TO_MEMO_STATE.put("31149-20.html", 1200);
+		HTML_TO_MEMO_STATE.put("31149-21.html", 1300);
+		HTML_TO_MEMO_STATE.put("31149-22.html", 1400);
+		HTML_TO_MEMO_STATE.put("31149-23.html", 1500);
+		HTML_TO_MEMO_STATE.put("31149-24.html", 1600);
+		MEMO_STATE_TO_ITEM.put(1100, new ItemHolder(BLOOD_ROOT, 1));
+		MEMO_STATE_TO_ITEM.put(1200, new ItemHolder(VOLCANIC_ASH, 1));
+		MEMO_STATE_TO_ITEM.put(1300, new ItemHolder(QUICKSILVER, 1));
+		MEMO_STATE_TO_ITEM.put(1400, new ItemHolder(SULFUR, 1));
+		MEMO_STATE_TO_ITEM.put(1500, new ItemHolder(DEMONIC_ESSENCE, 1));
+		MEMO_STATE_TO_ITEM.put(1600, new ItemHolder(MIDNIGHT_OIL, 1));
+		
+		// The reward is the sum of ingredient and catalyst
+		MEMO_STATE_TO_REWARD.put(1111, new Entry(DRACOPLASM, "31149-30.html"));
+		MEMO_STATE_TO_REWARD.put(1212, new Entry(MAGMA_DUST, "31149-31.html"));
+		MEMO_STATE_TO_REWARD.put(1213, new Entry(MOON_DUST, "31149-32.html"));
+		MEMO_STATE_TO_REWARD.put(1114, new Entry(NECROPLASM, "31149-33.html"));
+		MEMO_STATE_TO_REWARD.put(1115, new Entry(DEMONPLASM, "31149-34.html"));
+		MEMO_STATE_TO_REWARD.put(1216, new Entry(INFERNO_DUST, "31149-35.html"));
+		MEMO_STATE_TO_REWARD.put(1317, new Entry(DRACONIC_ESSENCE, "31149-36.html"));
+		MEMO_STATE_TO_REWARD.put(1418, new Entry(FIRE_ESSENCE, "31149-37.html"));
+		MEMO_STATE_TO_REWARD.put(1319, new Entry(LUNARGENT, "31149-38.html"));
+		MEMO_STATE_TO_REWARD.put(1320, new Entry(MIDNIGHT_OIL, "31149-39.html"));
+		MEMO_STATE_TO_REWARD.put(1421, new Entry(DEMONIC_ESSENCE, "31149-40.html"));
+		MEMO_STATE_TO_REWARD.put(1422, new Entry(ABYSS_OIL, "31149-41.html"));
+		MEMO_STATE_TO_REWARD.put(1523, new Entry(HELLFIRE_OIL, "31149-42.html"));
+		MEMO_STATE_TO_REWARD.put(1624, new Entry(NIGHTMARE_OIL, "31149-43.html"));
+		MEMO_STATE_TO_REWARD.put(1324, new Entry(PURE_SILVER, "31149-46.html"));
+	}
+	
+	public Q00373_SupplierOfReagents()
+	{
+		super(373, Q00373_SupplierOfReagents.class.getSimpleName(), "Supplier of Reagents");
+		addStartNpc(WESLEY);
+		addKillId(HALLATE_GUARDIAN, HALLATE_MAID, HAMES_ORC_SHAMAN, LAVA_WYRM, CRENDION, PLATINUM_GUARDIAN_SHAMAN, PLATINUM_TRIBE_SHAMAN);
+		addTalkId(WESLEY, ALCHEMIST_MIXING_URN);
+		registerQuestItems(WESLEYS_MIXING_STONE, MIXING_MANUAL);
+	}
+	
+	@Override
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+	{
+		final QuestState qs = getQuestState(player, false);
+		String htmltext = null;
+		if (qs == null)
+		{
+			return htmltext;
+		}
+		switch (event)
+		{
+			case "30166-03.htm":
+			case "30166-06.html":
+			case "30166-04a.html":
+			case "30166-04b.html":
+			case "30166-04c.html":
+			case "30166-04d.html":
+			case "31149-18.html":
+			{
+				htmltext = event;
+				break;
+			}
+			case "30166-04.html":
+			{
+				if ((player.getLevel() >= MIN_LVL) && qs.isCreated())
+				{
+					giveItems(player, WESLEYS_MIXING_STONE, 1);
+					giveItems(player, MIXING_MANUAL, 1);
+					qs.startQuest();
+					htmltext = event;
+				}
+				break;
+			}
+			case "30166-07.html":
+			{
+				qs.exitQuest(true, true);
+				htmltext = event;
+				break;
+			}
+			case "31149-02.html":
+			{
+				qs.setMemoState(0);
+				qs.setMemoStateEx(1, 0);
+				htmltext = event;
+				break;
+			}
+			case "31149-03.html":
+			case "31149-04.html":
+			case "31149-05.html":
+			case "31149-06.html":
+			case "31149-07.html":
+			case "31149-08.html":
+			case "31149-09.html":
+			case "31149-10.html":
+			case "31149-11.html":
+			case "31149-12.html":
+			case "31149-13.html":
+			case "31149-14.html":
+			case "31149-15.html":
+			case "31149-16.html":
+			case "31149-19.html":
+			case "31149-20.html":
+			case "31149-21.html":
+			case "31149-22.html":
+			case "31149-23.html":
+			case "31149-24.html":
+			{
+				final int memoState = HTML_TO_MEMO_STATE.get(event);
+				if (hasItem(player, MEMO_STATE_TO_ITEM.get(memoState)))
+				{
+					// If the player has the chosen item (ingredient or catalyst), we save it (for the catalyst or the reward)
+					qs.setMemoState(qs.getMemoState() + memoState);
+					htmltext = event;
+					playSound(player, QuestSound.SKILLSOUND_LIQUID_MIX);
+				}
+				else
+				{
+					// If the player has not the chosen catalyst, we take the ingredient previously saved (if not null)
+					takeItem(player, MEMO_STATE_TO_ITEM.get(qs.getMemoState()));
+					if (event.equals("31149-19.html"))
+					{
+						htmltext = "31149-25.html";
+					}
+					else
+					{
+						htmltext = "31149-17.html";
+					}
+				}
+				break;
+			}
+			case "31149-26.html":
+			{
+				if (qs.isMemoState(1324))
+				{
+					htmltext = "31149-26a.html";
+				}
+				else
+				{
+					htmltext = event;
+				}
+				break;
+			}
+			case "31149-27.html":
+			{
+				qs.setMemoStateEx(1, 1); // Temperature Salamander
+				htmltext = event;
+				break;
+			}
+			case "31149-28a.html":
+			{
+				if (getRandom(100) < 33)
+				{
+					qs.setMemoStateEx(1, 3); // Temperature Ifrit
+				}
+				else
+				{
+					qs.setMemoStateEx(1, 0);
+				}
+				htmltext = event;
+				break;
+			}
+			case "31149-29a.html":
+			{
+				if (getRandom(100) < 20)
+				{
+					qs.setMemoStateEx(1, 5); // Temperature Phoenix
+				}
+				else
+				{
+					qs.setMemoStateEx(1, 0);
+				}
+				htmltext = event;
+				break;
+			}
+			case "mixitems":
+			{
+				final int memoState = qs.getMemoState();
+				final ItemHolder item1 = MEMO_STATE_TO_ITEM.get(memoState % 100);
+				final ItemHolder item2 = MEMO_STATE_TO_ITEM.get((memoState / 100) * 100);
+				final Entry reward = MEMO_STATE_TO_REWARD.get(memoState);
+				final QuestState q235 = player.getQuestState(Q00235_MimirsElixir.class.getSimpleName());
+				if ((reward == null) || qs.isMemoStateEx(1, 0))
+				{
+					takeItem(player, item1);
+					takeItem(player, item2);
+					htmltext = (reward == null) ? "31149-44.html" : "31149-45.html";
+					playSound(player, QuestSound.SKILLSOUND_LIQUID_FAIL);
+				}
+				else if ((memoState != 1324) || ((memoState == 1324) && (q235 != null) && q235.isStarted() && !hasQuestItems(player, reward.getItem())))
+				{
+					if ((item1 != null) && (item2 != null) && hasItem(player, item1) && hasItem(player, item2))
+					{
+						takeItem(player, item1);
+						takeItem(player, item2);
+						giveItems(player, reward.getItem(), (memoState == 1324) ? 1 : qs.getMemoStateEx(1));
+						qs.setMemoState(0);
+						qs.setMemoStateEx(1, 0);
+						htmltext = reward.getHtml();
+						playSound(player, QuestSound.SKILLSOUND_LIQUID_SUCCESS);
+					}
+					else
+					{
+						htmltext = "31149-44.html";
+						playSound(player, QuestSound.SKILLSOUND_LIQUID_FAIL);
+					}
+				}
+				else
+				{
+					htmltext = "31149-44.html";
+				}
+				break;
+			}
+		}
+		return htmltext;
+	}
+	
+	@Override
+	public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+	{
+		final QuestState qs = getRandomPartyMemberState(killer, -1, 3, npc);
+		if (qs != null)
+		{
+			switch (npc.getId())
+			{
+				case HALLATE_GUARDIAN:
+				{
+					final int chance = getRandom(1000);
+					if (chance < 766)
+					{
+						giveItemRandomly(qs.getPlayer(), npc, DEMONS_BLOOD, 3, 0, 1, true);
+					}
+					else if (chance < 876)
+					{
+						giveItemRandomly(qs.getPlayer(), npc, MOONSTONE_SHARD, 1, 0, 1, true);
+					}
+					break;
+				}
+				case HALLATE_MAID:
+				{
+					final int chance = getRandom(100);
+					if (chance < 45)
+					{
+						giveItemRandomly(qs.getPlayer(), npc, REAGENT_POUNCH1, 1, 0, 1, true);
+					}
+					else if (chance < 65)
+					{
+						giveItemRandomly(qs.getPlayer(), npc, VOLCANIC_ASH, 1, 0, 1, true);
+					}
+					break;
+				}
+				case HAMES_ORC_SHAMAN:
+				{
+					if (getRandom(1000) < 616)
+					{
+						giveItemRandomly(qs.getPlayer(), npc, REAGENT_POUNCH3, 1, 0, 1, true);
+					}
+					break;
+				}
+				case LAVA_WYRM:
+				{
+					final int chance = getRandom(1000);
+					if (chance < 666)
+					{
+						giveItemRandomly(qs.getPlayer(), npc, WYRM_BLOOD, 1, 0, 1, true);
+					}
+					else if (chance < 989)
+					{
+						giveItemRandomly(qs.getPlayer(), npc, LAVA_STONE, 1, 0, 1, true);
+					}
+					break;
+				}
+				case CRENDION:
+				{
+					if (getRandom(1000) < 618)
+					{
+						giveItemRandomly(qs.getPlayer(), npc, ROTTEN_BONE, 1, 0, 1, true);
+					}
+					else
+					{
+						giveItemRandomly(qs.getPlayer(), npc, QUICKSILVER, 1, 0, 1, true);
+					}
+					break;
+				}
+				case PLATINUM_GUARDIAN_SHAMAN:
+				{
+					if (getRandom(1000) < 444)
+					{
+						giveItemRandomly(qs.getPlayer(), npc, REAGENT_BOX, 1, 0, 1, true);
+					}
+					break;
+				}
+				case PLATINUM_TRIBE_SHAMAN:
+				{
+					if (getRandom(1000) < 658)
+					{
+						giveItemRandomly(qs.getPlayer(), npc, REAGENT_POUNCH2, 1, 0, 1, true);
+					}
+					else
+					{
+						giveItemRandomly(qs.getPlayer(), npc, QUICKSILVER, 2, 0, 1, true);
+					}
+					break;
+				}
+			}
+		}
+		return super.onKill(npc, killer, isSummon);
+	}
+	
+	@Override
+	public String onTalk(L2Npc npc, L2PcInstance talker)
+	{
+		final QuestState qs = getQuestState(talker, true);
+		String htmltext = getNoQuestMsg(talker);
+		
+		if (qs.isCreated())
+		{
+			if (talker.getLevel() < MIN_LVL)
+			{
+				htmltext = "30166-01.html";
+			}
+			else
+			{
+				htmltext = "30166-02.htm";
+			}
+		}
+		else if (qs.isStarted())
+		{
+			if (npc.getId() == WESLEY)
+			{
+				htmltext = "30166-05.html";
+			}
+			else
+			{
+				htmltext = "31149-01.html";
+			}
+		}
+		
+		return htmltext;
+	}
+	
+	private static final class Entry
+	{
+		private final int item;
+		private final String html;
+		
+		public Entry(int item, String html)
+		{
+			this.item = item;
+			this.html = html;
+		}
+		
+		public int getItem()
+		{
+			return item;
+		}
+		
+		public String getHtml()
+		{
+			return html;
+		}
+	}
+}

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

@@ -325,6 +325,7 @@ import quests.Q00368_TrespassingIntoTheHolyGround.Q00368_TrespassingIntoTheHolyG
 import quests.Q00369_CollectorOfJewels.Q00369_CollectorOfJewels;
 import quests.Q00370_AnElderSowsSeeds.Q00370_AnElderSowsSeeds;
 import quests.Q00371_ShrieksOfGhosts.Q00371_ShrieksOfGhosts;
+import quests.Q00373_SupplierOfReagents.Q00373_SupplierOfReagents;
 import quests.Q00376_ExplorationOfTheGiantsCavePart1.Q00376_ExplorationOfTheGiantsCavePart1;
 import quests.Q00377_ExplorationOfTheGiantsCavePart2.Q00377_ExplorationOfTheGiantsCavePart2;
 import quests.Q00378_GrandFeast.Q00378_GrandFeast;
@@ -795,6 +796,7 @@ public class QuestMasterHandler
 		Q00369_CollectorOfJewels.class,
 		Q00370_AnElderSowsSeeds.class,
 		Q00371_ShrieksOfGhosts.class,
+		Q00373_SupplierOfReagents.class,
 		Q00376_ExplorationOfTheGiantsCavePart1.class,
 		Q00377_ExplorationOfTheGiantsCavePart2.class,
 		Q00378_GrandFeast.class,

+ 1 - 0
L2J_DataPack/dist/sql/game/updates/Q0373.sql

@@ -0,0 +1 @@
+UPDATE character_quests SET name='Q00373_SupplierOfReagents' WHERE name='373_SupplierOfReagents';