Advertisement
Minzee

EnhanceYourWeapon_Quest_C6Classic

Oct 22nd, 2019
364
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 162.58 KB | None | 0 0
  1. ### Eclipse Workspace Patch 1.0
  2. #P AoA_Interlude
  3. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-01.htm
  4. ===================================================================
  5. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-01.htm (nonexistent)
  6. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-01.htm (working copy)
  7. @@ -0,0 +1,4 @@
  8. +<html><body>Magister Winonin:<br>
  9. +Hello there, have you come to learn how to enhance the abilities of your weapon?<br>
  10. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-02.htm">"Yes, I wish to learn more."</button>
  11. +</body></html>
  12. \ No newline at end of file
  13. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-13.htm
  14. ===================================================================
  15. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-13.htm (nonexistent)
  16. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-13.htm (working copy)
  17. @@ -0,0 +1,4 @@
  18. +<html><body>Magister Winonin:<br>
  19. +It seems that the most evil creatures in northern Oren are the <FONT COLOR=LEVEL>Timak Orcs.</FONT><br>
  20. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  21. +</body></html>
  22. \ No newline at end of file
  23. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-01.htm
  24. ===================================================================
  25. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-01.htm (nonexistent)
  26. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-01.htm (working copy)
  27. @@ -0,0 +1,4 @@
  28. +<html><body>Master Gideon:<br>
  29. +Hello there, have you come to learn how to enhance the abilities of your weapon?<br>
  30. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-02.htm">"Yes, I wish to learn more."</button>
  31. +</body></html>
  32. \ No newline at end of file
  33. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-13.htm
  34. ===================================================================
  35. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-13.htm (nonexistent)
  36. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-13.htm (working copy)
  37. @@ -0,0 +1,4 @@
  38. +<html><body>Master Gideon:<br>
  39. +It seems that the most evil creatures in northern Oren are the <FONT COLOR=LEVEL>Timak Orcs.</FONT><br>
  40. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  41. +</body></html>
  42. \ No newline at end of file
  43. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-18.htm
  44. ===================================================================
  45. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-18.htm (nonexistent)
  46. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-18.htm (working copy)
  47. @@ -0,0 +1,4 @@
  48. +<html><body>Grand Magister Jurek:<br>
  49. +It seems that the most evil creatures in the Lair of Antharas are the <FONT COLOR=LEVEL>Malruk Knights, Malruk Berserkers, Malruk Lords, Limal Karinness, Kariks, Pytans, and Pytan Knights.</FONT><br>
  50. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  51. +</body></html>
  52. \ No newline at end of file
  53. Index: dist/game/data/scripts/quests/QuestMasterHandler.java
  54. ===================================================================
  55. --- dist/game/data/scripts/quests/QuestMasterHandler.java   (revision 6112)
  56. +++ dist/game/data/scripts/quests/QuestMasterHandler.java   (working copy)
  57. @@ -132,6 +132,7 @@
  58.  import quests.Q00333_HuntOfTheBlackLion.Q00333_HuntOfTheBlackLion;
  59.  import quests.Q00344_1000YearsTheEndOfLamentation.Q00344_1000YearsTheEndOfLamentation;
  60.  import quests.Q00348_AnArrogantSearch.Q00348_AnArrogantSearch;
  61. +import quests.Q00350_EnhanceYourWeapon.Q00350_EnhanceYourWeapon;
  62.  import quests.Q00354_ConquestOfAlligatorIsland.Q00354_ConquestOfAlligatorIsland;
  63.  import quests.Q00355_FamilyHonor.Q00355_FamilyHonor;
  64.  import quests.Q00356_DigUpTheSeaOfSpores.Q00356_DigUpTheSeaOfSpores;
  65. @@ -342,6 +343,7 @@
  66.         Q00333_HuntOfTheBlackLion.class,
  67.         Q00344_1000YearsTheEndOfLamentation.class,
  68.         Q00348_AnArrogantSearch.class,
  69. +       Q00350_EnhanceYourWeapon.class,
  70.         Q00354_ConquestOfAlligatorIsland.class,
  71.         Q00355_FamilyHonor.class,
  72.         Q00356_DigUpTheSeaOfSpores.class,
  73. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-06.htm
  74. ===================================================================
  75. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-06.htm (nonexistent)
  76. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-06.htm (working copy)
  77. @@ -0,0 +1,5 @@
  78. +<html><body>Grand Magister Jurek:<br>
  79. +<FONT COLOR=LEVEL>After you have sapped the evil one's strength in battle, apply the crystal to his skin. His soul will be absorbed into the crystal. His mortal body is easily dispatched.</FONT> Each soul crystal can contain up to 10 souls. <FONT COLOR=LEVEL>A more precise explanation would be that it can contain up to 10 souls with regular usage. I will tell you the detailed story later when you bring back the soul crystal with 10 souls.</FONT><br>
  80. +Actually, collecting souls for the purpose of bestowing a weapon with a special power is not as easy as it sounds.<br>
  81. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-07.htm">What are the precautions to take when collecting souls?"</button>
  82. +</body></html>
  83. \ No newline at end of file
  84. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-09.htm
  85. ===================================================================
  86. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-09.htm (nonexistent)
  87. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-09.htm (working copy)
  88. @@ -0,0 +1,4 @@
  89. +<html><body>Magister Winonin:<br>
  90. +Here is a red soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it.<br>
  91. +Next time we meet I hope you have gained more strength.
  92. +</body></html>
  93. \ No newline at end of file
  94. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-10.htm
  95. ===================================================================
  96. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-10.htm (nonexistent)
  97. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-10.htm (working copy)
  98. @@ -0,0 +1,4 @@
  99. +<html><body>Magister Winonin:<br>
  100. +Here is a green soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it.<br>
  101. +Next time we meet I hope you have gained more strength.
  102. +</body></html>
  103. \ No newline at end of file
  104. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-07.htm
  105. ===================================================================
  106. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-07.htm (nonexistent)
  107. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-07.htm (working copy)
  108. @@ -0,0 +1,6 @@
  109. +<html><body>Master Gideon:<br>
  110. +The collection of a soul doesn't always go as planned. Some evil souls will simply not be absorbed, and, if you happen to collect the wrong soul, the crystal will shatter...<br>
  111. +Soul crystals develop refined tastes, and will reject weaker souls after a while. When this happens you must seek the souls of creatures of greater evil to satisfy your crystal.<br>
  112. +Remember that you may not absorb a soul with more than one crystal because a resonance effect is created between the crystals that prevents proper absorbtion.<br>
  113. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-08.htm">Receive a soul crystal.</button>
  114. +</body></html>
  115. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-13.htm
  116. ===================================================================
  117. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-13.htm (nonexistent)
  118. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-13.htm (working copy)
  119. @@ -0,0 +1,4 @@
  120. +<html><body>Grand Magister Jurek:<br>
  121. +It seems that the most evil creatures in northern Oren are the <FONT COLOR=LEVEL>Timak Orcs.</FONT><br>
  122. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  123. +</body></html>
  124. \ No newline at end of file
  125. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-04.htm
  126. ===================================================================
  127. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-04.htm (nonexistent)
  128. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-04.htm (working copy)
  129. @@ -0,0 +1,5 @@
  130. +<html><body>Magister Winonin:<br>
  131. +Oh, marvelous! If we all develop our strengths and work together, we will triumph over the coming cataclysm. My colleagues and I have recently developed a method of enhancing weaponry that should prove quite useful to all of us.<br>
  132. +This <FONT COLOR=LEVEL>weapons enhancement</FONT> boosts strength noticeably in combat.<br>
  133. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-05.htm">Explanation of weapons enhancement</button>
  134. +</body></html>
  135. \ No newline at end of file
  136. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-03.htm
  137. ===================================================================
  138. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-03.htm (nonexistent)
  139. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-03.htm (working copy)
  140. @@ -0,0 +1,5 @@
  141. +<html><body>Grand Magister Jurek:<br>
  142. +You must hurry and collect the souls of evil creatures in the soul crystal. You will find the evil ones in the <FONT COLOR=LEVEL>northern part of Oren, the Forest of Mirrors, the Cave of Giants, the Devastated Castle, the higher reaches of the Tower of Insolence, deep within the Lair of Antharas, Eva's Underwater Garden and Devil's Isle etc...</FONT>Take the crystal filled with souls to any blacksmith and he will enhance a weapon for you.<br>
  143. +It is imperative that you build as much strength as possible to prepare yourself for the coming apocolypse. After growing each of your individual strength, if you put together all of your strengths, I think you will have enough force to fight against the approaching apocolypse. Then, next time we meet, I hope to see you stronger...<br>
  144. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-12.htm">Ask about the evil creatures from which you will collect souls.</button>
  145. +</body></html>
  146. \ No newline at end of file
  147. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-18.htm
  148. ===================================================================
  149. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-18.htm (nonexistent)
  150. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-18.htm (working copy)
  151. @@ -0,0 +1,4 @@
  152. +<html><body>Magister Winonin:<br>
  153. +It seems that the most evil creatures in the Lair of Antharas are the <FONT COLOR=LEVEL>Malruk Knights, Malruk Berserkers, Malruk Lords, Limal Karinness, Kariks, Pytans, and Pytan Knights.</FONT><br>
  154. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  155. +</body></html>
  156. \ No newline at end of file
  157. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-01.htm
  158. ===================================================================
  159. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-01.htm (nonexistent)
  160. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-01.htm (working copy)
  161. @@ -0,0 +1,4 @@
  162. +<html><body>Grand Magister Jurek:<br>
  163. +Hello there, have you come to learn how to enhance the abilities of your weapon?<br>
  164. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-02.htm">"Yes, I wish to learn more."</button>
  165. +</body></html>
  166. \ No newline at end of file
  167. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-02.htm
  168. ===================================================================
  169. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-02.htm (nonexistent)
  170. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-02.htm (working copy)
  171. @@ -0,0 +1,7 @@
  172. +<html><body>Grand Magister Jurek:<br>
  173. +I have a growing sense of dread of late. Something terrible is coming. Can you hear it? The trees in the forest, the birds in the sky and the fish in the ocean...They know of what I speak...<br>
  174. +I fear for the survival of the whole Human race, but I don't know what threatens it! This dark foreboding will not give me any peace whatsoever. I hope I am wrong but I fear I am not...<br>
  175. +I must do what I can to save my race! I will find like-minded individuals to join my preperations for the coming apocolypse. If only we knew when...<br>
  176. +Will you join my cause? Are you willing to lend a hand in preparing to fight the imminent darkness?<br>
  177. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-04.htm">"I will join your cause!"</button>
  178. +</body></html>
  179. \ No newline at end of file
  180. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-03.htm
  181. ===================================================================
  182. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-03.htm (nonexistent)
  183. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-03.htm (working copy)
  184. @@ -0,0 +1,5 @@
  185. +<html><body>Grand Magister Jurek:<br>
  186. +You must hurry and collect the souls of evil creatures in the soul crystal. You will find the evil ones in the <FONT COLOR=LEVEL>northern part of Oren, the Forest of Mirrors, the Cave of Giants, the Devastated Castle, the higher reaches of the Tower of Insolence, deep within the Lair of Antharas, Eva's Underwater Garden and Devil's Isle etc...</FONT>Take the crystal filled with souls to any blacksmith and he will enhance a weapon for you.<br>
  187. +It is imperative that you build as much strength as possible to prepare yourself for the coming apocolypse. After growing each of your individual strength, if you put together all of your strengths, I think you will have enough force to fight against the approaching apocolypse. Then, next time we meet, I hope to see you stronger...<br>
  188. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-12.htm">Ask about the evil creatures from which you will collect souls.</button>
  189. +</body></html>
  190. \ No newline at end of file
  191. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-04.htm
  192. ===================================================================
  193. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-04.htm (nonexistent)
  194. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-04.htm (working copy)
  195. @@ -0,0 +1,5 @@
  196. +<html><body>Grand Magister Jurek:<br>
  197. +Oh, marvelous! If we all develop our strengths and work together, we will triumph over the coming cataclysm. My colleagues and I have recently developed a method of enhancing weaponry that should prove quite useful to all of us.<br>
  198. +This <FONT COLOR=LEVEL>weapons enhancement</FONT> boosts strength noticeably in combat.<br>
  199. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-05.htm">Explanation of weapons enhancement</button>
  200. +</body></html>
  201. \ No newline at end of file
  202. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-05.htm
  203. ===================================================================
  204. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-05.htm (nonexistent)
  205. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-05.htm (working copy)
  206. @@ -0,0 +1,6 @@
  207. +<html><body>Grand Magister Jurek:<br>
  208. +To enhance a weapon you will need some <FONT COLOR=LEVEL>magical souls. You must collect the souls of evil creatures and trap them in the soul crystal I will give you.</FONT> You will then take the crystal to a blacksmith and he will extract the magic from the crystal and apply it to a weapon for you.<br>
  209. +All blacksmiths know how to do this, but, obviously, they don't work for free.<br>
  210. +You can collect the souls of the evil ones in the <FONT COLOR=LEVEL>northern part of Oren, the Forest of Mirrors, the Cave of Giants, the Devastated Castle, the upper floors of the Tower of Insolence, deep within the Lair of Antharas, Eva's Underwater Garden and Devil's Isle.</FONT> Enhanced weapons would greatly aid your mission.<br>
  211. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-06.htm">"How do I collect the souls of the evil ones?"</button>
  212. +</body></html>
  213. \ No newline at end of file
  214. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-06.htm
  215. ===================================================================
  216. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-06.htm (nonexistent)
  217. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-06.htm (working copy)
  218. @@ -0,0 +1,5 @@
  219. +<html><body>Grand Magister Jurek:<br>
  220. +<FONT COLOR=LEVEL>After you have sapped the evil one's strength in battle, apply the crystal to his skin. His soul will be absorbed into the crystal. His mortal body is easily dispatched.</FONT> Each soul crystal can contain up to 10 souls. <FONT COLOR=LEVEL>A more precise explanation would be that it can contain up to 10 souls with regular usage. I will tell you the detailed story later when you bring back the soul crystal with 10 souls.</FONT><br>
  221. +Actually, collecting souls for the purpose of bestowing a weapon with a special power is not as easy as it sounds.<br>
  222. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-07.htm">What are the precautions to take when collecting souls?"</button>
  223. +</body></html>
  224. \ No newline at end of file
  225. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-07.htm
  226. ===================================================================
  227. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-07.htm (nonexistent)
  228. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-07.htm (working copy)
  229. @@ -0,0 +1,6 @@
  230. +<html><body>Grand Magister Jurek:<br>
  231. +The collection of a soul doesn't always go as planned. Some evil souls will simply not be absorbed, and, if you happen to collect the wrong soul, the crystal will shatter...<br>
  232. +Soul crystals develop refined tastes, and will reject weaker souls after a while. When this happens you must seek the souls of creatures of greater evil to satisfy your crystal.<br>
  233. +Remember that you may not absorb a soul with more than one crystal because a resonance effect is created between the crystals that prevents proper absorbtion.<br>
  234. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-08.htm">Receive a soul crystal.</button>
  235. +</body></html>
  236. \ No newline at end of file
  237. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-08.htm
  238. ===================================================================
  239. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-08.htm (nonexistent)
  240. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-08.htm (working copy)
  241. @@ -0,0 +1,7 @@
  242. +<html><body>Grand Magister Jurek:<br>
  243. +Please choose one of the following three types of crystals:<br>
  244. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-09.htm">Red Soul Crystal</button>
  245. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-10.htm">Green Soul Crystal</button>
  246. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-11.htm">Blue Soul Crystal</button>
  247. +Each crystal bestows a different power upon the weapon it enhances, and the powers may vary from weapon to weapon.
  248. +</body></html>
  249. \ No newline at end of file
  250. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-09.htm
  251. ===================================================================
  252. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-09.htm (nonexistent)
  253. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-09.htm (working copy)
  254. @@ -0,0 +1,4 @@
  255. +<html><body>Grand Magister Jurek:<br>
  256. +Here is a red soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it.<br>
  257. +Next time we meet I hope you have gained more strength.
  258. +</body></html>
  259. \ No newline at end of file
  260. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-10.htm
  261. ===================================================================
  262. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-10.htm (nonexistent)
  263. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-10.htm (working copy)
  264. @@ -0,0 +1,4 @@
  265. +<html><body>Grand Magister Jurek:<br>
  266. +Here is a green soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it.<br>
  267. +Next time we meet I hope you have gained more strength.
  268. +</body></html>
  269. \ No newline at end of file
  270. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-11.htm
  271. ===================================================================
  272. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-11.htm (nonexistent)
  273. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-11.htm (working copy)
  274. @@ -0,0 +1,4 @@
  275. +<html><body>Grand Magister Jurek:<br>
  276. +Here is a blue soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it.<br>
  277. +Next time we meet I hope you have gained more strength.
  278. +</body></html>
  279. \ No newline at end of file
  280. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-12.htm
  281. ===================================================================
  282. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-12.htm (nonexistent)
  283. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-12.htm (working copy)
  284. @@ -0,0 +1,11 @@
  285. +<html><body>Grand Magister Jurek:<br>
  286. +From the following areas, which area's evil creatures would you like to obtain more information about?<br>
  287. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-13.htm">Northern Oren</button>
  288. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-14.htm">Forest of Mirrors</button>
  289. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-15.htm">Cave of Giants</button>
  290. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-16.htm">Devastated Castle</button>
  291. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-17.htm">Tower of Insolence</button>
  292. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-18.htm">Lair of Antharas</button>
  293. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-19.htm">Eva's Underwater Garden</button>
  294. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-20.htm">Devil's Isle</button>
  295. +</body></html>
  296. \ No newline at end of file
  297. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-13.htm
  298. ===================================================================
  299. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-13.htm (nonexistent)
  300. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-13.htm (working copy)
  301. @@ -0,0 +1,4 @@
  302. +<html><body>Grand Magister Jurek:<br>
  303. +It seems that the most evil creatures in northern Oren are the <FONT COLOR=LEVEL>Timak Orcs.</FONT><br>
  304. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  305. +</body></html>
  306. \ No newline at end of file
  307. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-14.htm
  308. ===================================================================
  309. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-14.htm (nonexistent)
  310. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-14.htm (working copy)
  311. @@ -0,0 +1,4 @@
  312. +<html><body>Grand Magister Jurek:<br>
  313. +It seems that the most evil creatures in the Forest of Mirrors are the <FONT COLOR=LEVEL>Forest of Mirror ghosts, mirrors and Harit Lizardmen.</FONT><br>
  314. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  315. +</body></html>
  316. \ No newline at end of file
  317. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-15.htm
  318. ===================================================================
  319. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-15.htm (nonexistent)
  320. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-15.htm (working copy)
  321. @@ -0,0 +1,4 @@
  322. +<html><body>Grand Magister Jurek:<br>
  323. +It seems that the most evil creatures in the Cave of Giants are the <FONT COLOR=LEVEL>Halingkas, Yintzus, Paliotes, Hamruts, and Kranrots.</FONT><br>
  324. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  325. +</body></html>
  326. \ No newline at end of file
  327. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-16.htm
  328. ===================================================================
  329. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-16.htm (nonexistent)
  330. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-16.htm (working copy)
  331. @@ -0,0 +1,4 @@
  332. +<html><body>Grand Magister Jurek:<br>
  333. +It seems that the most evil creatures in the Devastated Castle are the <FONT COLOR=LEVEL>Doom Servants, Doom Guards, Doom Archers, Doom Troopers, Doom Warriors, and Doom Knights.</FONT><br>
  334. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  335. +</body></html>
  336. \ No newline at end of file
  337. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-17.htm
  338. ===================================================================
  339. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-17.htm (nonexistent)
  340. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-17.htm (working copy)
  341. @@ -0,0 +1,4 @@
  342. +<html><body>Grand Magister Jurekn:<br>
  343. +It seems that the most evil creatures in the Tower of Insolence are the <FONT COLOR=LEVEL>Erin Ediunce, members of the Platinum Tribe and their Angels.</FONT><br>
  344. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  345. +</body></html>
  346. \ No newline at end of file
  347. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-18.htm
  348. ===================================================================
  349. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-18.htm (nonexistent)
  350. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-18.htm (working copy)
  351. @@ -0,0 +1,4 @@
  352. +<html><body>Grand Magister Jurek:<br>
  353. +It seems that the most evil creatures in the Lair of Antharas are the <FONT COLOR=LEVEL>Malruk Knights, Malruk Berserkers, Malruk Lords, Limal Karinness, Kariks, Pytans, and Pytan Knights.</FONT><br>
  354. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  355. +</body></html>
  356. \ No newline at end of file
  357. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-19.htm
  358. ===================================================================
  359. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-19.htm (nonexistent)
  360. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-19.htm (working copy)
  361. @@ -0,0 +1,4 @@
  362. +<html><body>Grand Magister Jurek:<br>
  363. +It seems that <FONT COLOR=LEVEL>all of the evil creatures inhabiting Eva's Underwater Garden</FONT> are appropriate soul donors.<br>
  364. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  365. +</body></html>
  366. \ No newline at end of file
  367. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-20.htm
  368. ===================================================================
  369. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-20.htm (nonexistent)
  370. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-20.htm (working copy)
  371. @@ -0,0 +1,4 @@
  372. +<html><body>Grand Magister Jurek:<br>
  373. +It seems that <FONT COLOR=LEVEL>all of the evil creatures inhabiting Devil's Isle</FONT> are appropriate soul donors.<br>
  374. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  375. +</body></html>
  376. \ No newline at end of file
  377. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-21.htm
  378. ===================================================================
  379. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-21.htm (nonexistent)
  380. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-21.htm (working copy)
  381. @@ -0,0 +1,5 @@
  382. +<html><body>Grand Magister Jurek:<br>
  383. +How is your mission going? Oh, I see that you need a new crystal!<br>
  384. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-08.htm">"Yes, please, may I have another?"</button>
  385. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon exit.htm">"Quit"</button>
  386. +</body></html>
  387. \ No newline at end of file
  388. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-01.htm
  389. ===================================================================
  390. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-01.htm (nonexistent)
  391. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-01.htm (working copy)
  392. @@ -0,0 +1,4 @@
  393. +<html><body>Master Gideon:<br>
  394. +Hello there, have you come to learn how to enhance the abilities of your weapon?<br>
  395. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-02.htm">"Yes, I wish to learn more."</button>
  396. +</body></html>
  397. \ No newline at end of file
  398. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-02.htm
  399. ===================================================================
  400. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-02.htm (nonexistent)
  401. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-02.htm (working copy)
  402. @@ -0,0 +1,7 @@
  403. +<html><body>Master Gideon:<br>
  404. +I have a growing sense of dread of late. Something terrible is coming. Can you hear it? The trees in the forest, the birds in the sky and the fish in the ocean...They know of what I speak...<br>
  405. +I fear for the survival of the whole Human race, but I don't know what threatens it! This dark foreboding will not give me any peace whatsoever. I hope I am wrong but I fear I am not...<br>
  406. +I must do what I can to save my race! I will find like-minded individuals to join my preperations for the coming apocolypse. If only we knew when...<br>
  407. +Will you join my cause? Are you willing to lend a hand in preparing to fight the imminent darkness?<br>
  408. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-04.htm">"I will join your cause!"</button>
  409. +</body></html>
  410. \ No newline at end of file
  411. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-03.htm
  412. ===================================================================
  413. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-03.htm (nonexistent)
  414. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-03.htm (working copy)
  415. @@ -0,0 +1,5 @@
  416. +<html><body>Master Gideon:<br>
  417. +You must hurry and collect the souls of evil creatures in the soul crystal. You will find the evil ones in the <FONT COLOR=LEVEL>northern part of Oren, the Forest of Mirrors, the Cave of Giants, the Devastated Castle, the higher reaches of the Tower of Insolence, deep within the Lair of Antharas, Eva's Underwater Garden and Devil's Isle etc...</FONT>Take the crystal filled with souls to any blacksmith and he will enhance a weapon for you.<br>
  418. +It is imperative that you build as much strength as possible to prepare yourself for the coming apocolypse. After growing each of your individual strength, if you put together all of your strengths, I think you will have enough force to fight against the approaching apocolypse. Then, next time we meet, I hope to see you stronger...<br>
  419. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-12.htm">Ask about the evil creatures from which you will collect souls.</button>
  420. +</body></html>
  421. \ No newline at end of file
  422. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-04.htm
  423. ===================================================================
  424. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-04.htm (nonexistent)
  425. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-04.htm (working copy)
  426. @@ -0,0 +1,5 @@
  427. +<html><body>Master Gideon:<br>
  428. +Oh, marvelous! If we all develop our strengths and work together, we will triumph over the coming cataclysm. My colleagues and I have recently developed a method of enhancing weaponry that should prove quite useful to all of us.<br>
  429. +This <FONT COLOR=LEVEL>weapons enhancement</FONT> boosts strength noticeably in combat.<br>
  430. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-05.htm">Explanation of weapons enhancement</button>
  431. +</body></html>
  432. \ No newline at end of file
  433. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-05.htm
  434. ===================================================================
  435. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-05.htm (nonexistent)
  436. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-05.htm (working copy)
  437. @@ -0,0 +1,6 @@
  438. +<html><body>Master Gideon:<br>
  439. +To enhance a weapon you will need some <FONT COLOR=LEVEL>magical souls. You must collect the souls of evil creatures and trap them in the soul crystal I will give you.</FONT> You will then take the crystal to a blacksmith and he will extract the magic from the crystal and apply it to a weapon for you.<br>
  440. +All blacksmiths know how to do this, but, obviously, they don't work for free.<br>
  441. +You can collect the souls of the evil ones in the <FONT COLOR=LEVEL>northern part of Oren, the Forest of Mirrors, the Cave of Giants, the Devastated Castle, the upper floors of the Tower of Insolence, deep within the Lair of Antharas, Eva's Underwater Garden and Devil's Isle.</FONT> Enhanced weapons would greatly aid your mission.<br>
  442. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-06.htm">"How do I collect the souls of the evil ones?"</button>
  443. +</body></html>
  444. \ No newline at end of file
  445. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-06.htm
  446. ===================================================================
  447. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-06.htm (nonexistent)
  448. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-06.htm (working copy)
  449. @@ -0,0 +1,5 @@
  450. +<html><body>Master Gideon:<br>
  451. +<FONT COLOR=LEVEL>After you have sapped the evil one's strength in battle, apply the crystal to his skin. His soul will be absorbed into the crystal. His mortal body is easily dispatched.</FONT> Each soul crystal can contain up to 10 souls. <FONT COLOR=LEVEL>A more precise explanation would be that it can contain up to 10 souls with regular usage. I will tell you the detailed story later when you bring back the soul crystal with 10 souls.</FONT><br>
  452. +Actually, collecting souls for the purpose of bestowing a weapon with a special power is not as easy as it sounds.<br>
  453. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-07.htm">What are the precautions to take when collecting souls?"</button>
  454. +</body></html>
  455. \ No newline at end of file
  456. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-07.htm
  457. ===================================================================
  458. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-07.htm (nonexistent)
  459. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-07.htm (working copy)
  460. @@ -0,0 +1,6 @@
  461. +<html><body>Master Gideon:<br>
  462. +The collection of a soul doesn't always go as planned. Some evil souls will simply not be absorbed, and, if you happen to collect the wrong soul, the crystal will shatter...<br>
  463. +Soul crystals develop refined tastes, and will reject weaker souls after a while. When this happens you must seek the souls of creatures of greater evil to satisfy your crystal.<br>
  464. +Remember that you may not absorb a soul with more than one crystal because a resonance effect is created between the crystals that prevents proper absorbtion.<br>
  465. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-08.htm">Receive a soul crystal.</button>
  466. +</body></html>
  467. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-08.htm
  468. ===================================================================
  469. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-08.htm (nonexistent)
  470. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-08.htm (working copy)
  471. @@ -0,0 +1,7 @@
  472. +<html><body>Master Gideon:<br>
  473. +Please choose one of the following three types of crystals:<br>
  474. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-09.htm">Red Soul Crystal</button>
  475. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-10.htm">Green Soul Crystal</button>
  476. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-11.htm">Blue Soul Crystal</button>
  477. +Each crystal bestows a different power upon the weapon it enhances, and the powers may vary from weapon to weapon.
  478. +</body></html>
  479. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-09.htm
  480. ===================================================================
  481. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-09.htm (nonexistent)
  482. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-09.htm (working copy)
  483. @@ -0,0 +1,4 @@
  484. +<html><body>Master Gideon:<br>
  485. +Here is a red soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it.<br>
  486. +Next time we meet I hope you have gained more strength.
  487. +</body></html>
  488. \ No newline at end of file
  489. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-10.htm
  490. ===================================================================
  491. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-10.htm (nonexistent)
  492. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-10.htm (working copy)
  493. @@ -0,0 +1,4 @@
  494. +<html><body>Master Gideon:<br>
  495. +Here is a green soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it.<br>
  496. +Next time we meet I hope you have gained more strength.
  497. +</body></html>
  498. \ No newline at end of file
  499. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-11.htm
  500. ===================================================================
  501. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-11.htm (nonexistent)
  502. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-11.htm (working copy)
  503. @@ -0,0 +1,4 @@
  504. +<html><body>Master Gideon:<br>
  505. +Here is a blue soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it.<br>
  506. +Next time we meet I hope you have gained more strength.
  507. +</body></html>
  508. \ No newline at end of file
  509. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-12.htm
  510. ===================================================================
  511. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-12.htm (nonexistent)
  512. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-12.htm (working copy)
  513. @@ -0,0 +1,11 @@
  514. +<html><body>Master Gideon:<br>
  515. +From the following areas, which area's evil creatures would you like to obtain more information about?<br>
  516. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-13.htm">Northern Oren</button>
  517. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-14.htm">Forest of Mirrors</button>
  518. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-15.htm">Cave of Giants</button>
  519. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-16.htm">Devastated Castle</button>
  520. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-17.htm">Tower of Insolence</button>
  521. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-18.htm">Lair of Antharas</button>
  522. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-19.htm">Eva's Underwater Garden</button>
  523. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-20.htm">Devil's Isle</button>
  524. +</body></html>
  525. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-13.htm
  526. ===================================================================
  527. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-13.htm (nonexistent)
  528. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-13.htm (working copy)
  529. @@ -0,0 +1,4 @@
  530. +<html><body>Master Gideon:<br>
  531. +It seems that the most evil creatures in northern Oren are the <FONT COLOR=LEVEL>Timak Orcs.</FONT><br>
  532. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  533. +</body></html>
  534. \ No newline at end of file
  535. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-14.htm
  536. ===================================================================
  537. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-14.htm (nonexistent)
  538. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-14.htm (working copy)
  539. @@ -0,0 +1,4 @@
  540. +<html><body>Master Gideon:<br>
  541. +It seems that the most evil creatures in the Forest of Mirrors are the <FONT COLOR=LEVEL>Forest of Mirror ghosts, mirrors and Harit Lizardmen.</FONT><br>
  542. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  543. +</body></html>
  544. \ No newline at end of file
  545. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-15.htm
  546. ===================================================================
  547. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-15.htm (nonexistent)
  548. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-15.htm (working copy)
  549. @@ -0,0 +1,4 @@
  550. +<html><body>Master Gideon:<br>
  551. +It seems that the most evil creatures in the Cave of Giants are the <FONT COLOR=LEVEL>Halingkas, Yintzus, Paliotes, Hamruts, and Kranrots.</FONT><br>
  552. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  553. +</body></html>
  554. \ No newline at end of file
  555. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-16.htm
  556. ===================================================================
  557. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-16.htm (nonexistent)
  558. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-16.htm (working copy)
  559. @@ -0,0 +1,4 @@
  560. +<html><body>Master Gideon:<br>
  561. +It seems that the most evil creatures in the Devastated Castle are the <FONT COLOR=LEVEL>Doom Servants, Doom Guards, Doom Archers, Doom Troopers, Doom Warriors, and Doom Knights.</FONT><br>
  562. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  563. +</body></html>
  564. \ No newline at end of file
  565. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-17.htm
  566. ===================================================================
  567. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-17.htm (nonexistent)
  568. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-17.htm (working copy)
  569. @@ -0,0 +1,4 @@
  570. +<html><body>Master Gideon:<br>
  571. +It seems that the most evil creatures in the Tower of Insolence are the <FONT COLOR=LEVEL>Erin Ediunce, members of the Platinum Tribe and their Angels.</FONT><br>
  572. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  573. +</body></html>
  574. \ No newline at end of file
  575. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-18.htm
  576. ===================================================================
  577. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-18.htm (nonexistent)
  578. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-18.htm (working copy)
  579. @@ -0,0 +1,4 @@
  580. +<html><body>Master Gideon:<br>
  581. +It seems that the most evil creatures in the Lair of Antharas are the <FONT COLOR=LEVEL>Malruk Knights, Malruk Berserkers, Malruk Lords, Limal Karinness, Kariks, Pytans, and Pytan Knights.</FONT><br>
  582. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  583. +</body></html>
  584. \ No newline at end of file
  585. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-19.htm
  586. ===================================================================
  587. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-19.htm (nonexistent)
  588. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-19.htm (working copy)
  589. @@ -0,0 +1,4 @@
  590. +<html><body>Master Gideon:<br>
  591. +It seems that <FONT COLOR=LEVEL>all of the evil creatures inhabiting Eva's Underwater Garden</FONT> are appropriate soul donors.<br>
  592. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  593. +</body></html>
  594. \ No newline at end of file
  595. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-20.htm
  596. ===================================================================
  597. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-20.htm (nonexistent)
  598. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-20.htm (working copy)
  599. @@ -0,0 +1,4 @@
  600. +<html><body>Master Gideon:<br>
  601. +It seems that <FONT COLOR=LEVEL>all of the evil creatures inhabiting Devil's Isle</FONT> are appropriate soul donors.<br>
  602. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  603. +</body></html>
  604. \ No newline at end of file
  605. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-21.htm
  606. ===================================================================
  607. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-21.htm (nonexistent)
  608. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-21.htm (working copy)
  609. @@ -0,0 +1,5 @@
  610. +<html><body>Master Gideon:<br>
  611. +How is your mission going? Oh, I see that you need a new crystal!<br>
  612. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-08.htm">"Yes, please, may I have another?"</button>
  613. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon exit.htm">"Quit"</button>
  614. +</body></html>
  615. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-01.htm
  616. ===================================================================
  617. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-01.htm (nonexistent)
  618. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-01.htm (working copy)
  619. @@ -0,0 +1,4 @@
  620. +<html><body>Magister Winonin:<br>
  621. +Hello there, have you come to learn how to enhance the abilities of your weapon?<br>
  622. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-02.htm">"Yes, I wish to learn more."</button>
  623. +</body></html>
  624. \ No newline at end of file
  625. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-02.htm
  626. ===================================================================
  627. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-02.htm (nonexistent)
  628. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-02.htm (working copy)
  629. @@ -0,0 +1,7 @@
  630. +<html><body>Magister Winonin:<br>
  631. +I have a growing sense of dread of late. Something terrible is coming. Can you hear it? The trees in the forest, the birds in the sky and the fish in the ocean...They know of what I speak...<br>
  632. +I fear for the survival of the whole Human race, but I don't know what threatens it! This dark foreboding will not give me any peace whatsoever. I hope I am wrong but I fear I am not...<br>
  633. +I must do what I can to save my race! I will find like-minded individuals to join my preperations for the coming apocolypse. If only we knew when...<br>
  634. +Will you join my cause? Are you willing to lend a hand in preparing to fight the imminent darkness?<br>
  635. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-04.htm">"I will join your cause!"</button>
  636. +</body></html>
  637. \ No newline at end of file
  638. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-03.htm
  639. ===================================================================
  640. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-03.htm (nonexistent)
  641. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-03.htm (working copy)
  642. @@ -0,0 +1,5 @@
  643. +<html><body>Magister Winonin:<br>
  644. +You must hurry and collect the souls of evil creatures in the soul crystal. You will find the evil ones in the <FONT COLOR=LEVEL>northern part of Oren, the Forest of Mirrors, the Cave of Giants, the Devastated Castle, the higher reaches of the Tower of Insolence, deep within the Lair of Antharas, Eva's Underwater Garden and Devil's Isle etc...</FONT>Take the crystal filled with souls to any blacksmith and he will enhance a weapon for you.<br>
  645. +It is imperative that you build as much strength as possible to prepare yourself for the coming apocolypse. After growing each of your individual strength, if you put together all of your strengths, I think you will have enough force to fight against the approaching apocolypse. Then, next time we meet, I hope to see you stronger...<br>
  646. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-12.htm">Ask about the evil creatures from which you will collect souls.</button>
  647. +</body></html>
  648. \ No newline at end of file
  649. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-04.htm
  650. ===================================================================
  651. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-04.htm (nonexistent)
  652. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-04.htm (working copy)
  653. @@ -0,0 +1,5 @@
  654. +<html><body>Magister Winonin:<br>
  655. +Oh, marvelous! If we all develop our strengths and work together, we will triumph over the coming cataclysm. My colleagues and I have recently developed a method of enhancing weaponry that should prove quite useful to all of us.<br>
  656. +This <FONT COLOR=LEVEL>weapons enhancement</FONT> boosts strength noticeably in combat.<br>
  657. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-05.htm">Explanation of weapons enhancement</button>
  658. +</body></html>
  659. \ No newline at end of file
  660. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-05.htm
  661. ===================================================================
  662. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-05.htm (nonexistent)
  663. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-05.htm (working copy)
  664. @@ -0,0 +1,6 @@
  665. +<html><body>Magister Winonin:<br>
  666. +To enhance a weapon you will need some <FONT COLOR=LEVEL>magical souls. You must collect the souls of evil creatures and trap them in the soul crystal I will give you.</FONT> You will then take the crystal to a blacksmith and he will extract the magic from the crystal and apply it to a weapon for you.<br>
  667. +All blacksmiths know how to do this, but, obviously, they don't work for free.<br>
  668. +You can collect the souls of the evil ones in the <FONT COLOR=LEVEL>northern part of Oren, the Forest of Mirrors, the Cave of Giants, the Devastated Castle, the upper floors of the Tower of Insolence, deep within the Lair of Antharas, Eva's Underwater Garden and Devil's Isle.</FONT> Enhanced weapons would greatly aid your mission.<br>
  669. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-06.htm">"How do I collect the souls of the evil ones?"</button>
  670. +</body></html>
  671. \ No newline at end of file
  672. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-06.htm
  673. ===================================================================
  674. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-06.htm (nonexistent)
  675. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-06.htm (working copy)
  676. @@ -0,0 +1,5 @@
  677. +<html><body>Magister Winonin:<br>
  678. +<FONT COLOR=LEVEL>After you have sapped the evil one's strength in battle, apply the crystal to his skin. His soul will be absorbed into the crystal. His mortal body is easily dispatched.</FONT> Each soul crystal can contain up to 10 souls. <FONT COLOR=LEVEL>A more precise explanation would be that it can contain up to 10 souls with regular usage. I will tell you the detailed story later when you bring back the soul crystal with 10 souls.</FONT><br>
  679. +Actually, collecting souls for the purpose of bestowing a weapon with a special power is not as easy as it sounds.<br>
  680. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-07.htm">What are the precautions to take when collecting souls?"</button>
  681. +</body></html>
  682. \ No newline at end of file
  683. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-07.htm
  684. ===================================================================
  685. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-07.htm (nonexistent)
  686. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-07.htm (working copy)
  687. @@ -0,0 +1,6 @@
  688. +<html><body>Magister Winonin:<br>
  689. +The collection of a soul doesn't always go as planned. Some evil souls will simply not be absorbed, and, if you happen to collect the wrong soul, the crystal will shatter...<br>
  690. +Soul crystals develop refined tastes, and will reject weaker souls after a while. When this happens you must seek the souls of creatures of greater evil to satisfy your crystal.<br>
  691. +Remember that you may not absorb a soul with more than one crystal because a resonance effect is created between the crystals that prevents proper absorbtion.<br>
  692. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-08.htm">Receive a soul crystal.</button>
  693. +</body></html>
  694. \ No newline at end of file
  695. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-08.htm
  696. ===================================================================
  697. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-08.htm (nonexistent)
  698. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-08.htm (working copy)
  699. @@ -0,0 +1,7 @@
  700. +<html><body>Magister Winonin:<br>
  701. +Please choose one of the following three types of crystals:<br>
  702. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-09.htm">Red Soul Crystal</button>
  703. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-10.htm">Green Soul Crystal</button>
  704. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-11.htm">Blue Soul Crystal</button>
  705. +Each crystal bestows a different power upon the weapon it enhances, and the powers may vary from weapon to weapon.
  706. +</body></html>
  707. \ No newline at end of file
  708. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-09.htm
  709. ===================================================================
  710. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-09.htm (nonexistent)
  711. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-09.htm (working copy)
  712. @@ -0,0 +1,4 @@
  713. +<html><body>Magister Winonin:<br>
  714. +Here is a red soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it.<br>
  715. +Next time we meet I hope you have gained more strength.
  716. +</body></html>
  717. \ No newline at end of file
  718. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-10.htm
  719. ===================================================================
  720. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-10.htm (nonexistent)
  721. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-10.htm (working copy)
  722. @@ -0,0 +1,4 @@
  723. +<html><body>Magister Winonin:<br>
  724. +Here is a green soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it.<br>
  725. +Next time we meet I hope you have gained more strength.
  726. +</body></html>
  727. \ No newline at end of file
  728. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-11.htm
  729. ===================================================================
  730. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-11.htm (nonexistent)
  731. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-11.htm (working copy)
  732. @@ -0,0 +1,4 @@
  733. +<html><body>Magister Winonin:<br>
  734. +Here is a blue soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it.<br>
  735. +Next time we meet I hope you have gained more strength.
  736. +</body></html>
  737. \ No newline at end of file
  738. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-12.htm
  739. ===================================================================
  740. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-12.htm (nonexistent)
  741. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-12.htm (working copy)
  742. @@ -0,0 +1,11 @@
  743. +<html><body>Magister Winonin:<br>
  744. +From the following areas, which area's evil creatures would you like to obtain more information about?<br>
  745. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-13.htm">Northern Oren</button>
  746. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-14.htm">Forest of Mirrors</button>
  747. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-15.htm">Cave of Giants</button>
  748. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-16.htm">Devastated Castle</button>
  749. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-17.htm">Tower of Insolence</button>
  750. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-18.htm">Lair of Antharas</button>
  751. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-19.htm">Eva's Underwater Garden</button>
  752. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-20.htm">Devil's Isle</button>
  753. +</body></html>
  754. \ No newline at end of file
  755. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-13.htm
  756. ===================================================================
  757. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-13.htm (nonexistent)
  758. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-13.htm (working copy)
  759. @@ -0,0 +1,4 @@
  760. +<html><body>Magister Winonin:<br>
  761. +It seems that the most evil creatures in northern Oren are the <FONT COLOR=LEVEL>Timak Orcs.</FONT><br>
  762. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  763. +</body></html>
  764. \ No newline at end of file
  765. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-14.htm
  766. ===================================================================
  767. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-14.htm (nonexistent)
  768. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-14.htm (working copy)
  769. @@ -0,0 +1,4 @@
  770. +<html><body>Magister Winonin:<br>
  771. +It seems that the most evil creatures in the Forest of Mirrors are the <FONT COLOR=LEVEL>Forest of Mirror ghosts, mirrors and Harit Lizardmen.</FONT><br>
  772. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  773. +</body></html>
  774. \ No newline at end of file
  775. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-15.htm
  776. ===================================================================
  777. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-15.htm (nonexistent)
  778. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-15.htm (working copy)
  779. @@ -0,0 +1,4 @@
  780. +<html><body>Magister Winonin:<br>
  781. +It seems that the most evil creatures in the Cave of Giants are the <FONT COLOR=LEVEL>Halingkas, Yintzus, Paliotes, Hamruts, and Kranrots.</FONT><br>
  782. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  783. +</body></html>
  784. \ No newline at end of file
  785. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-16.htm
  786. ===================================================================
  787. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-16.htm (nonexistent)
  788. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-16.htm (working copy)
  789. @@ -0,0 +1,4 @@
  790. +<html><body>Magister Winonin:<br>
  791. +It seems that the most evil creatures in the Devastated Castle are the <FONT COLOR=LEVEL>Doom Servants, Doom Guards, Doom Archers, Doom Troopers, Doom Warriors, and Doom Knights.</FONT><br>
  792. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  793. +</body></html>
  794. \ No newline at end of file
  795. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-17.htm
  796. ===================================================================
  797. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-17.htm (nonexistent)
  798. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-17.htm (working copy)
  799. @@ -0,0 +1,4 @@
  800. +<html><body>Magister Winonin:<br>
  801. +It seems that the most evil creatures in the Tower of Insolence are the <FONT COLOR=LEVEL>Erin Ediunce, members of the Platinum Tribe and their Angels.</FONT><br>
  802. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  803. +</body></html>
  804. \ No newline at end of file
  805. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-18.htm
  806. ===================================================================
  807. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-18.htm (nonexistent)
  808. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-18.htm (working copy)
  809. @@ -0,0 +1,4 @@
  810. +<html><body>Magister Winonin:<br>
  811. +It seems that the most evil creatures in the Lair of Antharas are the <FONT COLOR=LEVEL>Malruk Knights, Malruk Berserkers, Malruk Lords, Limal Karinness, Kariks, Pytans, and Pytan Knights.</FONT><br>
  812. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  813. +</body></html>
  814. \ No newline at end of file
  815. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-19.htm
  816. ===================================================================
  817. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-19.htm (nonexistent)
  818. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-19.htm (working copy)
  819. @@ -0,0 +1,4 @@
  820. +<html><body>Magister Winonin:<br>
  821. +It seems that <FONT COLOR=LEVEL>all of the evil creatures inhabiting Eva's Underwater Garden</FONT> are appropriate soul donors.<br>
  822. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  823. +</body></html>
  824. \ No newline at end of file
  825. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-20.htm
  826. ===================================================================
  827. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-20.htm (nonexistent)
  828. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-20.htm (working copy)
  829. @@ -0,0 +1,4 @@
  830. +<html><body>Magister Winonin:<br>
  831. +It seems that <FONT COLOR=LEVEL>all of the evil creatures inhabiting Devil's Isle</FONT> are appropriate soul donors.<br>
  832. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  833. +</body></html>
  834. \ No newline at end of file
  835. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-21.htm
  836. ===================================================================
  837. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-21.htm (nonexistent)
  838. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-21.htm (working copy)
  839. @@ -0,0 +1,5 @@
  840. +<html><body>Magister Winonin:<br>
  841. +How is your mission going? Oh, I see that you need a new crystal!<br>
  842. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-08.htm">"Yes, please, may I have another?"</button>
  843. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon exit.htm">"Quit"</button>
  844. +</body></html>
  845. \ No newline at end of file
  846. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/Q00350_EnhanceYourWeapon.java
  847. ===================================================================
  848. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/Q00350_EnhanceYourWeapon.java    (nonexistent)
  849. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/Q00350_EnhanceYourWeapon.java    (working copy)
  850. @@ -0,0 +1,662 @@
  851. +/*
  852. + * This file is part of the L2J Mobius project.
  853. + *
  854. + * This program is free software: you can redistribute it and/or modify
  855. + * it under the terms of the GNU General Public License as published by
  856. + * the Free Software Foundation, either version 3 of the License, or
  857. + * (at your option) any later version.
  858. + *
  859. + * This program is distributed in the hope that it will be useful,
  860. + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  861. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  862. + * General Public License for more details.
  863. + *
  864. + * You should have received a copy of the GNU General Public License
  865. + * along with this program. If not, see <http://www.gnu.org/licenses/>.
  866. + */
  867. +package quests.Q00350_EnhanceYourWeapon;
  868. +
  869. +import java.io.File;
  870. +import java.util.ArrayList;
  871. +import java.util.Collection;
  872. +import java.util.HashMap;
  873. +import java.util.List;
  874. +import java.util.Map;
  875. +import java.util.StringTokenizer;
  876. +import java.util.logging.Level;
  877. +
  878. +import javax.xml.parsers.DocumentBuilderFactory;
  879. +
  880. +import org.w3c.dom.Document;
  881. +import org.w3c.dom.NamedNodeMap;
  882. +import org.w3c.dom.Node;
  883. +
  884. +import org.l2jmobius.Config;
  885. +import org.l2jmobius.gameserver.model.AbsorberInfo;
  886. +import org.l2jmobius.gameserver.model.WorldObject;
  887. +import org.l2jmobius.gameserver.model.actor.Attackable;
  888. +import org.l2jmobius.gameserver.model.actor.Npc;
  889. +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
  890. +import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
  891. +import org.l2jmobius.gameserver.model.quest.Quest;
  892. +import org.l2jmobius.gameserver.model.quest.QuestState;
  893. +import org.l2jmobius.gameserver.model.quest.State;
  894. +import org.l2jmobius.gameserver.model.skills.Skill;
  895. +import org.l2jmobius.gameserver.network.SystemMessageId;
  896. +import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
  897. +import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
  898. +
  899. +/**
  900. + * Enhance Your Weapon (350)
  901. + * @author Gigiikun
  902. + */
  903. +public class Q00350_EnhanceYourWeapon extends Quest
  904. +{
  905. +   private enum AbsorbCrystalType
  906. +   {
  907. +       LAST_HIT,
  908. +       FULL_PARTY,
  909. +       PARTY_ONE_RANDOM,
  910. +       PARTY_RANDOM
  911. +   }
  912. +  
  913. +   private static final class LevelingInfo
  914. +   {
  915. +       private final AbsorbCrystalType _absorbCrystalType;
  916. +       private final boolean _isSkillNeeded;
  917. +       private final int _chance;
  918. +      
  919. +       public LevelingInfo(AbsorbCrystalType absorbCrystalType, boolean isSkillNeeded, int chance)
  920. +       {
  921. +           _absorbCrystalType = absorbCrystalType;
  922. +           _isSkillNeeded = isSkillNeeded;
  923. +           _chance = chance;
  924. +       }
  925. +      
  926. +       public AbsorbCrystalType getAbsorbCrystalType()
  927. +       {
  928. +           return _absorbCrystalType;
  929. +       }
  930. +      
  931. +       public int getChance()
  932. +       {
  933. +           return _chance;
  934. +       }
  935. +      
  936. +       public boolean isSkillNeeded()
  937. +       {
  938. +           return _isSkillNeeded;
  939. +       }
  940. +   }
  941. +  
  942. +   private static final class SoulCrystal
  943. +   {
  944. +       private final int _level;
  945. +       private final int _itemId;
  946. +       private final int _leveledItemId;
  947. +      
  948. +       public SoulCrystal(int level, int itemId, int leveledItemId)
  949. +       {
  950. +           _level = level;
  951. +           _itemId = itemId;
  952. +           _leveledItemId = leveledItemId;
  953. +       }
  954. +      
  955. +       public int getItemId()
  956. +       {
  957. +           return _itemId;
  958. +       }
  959. +      
  960. +       public int getLevel()
  961. +       {
  962. +           return _level;
  963. +       }
  964. +      
  965. +       public int getLeveledItemId()
  966. +       {
  967. +           return _leveledItemId;
  968. +       }
  969. +   }
  970. +  
  971. +   // NPCs
  972. +   private static final int[] STARTING_NPCS =
  973. +   {
  974. +       30115,
  975. +       30856,
  976. +       30194
  977. +   };
  978. +   // Items
  979. +   private static final int RED_SOUL_CRYSTAL0_ID = 4629;
  980. +   private static final int GREEN_SOUL_CRYSTAL0_ID = 4640;
  981. +   private static final int BLUE_SOUL_CRYSTAL0_ID = 4651;
  982. +  
  983. +   private static final Map<Integer, SoulCrystal> SOUL_CRYSTALS = new HashMap<>();
  984. +   // <npcid, <level, LevelingInfo>>
  985. +   private static final Map<Integer, Map<Integer, LevelingInfo>> NPC_LEVELING_INFO = new HashMap<>();
  986. +  
  987. +   public Q00350_EnhanceYourWeapon()
  988. +   {
  989. +       super(350);
  990. +       addStartNpc(STARTING_NPCS);
  991. +       addTalkId(STARTING_NPCS);
  992. +       load();
  993. +       for (int npcId : NPC_LEVELING_INFO.keySet())
  994. +       {
  995. +           addSkillSeeId(npcId);
  996. +           addKillId(npcId);
  997. +       }
  998. +   }
  999. +  
  1000. +   @Override
  1001. +   public String onAdvEvent(String event, Npc npc, PlayerInstance player)
  1002. +   {
  1003. +       final String htmltext = event;
  1004. +       final QuestState qs = getQuestState(player, false);
  1005. +       if (event.endsWith("-04.htm"))
  1006. +       {
  1007. +           qs.startQuest();
  1008. +       }
  1009. +       else if (event.endsWith("-09.htm"))
  1010. +       {
  1011. +           giveItems(player, RED_SOUL_CRYSTAL0_ID, 1);
  1012. +       }
  1013. +       else if (event.endsWith("-10.htm"))
  1014. +       {
  1015. +           giveItems(player, GREEN_SOUL_CRYSTAL0_ID, 1);
  1016. +       }
  1017. +       else if (event.endsWith("-11.htm"))
  1018. +       {
  1019. +           giveItems(player, BLUE_SOUL_CRYSTAL0_ID, 1);
  1020. +       }
  1021. +       else if (event.equalsIgnoreCase("exit.htm"))
  1022. +       {
  1023. +           qs.exitQuest(false, true);
  1024. +       }
  1025. +       return htmltext;
  1026. +   }
  1027. +  
  1028. +   @Override
  1029. +   public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
  1030. +   {
  1031. +       if (npc.isAttackable() && NPC_LEVELING_INFO.containsKey(npc.getId()))
  1032. +       {
  1033. +           levelSoulCrystals((Attackable) npc, killer);
  1034. +       }
  1035. +      
  1036. +       return null;
  1037. +   }
  1038. +  
  1039. +   @Override
  1040. +   public String onSkillSee(Npc npc, PlayerInstance caster, Skill skill, WorldObject[] targets, boolean isSummon)
  1041. +   {
  1042. +       super.onSkillSee(npc, caster, skill, targets, isSummon);
  1043. +      
  1044. +       if ((skill == null) || (skill.getId() != 2096))
  1045. +       {
  1046. +           return null;
  1047. +       }
  1048. +       else if ((caster == null) || caster.isDead())
  1049. +       {
  1050. +           return null;
  1051. +       }
  1052. +       if (!npc.isAttackable() || npc.isDead() || !NPC_LEVELING_INFO.containsKey(npc.getId()))
  1053. +       {
  1054. +           return null;
  1055. +       }
  1056. +      
  1057. +       try
  1058. +       {
  1059. +           ((Attackable) npc).addAbsorber(caster);
  1060. +       }
  1061. +       catch (Exception e)
  1062. +       {
  1063. +           LOGGER.log(Level.SEVERE, "", e);
  1064. +       }
  1065. +       return null;
  1066. +   }
  1067. +  
  1068. +   @Override
  1069. +   public String onTalk(Npc npc, PlayerInstance player)
  1070. +   {
  1071. +       final QuestState qs = getQuestState(player, true);
  1072. +       String htmltext = getNoQuestMsg(player);
  1073. +      
  1074. +       if (qs.getState() == State.CREATED)
  1075. +       {
  1076. +           qs.set("cond", "0");
  1077. +       }
  1078. +       if (qs.getInt("cond") == 0)
  1079. +       {
  1080. +           htmltext = npc.getId() + "-01.htm";
  1081. +       }
  1082. +       else if (check(player))
  1083. +       {
  1084. +           htmltext = npc.getId() + "-03.htm";
  1085. +       }
  1086. +       else if (!hasQuestItems(player, RED_SOUL_CRYSTAL0_ID) && !hasQuestItems(player, GREEN_SOUL_CRYSTAL0_ID) && !hasQuestItems(player, BLUE_SOUL_CRYSTAL0_ID))
  1087. +       {
  1088. +           htmltext = npc.getId() + "-21.htm";
  1089. +       }
  1090. +       return htmltext;
  1091. +   }
  1092. +  
  1093. +   private static boolean check(PlayerInstance player)
  1094. +   {
  1095. +       for (int i = 4629; i < 4665; i++)
  1096. +       {
  1097. +           if (hasQuestItems(player, i))
  1098. +           {
  1099. +               return true;
  1100. +           }
  1101. +       }
  1102. +       return false;
  1103. +   }
  1104. +  
  1105. +   private static void exchangeCrystal(PlayerInstance player, Attackable mob, int takeid, int giveid, boolean broke)
  1106. +   {
  1107. +       ItemInstance Item = player.getInventory().destroyItemByItemId("SoulCrystal", takeid, 1, player, mob);
  1108. +       if (Item != null)
  1109. +       {
  1110. +           // Prepare inventory update packet
  1111. +           final InventoryUpdate playerIU = new InventoryUpdate();
  1112. +           playerIU.addRemovedItem(Item);
  1113. +          
  1114. +           // Add new crystal to the killer's inventory
  1115. +           Item = player.getInventory().addItem("SoulCrystal", giveid, 1, player, mob);
  1116. +           playerIU.addItem(Item);
  1117. +          
  1118. +           // Send a sound event and text message to the player
  1119. +           if (broke)
  1120. +           {
  1121. +               player.sendPacket(SystemMessageId.THE_SOUL_CRYSTAL_BROKE_BECAUSE_IT_WAS_NOT_ABLE_TO_ENDURE_THE_SOUL_ENERGY);
  1122. +           }
  1123. +           else
  1124. +           {
  1125. +               player.sendPacket(SystemMessageId.THE_SOUL_CRYSTAL_SUCCEEDED_IN_ABSORBING_A_SOUL);
  1126. +           }
  1127. +          
  1128. +           // Send system message
  1129. +           final SystemMessage sms = new SystemMessage(SystemMessageId.YOU_HAVE_EARNED_S1);
  1130. +           sms.addItemName(giveid);
  1131. +           player.sendPacket(sms);
  1132. +          
  1133. +           // Send inventory update packet
  1134. +           player.sendPacket(playerIU);
  1135. +       }
  1136. +   }
  1137. +  
  1138. +   private static SoulCrystal getSCForPlayer(PlayerInstance player)
  1139. +   {
  1140. +       final QuestState qs = player.getQuestState(Q00350_EnhanceYourWeapon.class.getSimpleName());
  1141. +       if ((qs == null) || !qs.isStarted())
  1142. +       {
  1143. +           return null;
  1144. +       }
  1145. +      
  1146. +       final Collection<ItemInstance> inv = player.getInventory().getItems();
  1147. +       SoulCrystal ret = null;
  1148. +       for (ItemInstance item : inv)
  1149. +       {
  1150. +           final int itemId = item.getId();
  1151. +           if (!SOUL_CRYSTALS.containsKey(itemId))
  1152. +           {
  1153. +               continue;
  1154. +           }
  1155. +          
  1156. +           if (ret != null)
  1157. +           {
  1158. +               return null;
  1159. +           }
  1160. +           ret = SOUL_CRYSTALS.get(itemId);
  1161. +       }
  1162. +       return ret;
  1163. +   }
  1164. +  
  1165. +   private static boolean isPartyLevelingMonster(int npcId)
  1166. +   {
  1167. +       for (LevelingInfo li : NPC_LEVELING_INFO.get(npcId).values())
  1168. +       {
  1169. +           if (li.getAbsorbCrystalType() != AbsorbCrystalType.LAST_HIT)
  1170. +           {
  1171. +               return true;
  1172. +           }
  1173. +       }
  1174. +       return false;
  1175. +   }
  1176. +  
  1177. +   private static void levelCrystal(PlayerInstance player, SoulCrystal sc, Attackable mob)
  1178. +   {
  1179. +       if ((sc == null) || !NPC_LEVELING_INFO.containsKey(mob.getId()))
  1180. +       {
  1181. +           return;
  1182. +       }
  1183. +      
  1184. +       // If the crystal level is way too high for this mob, say that we can't increase it
  1185. +       if (!NPC_LEVELING_INFO.get(mob.getId()).containsKey(sc.getLevel()))
  1186. +       {
  1187. +           player.sendPacket(SystemMessageId.THE_SOUL_CRYSTAL_IS_REFUSING_TO_ABSORB_THE_SOUL);
  1188. +           return;
  1189. +       }
  1190. +      
  1191. +       if (getRandom(100) <= NPC_LEVELING_INFO.get(mob.getId()).get(sc.getLevel()).getChance())
  1192. +       {
  1193. +           exchangeCrystal(player, mob, sc.getItemId(), sc.getLeveledItemId(), false);
  1194. +       }
  1195. +       else
  1196. +       {
  1197. +           player.sendPacket(SystemMessageId.THE_SOUL_CRYSTAL_WAS_NOT_ABLE_TO_ABSORB_THE_SOUL);
  1198. +       }
  1199. +   }
  1200. +  
  1201. +   /**
  1202. +    * Calculate the leveling chance of Soul Crystals based on the attacker that killed this Attackable
  1203. +    * @param mob
  1204. +    * @param killer The player that last killed this Attackable $ Rewrite 06.12.06 - Yesod $ Rewrite 08.01.10 - Gigiikun
  1205. +    */
  1206. +   public static void levelSoulCrystals(Attackable mob, PlayerInstance killer)
  1207. +   {
  1208. +       // Only PlayerInstance can absorb a soul
  1209. +       if (killer == null)
  1210. +       {
  1211. +           mob.resetAbsorbList();
  1212. +           return;
  1213. +       }
  1214. +      
  1215. +       final Map<PlayerInstance, SoulCrystal> players = new HashMap<>();
  1216. +       int maxSCLevel = 0;
  1217. +      
  1218. +       // TODO: what if mob support last_hit + party?
  1219. +       if (isPartyLevelingMonster(mob.getId()) && (killer.getParty() != null))
  1220. +       {
  1221. +           // firts get the list of players who has one Soul Cry and the quest
  1222. +           for (PlayerInstance pl : killer.getParty().getMembers())
  1223. +           {
  1224. +               if (pl == null)
  1225. +               {
  1226. +                   continue;
  1227. +               }
  1228. +              
  1229. +               final SoulCrystal sc = getSCForPlayer(pl);
  1230. +               if (sc == null)
  1231. +               {
  1232. +                   continue;
  1233. +               }
  1234. +              
  1235. +               players.put(pl, sc);
  1236. +               if ((maxSCLevel < sc.getLevel()) && NPC_LEVELING_INFO.get(mob.getId()).containsKey(sc.getLevel()))
  1237. +               {
  1238. +                   maxSCLevel = sc.getLevel();
  1239. +               }
  1240. +           }
  1241. +       }
  1242. +       else
  1243. +       {
  1244. +           final SoulCrystal sc = getSCForPlayer(killer);
  1245. +           if (sc != null)
  1246. +           {
  1247. +               players.put(killer, sc);
  1248. +               if ((maxSCLevel < sc.getLevel()) && NPC_LEVELING_INFO.get(mob.getId()).containsKey(sc.getLevel()))
  1249. +               {
  1250. +                   maxSCLevel = sc.getLevel();
  1251. +               }
  1252. +           }
  1253. +       }
  1254. +       // Init some useful vars
  1255. +       final LevelingInfo mainlvlInfo = NPC_LEVELING_INFO.get(mob.getId()).get(maxSCLevel);
  1256. +      
  1257. +       if (mainlvlInfo == null)
  1258. +       {
  1259. +           /* throw new NullPointerException("Target: "+mob+ " player: "+killer+" level: "+maxSCLevel); */
  1260. +           return;
  1261. +       }
  1262. +      
  1263. +       // If this mob is not require skill, then skip some checkings
  1264. +       if (mainlvlInfo.isSkillNeeded())
  1265. +       {
  1266. +           // Fail if this Attackable isn't absorbed or there's no one in its _absorbersList
  1267. +           if (!mob.isAbsorbed() /* || _absorbersList == null */)
  1268. +           {
  1269. +               mob.resetAbsorbList();
  1270. +               return;
  1271. +           }
  1272. +          
  1273. +           // Fail if the killer isn't in the _absorbersList of this Attackable and mob is not boss
  1274. +           final AbsorberInfo ai = mob.getAbsorbersList().get(killer.getObjectId());
  1275. +           boolean isSuccess = true;
  1276. +           if ((ai == null) || (ai.getObjectId() != killer.getObjectId()))
  1277. +           {
  1278. +               isSuccess = false;
  1279. +           }
  1280. +          
  1281. +           // Check if the soul crystal was used when HP of this Attackable wasn't higher than half of it
  1282. +           if ((ai != null) && (ai.getAbsorbedHp() > (mob.getMaxHp() / 2.0)))
  1283. +           {
  1284. +               isSuccess = false;
  1285. +           }
  1286. +          
  1287. +           if (!isSuccess)
  1288. +           {
  1289. +               mob.resetAbsorbList();
  1290. +               return;
  1291. +           }
  1292. +       }
  1293. +      
  1294. +       switch (mainlvlInfo.getAbsorbCrystalType())
  1295. +       {
  1296. +           case PARTY_ONE_RANDOM:
  1297. +           {
  1298. +               // This is a naive method for selecting a random member. It gets any random party member and
  1299. +               // then checks if the member has a valid crystal. It does not select the random party member
  1300. +               // among those who have crystals, only. However, this might actually be correct (same as retail).
  1301. +               if (killer.getParty() != null)
  1302. +               {
  1303. +                   final PlayerInstance lucky = killer.getParty().getMembers().get(getRandom(killer.getParty().getMemberCount()));
  1304. +                   levelCrystal(lucky, players.get(lucky), mob);
  1305. +               }
  1306. +               else
  1307. +               {
  1308. +                   levelCrystal(killer, players.get(killer), mob);
  1309. +               }
  1310. +               break;
  1311. +           }
  1312. +           case PARTY_RANDOM:
  1313. +           {
  1314. +               if (killer.getParty() != null)
  1315. +               {
  1316. +                   final List<PlayerInstance> luckyParty = new ArrayList<>();
  1317. +                   luckyParty.addAll(killer.getParty().getMembers());
  1318. +                   while ((getRandom(100) < 33) && !luckyParty.isEmpty())
  1319. +                   {
  1320. +                       final PlayerInstance lucky = luckyParty.remove(getRandom(luckyParty.size()));
  1321. +                       if (players.containsKey(lucky))
  1322. +                       {
  1323. +                           levelCrystal(lucky, players.get(lucky), mob);
  1324. +                       }
  1325. +                   }
  1326. +               }
  1327. +               else if (getRandom(100) < 33)
  1328. +               {
  1329. +                   levelCrystal(killer, players.get(killer), mob);
  1330. +               }
  1331. +               break;
  1332. +           }
  1333. +           case FULL_PARTY:
  1334. +           {
  1335. +               if (killer.getParty() != null)
  1336. +               {
  1337. +                   for (PlayerInstance pl : killer.getParty().getMembers())
  1338. +                   {
  1339. +                       levelCrystal(pl, players.get(pl), mob);
  1340. +                   }
  1341. +               }
  1342. +               else
  1343. +               {
  1344. +                   levelCrystal(killer, players.get(killer), mob);
  1345. +               }
  1346. +               break;
  1347. +           }
  1348. +           case LAST_HIT:
  1349. +           {
  1350. +               levelCrystal(killer, players.get(killer), mob);
  1351. +               break;
  1352. +           }
  1353. +       }
  1354. +   }
  1355. +  
  1356. +   /**
  1357. +    * TODO: Implement using DocumentParser.
  1358. +    */
  1359. +   private void load()
  1360. +   {
  1361. +       try
  1362. +       {
  1363. +           final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  1364. +           factory.setValidating(false);
  1365. +           factory.setIgnoringComments(true);
  1366. +          
  1367. +           final File file = new File(Config.DATAPACK_ROOT, "data/LevelUpCrystalData.xml");
  1368. +           if (!file.exists())
  1369. +           {
  1370. +               LOGGER.severe("[EnhanceYourWeapon] Missing LevelUpCrystalData.xml. The quest wont work without it!");
  1371. +               return;
  1372. +           }
  1373. +          
  1374. +           final Document doc = factory.newDocumentBuilder().parse(file);
  1375. +           final Node first = doc.getFirstChild();
  1376. +           if ((first != null) && "list".equalsIgnoreCase(first.getNodeName()))
  1377. +           {
  1378. +               for (Node n = first.getFirstChild(); n != null; n = n.getNextSibling())
  1379. +               {
  1380. +                   if ("crystal".equalsIgnoreCase(n.getNodeName()))
  1381. +                   {
  1382. +                       for (Node d = n.getFirstChild(); d != null; d = d.getNextSibling())
  1383. +                       {
  1384. +                           if ("item".equalsIgnoreCase(d.getNodeName()))
  1385. +                           {
  1386. +                               final NamedNodeMap attrs = d.getAttributes();
  1387. +                               Node att = attrs.getNamedItem("itemId");
  1388. +                               if (att == null)
  1389. +                               {
  1390. +                                   LOGGER.severe("[EnhanceYourWeapon] Missing itemId in Crystal List, skipping");
  1391. +                                   continue;
  1392. +                               }
  1393. +                               final int itemId = Integer.parseInt(attrs.getNamedItem("itemId").getNodeValue());
  1394. +                              
  1395. +                               att = attrs.getNamedItem("level");
  1396. +                               if (att == null)
  1397. +                               {
  1398. +                                   LOGGER.severe("[EnhanceYourWeapon] Missing level in Crystal List itemId: " + itemId + ", skipping");
  1399. +                                   continue;
  1400. +                               }
  1401. +                               final int level = Integer.parseInt(attrs.getNamedItem("level").getNodeValue());
  1402. +                              
  1403. +                               att = attrs.getNamedItem("leveledItemId");
  1404. +                               if (att == null)
  1405. +                               {
  1406. +                                   LOGGER.severe("[EnhanceYourWeapon] Missing leveledItemId in Crystal List itemId: " + itemId + ", skipping");
  1407. +                                   continue;
  1408. +                               }
  1409. +                               final int leveledItemId = Integer.parseInt(attrs.getNamedItem("leveledItemId").getNodeValue());
  1410. +                              
  1411. +                               SOUL_CRYSTALS.put(itemId, new SoulCrystal(level, itemId, leveledItemId));
  1412. +                           }
  1413. +                       }
  1414. +                   }
  1415. +                   else if ("npc".equalsIgnoreCase(n.getNodeName()))
  1416. +                   {
  1417. +                       for (Node d = n.getFirstChild(); d != null; d = d.getNextSibling())
  1418. +                       {
  1419. +                           if ("item".equalsIgnoreCase(d.getNodeName()))
  1420. +                           {
  1421. +                               NamedNodeMap attrs = d.getAttributes();
  1422. +                               Node att = attrs.getNamedItem("npcId");
  1423. +                               if (att == null)
  1424. +                               {
  1425. +                                   LOGGER.severe("[EnhanceYourWeapon] Missing npcId in NPC List, skipping");
  1426. +                                   continue;
  1427. +                               }
  1428. +                              
  1429. +                               final int npcId = Integer.parseInt(att.getNodeValue());
  1430. +                               final Map<Integer, LevelingInfo> temp = new HashMap<>();
  1431. +                               for (Node cd = d.getFirstChild(); cd != null; cd = cd.getNextSibling())
  1432. +                               {
  1433. +                                   boolean isSkillNeeded = false;
  1434. +                                   int chance = 5;
  1435. +                                   AbsorbCrystalType absorbType = AbsorbCrystalType.LAST_HIT;
  1436. +                                  
  1437. +                                   if ("detail".equalsIgnoreCase(cd.getNodeName()))
  1438. +                                   {
  1439. +                                       attrs = cd.getAttributes();
  1440. +                                      
  1441. +                                       att = attrs.getNamedItem("absorbType");
  1442. +                                       if (att != null)
  1443. +                                       {
  1444. +                                           absorbType = Enum.valueOf(AbsorbCrystalType.class, att.getNodeValue());
  1445. +                                       }
  1446. +                                      
  1447. +                                       att = attrs.getNamedItem("chance");
  1448. +                                       if (att != null)
  1449. +                                       {
  1450. +                                           chance = Integer.parseInt(att.getNodeValue());
  1451. +                                       }
  1452. +                                      
  1453. +                                       att = attrs.getNamedItem("skill");
  1454. +                                       if (att != null)
  1455. +                                       {
  1456. +                                           isSkillNeeded = Boolean.parseBoolean(att.getNodeValue());
  1457. +                                       }
  1458. +                                      
  1459. +                                       final Node att1 = attrs.getNamedItem("maxLevel");
  1460. +                                       final Node att2 = attrs.getNamedItem("levelList");
  1461. +                                       if ((att1 == null) && (att2 == null))
  1462. +                                       {
  1463. +                                           LOGGER.severe("[EnhanceYourWeapon] Missing maxlevel/levelList in NPC List npcId: " + npcId + ", skipping");
  1464. +                                           continue;
  1465. +                                       }
  1466. +                                       final LevelingInfo info = new LevelingInfo(absorbType, isSkillNeeded, chance);
  1467. +                                       if (att1 != null)
  1468. +                                       {
  1469. +                                           final int maxLevel = Integer.parseInt(att1.getNodeValue());
  1470. +                                           for (int i = 0; i <= maxLevel; i++)
  1471. +                                           {
  1472. +                                               temp.put(i, info);
  1473. +                                           }
  1474. +                                       }
  1475. +                                       else if (att2 != null)
  1476. +                                       {
  1477. +                                           final StringTokenizer st = new StringTokenizer(att2.getNodeValue(), ",");
  1478. +                                           final int tokenCount = st.countTokens();
  1479. +                                           for (int i = 0; i < tokenCount; i++)
  1480. +                                           {
  1481. +                                               Integer value = Integer.decode(st.nextToken().trim());
  1482. +                                               if (value == null)
  1483. +                                               {
  1484. +                                                   LOGGER.severe("[EnhanceYourWeapon] Bad Level value!! npcId: " + npcId + " token: " + i);
  1485. +                                                   value = 0;
  1486. +                                               }
  1487. +                                               temp.put(value, info);
  1488. +                                           }
  1489. +                                       }
  1490. +                                   }
  1491. +                               }
  1492. +                              
  1493. +                               if (temp.isEmpty())
  1494. +                               {
  1495. +                                   LOGGER.severe("[EnhanceYourWeapon] No leveling info for npcId: " + npcId + ", skipping");
  1496. +                                   continue;
  1497. +                               }
  1498. +                               NPC_LEVELING_INFO.put(npcId, temp);
  1499. +                           }
  1500. +                       }
  1501. +                   }
  1502. +               }
  1503. +           }
  1504. +       }
  1505. +       catch (Exception e)
  1506. +       {
  1507. +           LOGGER.log(Level.WARNING, "[EnhanceYourWeapon] Could not parse LevelUpCrystalData.xml file: " + e.getMessage(), e);
  1508. +       }
  1509. +       LOGGER.info("[EnhanceYourWeapon] Loaded " + SOUL_CRYSTALS.size() + " Soul Crystal data.");
  1510. +       LOGGER.info("[EnhanceYourWeapon] Loaded " + NPC_LEVELING_INFO.size() + " npc Leveling info data.");
  1511. +   }
  1512. +}
  1513. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/exit.htm
  1514. ===================================================================
  1515. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/exit.htm (nonexistent)
  1516. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/exit.htm (working copy)
  1517. @@ -0,0 +1,2 @@
  1518. +<html><body>Goodbye
  1519. +</body></html>
  1520. \ No newline at end of file
  1521. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-16.htm
  1522. ===================================================================
  1523. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-16.htm (nonexistent)
  1524. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-16.htm (working copy)
  1525. @@ -0,0 +1,4 @@
  1526. +<html><body>Master Gideon:<br>
  1527. +It seems that the most evil creatures in the Devastated Castle are the <FONT COLOR=LEVEL>Doom Servants, Doom Guards, Doom Archers, Doom Troopers, Doom Warriors, and Doom Knights.</FONT><br>
  1528. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  1529. +</body></html>
  1530. \ No newline at end of file
  1531. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-06.htm
  1532. ===================================================================
  1533. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-06.htm (nonexistent)
  1534. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-06.htm (working copy)
  1535. @@ -0,0 +1,5 @@
  1536. +<html><body>Master Gideon:<br>
  1537. +<FONT COLOR=LEVEL>After you have sapped the evil one's strength in battle, apply the crystal to his skin. His soul will be absorbed into the crystal. His mortal body is easily dispatched.</FONT> Each soul crystal can contain up to 10 souls. <FONT COLOR=LEVEL>A more precise explanation would be that it can contain up to 10 souls with regular usage. I will tell you the detailed story later when you bring back the soul crystal with 10 souls.</FONT><br>
  1538. +Actually, collecting souls for the purpose of bestowing a weapon with a special power is not as easy as it sounds.<br>
  1539. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-07.htm">What are the precautions to take when collecting souls?"</button>
  1540. +</body></html>
  1541. \ No newline at end of file
  1542. Index: dist/game/data/xsd/LevelUpCrystalData.xsd
  1543. ===================================================================
  1544. --- dist/game/data/xsd/LevelUpCrystalData.xsd   (nonexistent)
  1545. +++ dist/game/data/xsd/LevelUpCrystalData.xsd   (working copy)
  1546. @@ -0,0 +1,72 @@
  1547. +<?xml version="1.0" encoding="UTF-8"?>
  1548. +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  1549. +   <xs:element name="list">
  1550. +       <xs:complexType>
  1551. +           <xs:sequence minOccurs="1" maxOccurs="1">
  1552. +               <xs:element name="crystal" minOccurs="1" maxOccurs="1">
  1553. +                   <xs:complexType>
  1554. +                       <xs:sequence minOccurs="1" maxOccurs="1">
  1555. +                           <xs:element name="item" minOccurs="54" maxOccurs="54">
  1556. +                               <xs:complexType>
  1557. +                                   <xs:attribute name="itemId" type="xs:positiveInteger" use="required" />
  1558. +                                   <xs:attribute name="level" use="required">
  1559. +                                       <xs:simpleType>
  1560. +                                           <xs:restriction base="xs:integer">
  1561. +                                               <xs:minInclusive value="0" />
  1562. +                                               <xs:maxInclusive value="17" />
  1563. +                                           </xs:restriction>
  1564. +                                       </xs:simpleType>
  1565. +                                   </xs:attribute>
  1566. +                                   <xs:attribute name="leveledItemId" type="xs:positiveInteger" use="required" />
  1567. +                               </xs:complexType>
  1568. +                           </xs:element>
  1569. +                       </xs:sequence>
  1570. +                   </xs:complexType>
  1571. +               </xs:element>
  1572. +               <xs:element name="npc" minOccurs="1" maxOccurs="1">
  1573. +                   <xs:complexType>
  1574. +                       <xs:sequence minOccurs="1" maxOccurs="1">
  1575. +                           <xs:element name="item" minOccurs="1" maxOccurs="unbounded">
  1576. +                               <xs:complexType>
  1577. +                                   <xs:sequence minOccurs="1" maxOccurs="1">
  1578. +                                       <xs:element name="detail" minOccurs="1" maxOccurs="unbounded">
  1579. +                                           <xs:complexType>
  1580. +                                               <xs:attribute name="absorbType">
  1581. +                                                   <xs:simpleType>
  1582. +                                                       <xs:restriction base="xs:token">
  1583. +                                                           <xs:enumeration value="FULL_PARTY" />
  1584. +                                                           <xs:enumeration value="PARTY_ONE_RANDOM" />
  1585. +                                                       </xs:restriction>
  1586. +                                                   </xs:simpleType>
  1587. +                                               </xs:attribute>
  1588. +                                               <xs:attribute name="chance" use="required">
  1589. +                                                   <xs:simpleType>
  1590. +                                                       <xs:restriction base="xs:integer">
  1591. +                                                           <xs:minInclusive value="1" />
  1592. +                                                           <xs:maxInclusive value="100" />
  1593. +                                                       </xs:restriction>
  1594. +                                                   </xs:simpleType>
  1595. +                                               </xs:attribute>
  1596. +                                               <xs:attribute name="levelList" type="xs:normalizedString" />
  1597. +                                               <xs:attribute name="maxLevel">
  1598. +                                                   <xs:simpleType>
  1599. +                                                       <xs:restriction base="xs:integer">
  1600. +                                                           <xs:minInclusive value="1" />
  1601. +                                                           <xs:maxInclusive value="9" />
  1602. +                                                       </xs:restriction>
  1603. +                                                   </xs:simpleType>
  1604. +                                               </xs:attribute>
  1605. +                                               <xs:attribute name="skill" type="xs:boolean" />
  1606. +                                           </xs:complexType>
  1607. +                                       </xs:element>
  1608. +                                   </xs:sequence>
  1609. +                                   <xs:attribute name="npcId" type="xs:positiveInteger" use="required" />
  1610. +                               </xs:complexType>
  1611. +                           </xs:element>
  1612. +                       </xs:sequence>
  1613. +                   </xs:complexType>
  1614. +               </xs:element>
  1615. +           </xs:sequence>
  1616. +       </xs:complexType>
  1617. +   </xs:element>
  1618. +</xs:schema>
  1619. \ No newline at end of file
  1620. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-11.htm
  1621. ===================================================================
  1622. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-11.htm (nonexistent)
  1623. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-11.htm (working copy)
  1624. @@ -0,0 +1,4 @@
  1625. +<html><body>Master Gideon:<br>
  1626. +Here is a blue soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it.<br>
  1627. +Next time we meet I hope you have gained more strength.
  1628. +</body></html>
  1629. \ No newline at end of file
  1630. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-03.htm
  1631. ===================================================================
  1632. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-03.htm (nonexistent)
  1633. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-03.htm (working copy)
  1634. @@ -0,0 +1,5 @@
  1635. +<html><body>Magister Winonin:<br>
  1636. +You must hurry and collect the souls of evil creatures in the soul crystal. You will find the evil ones in the <FONT COLOR=LEVEL>northern part of Oren, the Forest of Mirrors, the Cave of Giants, the Devastated Castle, the higher reaches of the Tower of Insolence, deep within the Lair of Antharas, Eva's Underwater Garden and Devil's Isle etc...</FONT>Take the crystal filled with souls to any blacksmith and he will enhance a weapon for you.<br>
  1637. +It is imperative that you build as much strength as possible to prepare yourself for the coming apocolypse. After growing each of your individual strength, if you put together all of your strengths, I think you will have enough force to fight against the approaching apocolypse. Then, next time we meet, I hope to see you stronger...<br>
  1638. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-12.htm">Ask about the evil creatures from which you will collect souls.</button>
  1639. +</body></html>
  1640. \ No newline at end of file
  1641. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-15.htm
  1642. ===================================================================
  1643. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-15.htm (nonexistent)
  1644. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-15.htm (working copy)
  1645. @@ -0,0 +1,4 @@
  1646. +<html><body>Magister Winonin:<br>
  1647. +It seems that the most evil creatures in the Cave of Giants are the <FONT COLOR=LEVEL>Halingkas, Yintzus, Paliotes, Hamruts, and Kranrots.</FONT><br>
  1648. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  1649. +</body></html>
  1650. \ No newline at end of file
  1651. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-16.htm
  1652. ===================================================================
  1653. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-16.htm (nonexistent)
  1654. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-16.htm (working copy)
  1655. @@ -0,0 +1,4 @@
  1656. +<html><body>Grand Magister Jurek:<br>
  1657. +It seems that the most evil creatures in the Devastated Castle are the <FONT COLOR=LEVEL>Doom Servants, Doom Guards, Doom Archers, Doom Troopers, Doom Warriors, and Doom Knights.</FONT><br>
  1658. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  1659. +</body></html>
  1660. \ No newline at end of file
  1661. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-03.htm
  1662. ===================================================================
  1663. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-03.htm (nonexistent)
  1664. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-03.htm (working copy)
  1665. @@ -0,0 +1,5 @@
  1666. +<html><body>Master Gideon:<br>
  1667. +You must hurry and collect the souls of evil creatures in the soul crystal. You will find the evil ones in the <FONT COLOR=LEVEL>northern part of Oren, the Forest of Mirrors, the Cave of Giants, the Devastated Castle, the higher reaches of the Tower of Insolence, deep within the Lair of Antharas, Eva's Underwater Garden and Devil's Isle etc...</FONT>Take the crystal filled with souls to any blacksmith and he will enhance a weapon for you.<br>
  1668. +It is imperative that you build as much strength as possible to prepare yourself for the coming apocolypse. After growing each of your individual strength, if you put together all of your strengths, I think you will have enough force to fight against the approaching apocolypse. Then, next time we meet, I hope to see you stronger...<br>
  1669. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-12.htm">Ask about the evil creatures from which you will collect souls.</button>
  1670. +</body></html>
  1671. \ No newline at end of file
  1672. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-08.htm
  1673. ===================================================================
  1674. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-08.htm (nonexistent)
  1675. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-08.htm (working copy)
  1676. @@ -0,0 +1,7 @@
  1677. +<html><body>Grand Magister Jurek:<br>
  1678. +Please choose one of the following three types of crystals:<br>
  1679. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-09.htm">Red Soul Crystal</button>
  1680. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-10.htm">Green Soul Crystal</button>
  1681. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-11.htm">Blue Soul Crystal</button>
  1682. +Each crystal bestows a different power upon the weapon it enhances, and the powers may vary from weapon to weapon.
  1683. +</body></html>
  1684. \ No newline at end of file
  1685. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-20.htm
  1686. ===================================================================
  1687. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-20.htm (nonexistent)
  1688. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-20.htm (working copy)
  1689. @@ -0,0 +1,4 @@
  1690. +<html><body>Magister Winonin:<br>
  1691. +It seems that <FONT COLOR=LEVEL>all of the evil creatures inhabiting Devil's Isle</FONT> are appropriate soul donors.<br>
  1692. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  1693. +</body></html>
  1694. \ No newline at end of file
  1695. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-21.htm
  1696. ===================================================================
  1697. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-21.htm (nonexistent)
  1698. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-21.htm (working copy)
  1699. @@ -0,0 +1,5 @@
  1700. +<html><body>Grand Magister Jurek:<br>
  1701. +How is your mission going? Oh, I see that you need a new crystal!<br>
  1702. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-08.htm">"Yes, please, may I have another?"</button>
  1703. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon exit.htm">"Quit"</button>
  1704. +</body></html>
  1705. \ No newline at end of file
  1706. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-19.htm
  1707. ===================================================================
  1708. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-19.htm (nonexistent)
  1709. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-19.htm (working copy)
  1710. @@ -0,0 +1,4 @@
  1711. +<html><body>Master Gideon:<br>
  1712. +It seems that <FONT COLOR=LEVEL>all of the evil creatures inhabiting Eva's Underwater Garden</FONT> are appropriate soul donors.<br>
  1713. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  1714. +</body></html>
  1715. \ No newline at end of file
  1716. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-01.htm
  1717. ===================================================================
  1718. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-01.htm (nonexistent)
  1719. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-01.htm (working copy)
  1720. @@ -0,0 +1,4 @@
  1721. +<html><body>Grand Magister Jurek:<br>
  1722. +Hello there, have you come to learn how to enhance the abilities of your weapon?<br>
  1723. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-02.htm">"Yes, I wish to learn more."</button>
  1724. +</body></html>
  1725. \ No newline at end of file
  1726. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-10.htm
  1727. ===================================================================
  1728. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-10.htm (nonexistent)
  1729. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-10.htm (working copy)
  1730. @@ -0,0 +1,4 @@
  1731. +<html><body>Master Gideon:<br>
  1732. +Here is a green soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it.<br>
  1733. +Next time we meet I hope you have gained more strength.
  1734. +</body></html>
  1735. \ No newline at end of file
  1736. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-02.htm
  1737. ===================================================================
  1738. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-02.htm (nonexistent)
  1739. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-02.htm (working copy)
  1740. @@ -0,0 +1,7 @@
  1741. +<html><body>Magister Winonin:<br>
  1742. +I have a growing sense of dread of late. Something terrible is coming. Can you hear it? The trees in the forest, the birds in the sky and the fish in the ocean...They know of what I speak...<br>
  1743. +I fear for the survival of the whole Human race, but I don't know what threatens it! This dark foreboding will not give me any peace whatsoever. I hope I am wrong but I fear I am not...<br>
  1744. +I must do what I can to save my race! I will find like-minded individuals to join my preperations for the coming apocolypse. If only we knew when...<br>
  1745. +Will you join my cause? Are you willing to lend a hand in preparing to fight the imminent darkness?<br>
  1746. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-04.htm">"I will join your cause!"</button>
  1747. +</body></html>
  1748. \ No newline at end of file
  1749. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-15.htm
  1750. ===================================================================
  1751. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-15.htm (nonexistent)
  1752. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-15.htm (working copy)
  1753. @@ -0,0 +1,4 @@
  1754. +<html><body>Grand Magister Jurek:<br>
  1755. +It seems that the most evil creatures in the Cave of Giants are the <FONT COLOR=LEVEL>Halingkas, Yintzus, Paliotes, Hamruts, and Kranrots.</FONT><br>
  1756. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  1757. +</body></html>
  1758. \ No newline at end of file
  1759. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-16.htm
  1760. ===================================================================
  1761. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-16.htm (nonexistent)
  1762. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-16.htm (working copy)
  1763. @@ -0,0 +1,4 @@
  1764. +<html><body>Magister Winonin:<br>
  1765. +It seems that the most evil creatures in the Devastated Castle are the <FONT COLOR=LEVEL>Doom Servants, Doom Guards, Doom Archers, Doom Troopers, Doom Warriors, and Doom Knights.</FONT><br>
  1766. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  1767. +</body></html>
  1768. \ No newline at end of file
  1769. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-20.htm
  1770. ===================================================================
  1771. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-20.htm (nonexistent)
  1772. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-20.htm (working copy)
  1773. @@ -0,0 +1,4 @@
  1774. +<html><body>Grand Magister Jurek:<br>
  1775. +It seems that <FONT COLOR=LEVEL>all of the evil creatures inhabiting Devil's Isle</FONT> are appropriate soul donors.<br>
  1776. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  1777. +</body></html>
  1778. \ No newline at end of file
  1779. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-04.htm
  1780. ===================================================================
  1781. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-04.htm (nonexistent)
  1782. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-04.htm (working copy)
  1783. @@ -0,0 +1,5 @@
  1784. +<html><body>Master Gideon:<br>
  1785. +Oh, marvelous! If we all develop our strengths and work together, we will triumph over the coming cataclysm. My colleagues and I have recently developed a method of enhancing weaponry that should prove quite useful to all of us.<br>
  1786. +This <FONT COLOR=LEVEL>weapons enhancement</FONT> boosts strength noticeably in combat.<br>
  1787. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-05.htm">Explanation of weapons enhancement</button>
  1788. +</body></html>
  1789. \ No newline at end of file
  1790. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-09.htm
  1791. ===================================================================
  1792. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-09.htm (nonexistent)
  1793. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-09.htm (working copy)
  1794. @@ -0,0 +1,4 @@
  1795. +<html><body>Grand Magister Jurek:<br>
  1796. +Here is a red soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it.<br>
  1797. +Next time we meet I hope you have gained more strength.
  1798. +</body></html>
  1799. \ No newline at end of file
  1800. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-18.htm
  1801. ===================================================================
  1802. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-18.htm (nonexistent)
  1803. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-18.htm (working copy)
  1804. @@ -0,0 +1,4 @@
  1805. +<html><body>Master Gideon:<br>
  1806. +It seems that the most evil creatures in the Lair of Antharas are the <FONT COLOR=LEVEL>Malruk Knights, Malruk Berserkers, Malruk Lords, Limal Karinness, Kariks, Pytans, and Pytan Knights.</FONT><br>
  1807. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  1808. +</body></html>
  1809. \ No newline at end of file
  1810. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-21.htm
  1811. ===================================================================
  1812. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-21.htm (nonexistent)
  1813. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-21.htm (working copy)
  1814. @@ -0,0 +1,5 @@
  1815. +<html><body>Magister Winonin:<br>
  1816. +How is your mission going? Oh, I see that you need a new crystal!<br>
  1817. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-08.htm">"Yes, please, may I have another?"</button>
  1818. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon exit.htm">"Quit"</button>
  1819. +</body></html>
  1820. \ No newline at end of file
  1821. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-21.htm
  1822. ===================================================================
  1823. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-21.htm (nonexistent)
  1824. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-21.htm (working copy)
  1825. @@ -0,0 +1,5 @@
  1826. +<html><body>Master Gideon:<br>
  1827. +How is your mission going? Oh, I see that you need a new crystal!<br>
  1828. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-08.htm">"Yes, please, may I have another?"</button>
  1829. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon exit.htm">"Quit"</button>
  1830. +</body></html>
  1831. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-08.htm
  1832. ===================================================================
  1833. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-08.htm (nonexistent)
  1834. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-08.htm (working copy)
  1835. @@ -0,0 +1,7 @@
  1836. +<html><body>Master Gideon:<br>
  1837. +Please choose one of the following three types of crystals:<br>
  1838. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-09.htm">Red Soul Crystal</button>
  1839. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-10.htm">Green Soul Crystal</button>
  1840. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-11.htm">Blue Soul Crystal</button>
  1841. +Each crystal bestows a different power upon the weapon it enhances, and the powers may vary from weapon to weapon.
  1842. +</body></html>
  1843. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-14.htm
  1844. ===================================================================
  1845. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-14.htm (nonexistent)
  1846. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-14.htm (working copy)
  1847. @@ -0,0 +1,4 @@
  1848. +<html><body>Grand Magister Jurek:<br>
  1849. +It seems that the most evil creatures in the Forest of Mirrors are the <FONT COLOR=LEVEL>Forest of Mirror ghosts, mirrors and Harit Lizardmen.</FONT><br>
  1850. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  1851. +</body></html>
  1852. \ No newline at end of file
  1853. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-02.htm
  1854. ===================================================================
  1855. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-02.htm (nonexistent)
  1856. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-02.htm (working copy)
  1857. @@ -0,0 +1,7 @@
  1858. +<html><body>Grand Magister Jurek:<br>
  1859. +I have a growing sense of dread of late. Something terrible is coming. Can you hear it? The trees in the forest, the birds in the sky and the fish in the ocean...They know of what I speak...<br>
  1860. +I fear for the survival of the whole Human race, but I don't know what threatens it! This dark foreboding will not give me any peace whatsoever. I hope I am wrong but I fear I am not...<br>
  1861. +I must do what I can to save my race! I will find like-minded individuals to join my preperations for the coming apocolypse. If only we knew when...<br>
  1862. +Will you join my cause? Are you willing to lend a hand in preparing to fight the imminent darkness?<br>
  1863. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-04.htm">"I will join your cause!"</button>
  1864. +</body></html>
  1865. \ No newline at end of file
  1866. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-05.htm
  1867. ===================================================================
  1868. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-05.htm (nonexistent)
  1869. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-05.htm (working copy)
  1870. @@ -0,0 +1,6 @@
  1871. +<html><body>Magister Winonin:<br>
  1872. +To enhance a weapon you will need some <FONT COLOR=LEVEL>magical souls. You must collect the souls of evil creatures and trap them in the soul crystal I will give you.</FONT> You will then take the crystal to a blacksmith and he will extract the magic from the crystal and apply it to a weapon for you.<br>
  1873. +All blacksmiths know how to do this, but, obviously, they don't work for free.<br>
  1874. +You can collect the souls of the evil ones in the <FONT COLOR=LEVEL>northern part of Oren, the Forest of Mirrors, the Cave of Giants, the Devastated Castle, the upper floors of the Tower of Insolence, deep within the Lair of Antharas, Eva's Underwater Garden and Devil's Isle.</FONT> Enhanced weapons would greatly aid your mission.<br>
  1875. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-06.htm">"How do I collect the souls of the evil ones?"</button>
  1876. +</body></html>
  1877. \ No newline at end of file
  1878. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-17.htm
  1879. ===================================================================
  1880. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-17.htm (nonexistent)
  1881. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-17.htm (working copy)
  1882. @@ -0,0 +1,4 @@
  1883. +<html><body>Magister Winonin:<br>
  1884. +It seems that the most evil creatures in the Tower of Insolence are the <FONT COLOR=LEVEL>Erin Ediunce, members of the Platinum Tribe and their Angels.</FONT><br>
  1885. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  1886. +</body></html>
  1887. \ No newline at end of file
  1888. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-05.htm
  1889. ===================================================================
  1890. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-05.htm (nonexistent)
  1891. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-05.htm (working copy)
  1892. @@ -0,0 +1,6 @@
  1893. +<html><body>Master Gideon:<br>
  1894. +To enhance a weapon you will need some <FONT COLOR=LEVEL>magical souls. You must collect the souls of evil creatures and trap them in the soul crystal I will give you.</FONT> You will then take the crystal to a blacksmith and he will extract the magic from the crystal and apply it to a weapon for you.<br>
  1895. +All blacksmiths know how to do this, but, obviously, they don't work for free.<br>
  1896. +You can collect the souls of the evil ones in the <FONT COLOR=LEVEL>northern part of Oren, the Forest of Mirrors, the Cave of Giants, the Devastated Castle, the upper floors of the Tower of Insolence, deep within the Lair of Antharas, Eva's Underwater Garden and Devil's Isle.</FONT> Enhanced weapons would greatly aid your mission.<br>
  1897. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-06.htm">"How do I collect the souls of the evil ones?"</button>
  1898. +</body></html>
  1899. \ No newline at end of file
  1900. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-17.htm
  1901. ===================================================================
  1902. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-17.htm (nonexistent)
  1903. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-17.htm (working copy)
  1904. @@ -0,0 +1,4 @@
  1905. +<html><body>Master Gideon:<br>
  1906. +It seems that the most evil creatures in the Tower of Insolence are the <FONT COLOR=LEVEL>Erin Ediunce, members of the Platinum Tribe and their Angels.</FONT><br>
  1907. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  1908. +</body></html>
  1909. \ No newline at end of file
  1910. Index: java/org/l2jmobius/gameserver/model/actor/Attackable.java
  1911. ===================================================================
  1912. --- java/org/l2jmobius/gameserver/model/actor/Attackable.java   (revision 6112)
  1913. +++ java/org/l2jmobius/gameserver/model/actor/Attackable.java   (working copy)
  1914. @@ -47,6 +47,7 @@
  1915.  import org.l2jmobius.gameserver.instancemanager.CursedWeaponsManager;
  1916.  import org.l2jmobius.gameserver.instancemanager.PcCafePointsManager;
  1917.  import org.l2jmobius.gameserver.instancemanager.WalkingManager;
  1918. +import org.l2jmobius.gameserver.model.AbsorberInfo;
  1919.  import org.l2jmobius.gameserver.model.AggroInfo;
  1920.  import org.l2jmobius.gameserver.model.CommandChannel;
  1921.  import org.l2jmobius.gameserver.model.DamageDoneInfo;
  1922. @@ -109,6 +110,9 @@
  1923.     private volatile CommandChannel _firstCommandChannelAttacked = null;
  1924.     private CommandChannelTimer _commandChannelTimer = null;
  1925.     private long _commandChannelLastAttack = 0;
  1926. +   // Soul crystal
  1927. +   private boolean _absorbed;
  1928. +   private final Map<Integer, AbsorberInfo> _absorbersList = new ConcurrentHashMap<>();
  1929.     // Misc
  1930.     private boolean _mustGiveExpSp;
  1931.    
  1932. @@ -1281,6 +1285,56 @@
  1933.     }
  1934.    
  1935.     /**
  1936. +    * Activate the absorbed soul condition on the Attackable.
  1937. +    */
  1938. +   public void absorbSoul()
  1939. +   {
  1940. +       _absorbed = true;
  1941. +   }
  1942. +  
  1943. +   /**
  1944. +    * @return True if the Attackable had his soul absorbed.
  1945. +    */
  1946. +   public boolean isAbsorbed()
  1947. +   {
  1948. +       return _absorbed;
  1949. +   }
  1950. +  
  1951. +   /**
  1952. +    * Adds an attacker that successfully absorbed the soul of this Attackable into the _absorbersList.
  1953. +    * @param attacker
  1954. +    */
  1955. +   public void addAbsorber(PlayerInstance attacker)
  1956. +   {
  1957. +       // If we have no _absorbersList initiated, do it
  1958. +       final AbsorberInfo ai = _absorbersList.get(attacker.getObjectId());
  1959. +      
  1960. +       // If the Creature attacker isn't already in the _absorbersList of this Attackable, add it
  1961. +       if (ai == null)
  1962. +       {
  1963. +           _absorbersList.put(attacker.getObjectId(), new AbsorberInfo(attacker.getObjectId(), getCurrentHp()));
  1964. +       }
  1965. +       else
  1966. +       {
  1967. +           ai.setAbsorbedHp(getCurrentHp());
  1968. +       }
  1969. +      
  1970. +       // Set this Attackable as absorbed
  1971. +       absorbSoul();
  1972. +   }
  1973. +  
  1974. +   public void resetAbsorbList()
  1975. +   {
  1976. +       _absorbed = false;
  1977. +       _absorbersList.clear();
  1978. +   }
  1979. +  
  1980. +   public Map<Integer, AbsorberInfo> getAbsorbersList()
  1981. +   {
  1982. +       return _absorbersList;
  1983. +   }
  1984. +  
  1985. +   /**
  1986.      * Calculate the Experience and SP to distribute to attacker (PlayerInstance, ServitorInstance or Party) of the Attackable.
  1987.      * @param charLevel The killer level
  1988.      * @param damage The damages given by the attacker (PlayerInstance, ServitorInstance or Party)
  1989. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-14.htm
  1990. ===================================================================
  1991. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-14.htm (nonexistent)
  1992. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-14.htm (working copy)
  1993. @@ -0,0 +1,4 @@
  1994. +<html><body>Magister Winonin:<br>
  1995. +It seems that the most evil creatures in the Forest of Mirrors are the <FONT COLOR=LEVEL>Forest of Mirror ghosts, mirrors and Harit Lizardmen.</FONT><br>
  1996. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  1997. +</body></html>
  1998. \ No newline at end of file
  1999. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-12.htm
  2000. ===================================================================
  2001. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-12.htm (nonexistent)
  2002. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-12.htm (working copy)
  2003. @@ -0,0 +1,11 @@
  2004. +<html><body>Master Gideon:<br>
  2005. +From the following areas, which area's evil creatures would you like to obtain more information about?<br>
  2006. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-13.htm">Northern Oren</button>
  2007. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-14.htm">Forest of Mirrors</button>
  2008. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-15.htm">Cave of Giants</button>
  2009. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-16.htm">Devastated Castle</button>
  2010. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-17.htm">Tower of Insolence</button>
  2011. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-18.htm">Lair of Antharas</button>
  2012. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-19.htm">Eva's Underwater Garden</button>
  2013. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-20.htm">Devil's Isle</button>
  2014. +</body></html>
  2015. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-17.htm
  2016. ===================================================================
  2017. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-17.htm (nonexistent)
  2018. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-17.htm (working copy)
  2019. @@ -0,0 +1,4 @@
  2020. +<html><body>Grand Magister Jurekn:<br>
  2021. +It seems that the most evil creatures in the Tower of Insolence are the <FONT COLOR=LEVEL>Erin Ediunce, members of the Platinum Tribe and their Angels.</FONT><br>
  2022. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  2023. +</body></html>
  2024. \ No newline at end of file
  2025. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-02.htm
  2026. ===================================================================
  2027. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-02.htm (nonexistent)
  2028. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-02.htm (working copy)
  2029. @@ -0,0 +1,7 @@
  2030. +<html><body>Master Gideon:<br>
  2031. +I have a growing sense of dread of late. Something terrible is coming. Can you hear it? The trees in the forest, the birds in the sky and the fish in the ocean...They know of what I speak...<br>
  2032. +I fear for the survival of the whole Human race, but I don't know what threatens it! This dark foreboding will not give me any peace whatsoever. I hope I am wrong but I fear I am not...<br>
  2033. +I must do what I can to save my race! I will find like-minded individuals to join my preperations for the coming apocolypse. If only we knew when...<br>
  2034. +Will you join my cause? Are you willing to lend a hand in preparing to fight the imminent darkness?<br>
  2035. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30194-04.htm">"I will join your cause!"</button>
  2036. +</body></html>
  2037. \ No newline at end of file
  2038. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/Q00350_EnhanceYourWeapon.java
  2039. ===================================================================
  2040. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/Q00350_EnhanceYourWeapon.java    (nonexistent)
  2041. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/Q00350_EnhanceYourWeapon.java    (working copy)
  2042. @@ -0,0 +1,662 @@
  2043. +/*
  2044. + * This file is part of the L2J Mobius project.
  2045. + *
  2046. + * This program is free software: you can redistribute it and/or modify
  2047. + * it under the terms of the GNU General Public License as published by
  2048. + * the Free Software Foundation, either version 3 of the License, or
  2049. + * (at your option) any later version.
  2050. + *
  2051. + * This program is distributed in the hope that it will be useful,
  2052. + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  2053. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  2054. + * General Public License for more details.
  2055. + *
  2056. + * You should have received a copy of the GNU General Public License
  2057. + * along with this program. If not, see <http://www.gnu.org/licenses/>.
  2058. + */
  2059. +package quests.Q00350_EnhanceYourWeapon;
  2060. +
  2061. +import java.io.File;
  2062. +import java.util.ArrayList;
  2063. +import java.util.Collection;
  2064. +import java.util.HashMap;
  2065. +import java.util.List;
  2066. +import java.util.Map;
  2067. +import java.util.StringTokenizer;
  2068. +import java.util.logging.Level;
  2069. +
  2070. +import javax.xml.parsers.DocumentBuilderFactory;
  2071. +
  2072. +import org.w3c.dom.Document;
  2073. +import org.w3c.dom.NamedNodeMap;
  2074. +import org.w3c.dom.Node;
  2075. +
  2076. +import org.l2jmobius.Config;
  2077. +import org.l2jmobius.gameserver.model.AbsorberInfo;
  2078. +import org.l2jmobius.gameserver.model.WorldObject;
  2079. +import org.l2jmobius.gameserver.model.actor.Attackable;
  2080. +import org.l2jmobius.gameserver.model.actor.Npc;
  2081. +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
  2082. +import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
  2083. +import org.l2jmobius.gameserver.model.quest.Quest;
  2084. +import org.l2jmobius.gameserver.model.quest.QuestState;
  2085. +import org.l2jmobius.gameserver.model.quest.State;
  2086. +import org.l2jmobius.gameserver.model.skills.Skill;
  2087. +import org.l2jmobius.gameserver.network.SystemMessageId;
  2088. +import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
  2089. +import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
  2090. +
  2091. +/**
  2092. + * Enhance Your Weapon (350)
  2093. + * @author Gigiikun
  2094. + */
  2095. +public class Q00350_EnhanceYourWeapon extends Quest
  2096. +{
  2097. +   private enum AbsorbCrystalType
  2098. +   {
  2099. +       LAST_HIT,
  2100. +       FULL_PARTY,
  2101. +       PARTY_ONE_RANDOM,
  2102. +       PARTY_RANDOM
  2103. +   }
  2104. +  
  2105. +   private static final class LevelingInfo
  2106. +   {
  2107. +       private final AbsorbCrystalType _absorbCrystalType;
  2108. +       private final boolean _isSkillNeeded;
  2109. +       private final int _chance;
  2110. +      
  2111. +       public LevelingInfo(AbsorbCrystalType absorbCrystalType, boolean isSkillNeeded, int chance)
  2112. +       {
  2113. +           _absorbCrystalType = absorbCrystalType;
  2114. +           _isSkillNeeded = isSkillNeeded;
  2115. +           _chance = chance;
  2116. +       }
  2117. +      
  2118. +       public AbsorbCrystalType getAbsorbCrystalType()
  2119. +       {
  2120. +           return _absorbCrystalType;
  2121. +       }
  2122. +      
  2123. +       public int getChance()
  2124. +       {
  2125. +           return _chance;
  2126. +       }
  2127. +      
  2128. +       public boolean isSkillNeeded()
  2129. +       {
  2130. +           return _isSkillNeeded;
  2131. +       }
  2132. +   }
  2133. +  
  2134. +   private static final class SoulCrystal
  2135. +   {
  2136. +       private final int _level;
  2137. +       private final int _itemId;
  2138. +       private final int _leveledItemId;
  2139. +      
  2140. +       public SoulCrystal(int level, int itemId, int leveledItemId)
  2141. +       {
  2142. +           _level = level;
  2143. +           _itemId = itemId;
  2144. +           _leveledItemId = leveledItemId;
  2145. +       }
  2146. +      
  2147. +       public int getItemId()
  2148. +       {
  2149. +           return _itemId;
  2150. +       }
  2151. +      
  2152. +       public int getLevel()
  2153. +       {
  2154. +           return _level;
  2155. +       }
  2156. +      
  2157. +       public int getLeveledItemId()
  2158. +       {
  2159. +           return _leveledItemId;
  2160. +       }
  2161. +   }
  2162. +  
  2163. +   // NPCs
  2164. +   private static final int[] STARTING_NPCS =
  2165. +   {
  2166. +       30115,
  2167. +       30856,
  2168. +       30194
  2169. +   };
  2170. +   // Items
  2171. +   private static final int RED_SOUL_CRYSTAL0_ID = 4629;
  2172. +   private static final int GREEN_SOUL_CRYSTAL0_ID = 4640;
  2173. +   private static final int BLUE_SOUL_CRYSTAL0_ID = 4651;
  2174. +  
  2175. +   private static final Map<Integer, SoulCrystal> SOUL_CRYSTALS = new HashMap<>();
  2176. +   // <npcid, <level, LevelingInfo>>
  2177. +   private static final Map<Integer, Map<Integer, LevelingInfo>> NPC_LEVELING_INFO = new HashMap<>();
  2178. +  
  2179. +   public Q00350_EnhanceYourWeapon()
  2180. +   {
  2181. +       super(350);
  2182. +       addStartNpc(STARTING_NPCS);
  2183. +       addTalkId(STARTING_NPCS);
  2184. +       load();
  2185. +       for (int npcId : NPC_LEVELING_INFO.keySet())
  2186. +       {
  2187. +           addSkillSeeId(npcId);
  2188. +           addKillId(npcId);
  2189. +       }
  2190. +   }
  2191. +  
  2192. +   @Override
  2193. +   public String onAdvEvent(String event, Npc npc, PlayerInstance player)
  2194. +   {
  2195. +       final String htmltext = event;
  2196. +       final QuestState qs = getQuestState(player, false);
  2197. +       if (event.endsWith("-04.htm"))
  2198. +       {
  2199. +           qs.startQuest();
  2200. +       }
  2201. +       else if (event.endsWith("-09.htm"))
  2202. +       {
  2203. +           giveItems(player, RED_SOUL_CRYSTAL0_ID, 1);
  2204. +       }
  2205. +       else if (event.endsWith("-10.htm"))
  2206. +       {
  2207. +           giveItems(player, GREEN_SOUL_CRYSTAL0_ID, 1);
  2208. +       }
  2209. +       else if (event.endsWith("-11.htm"))
  2210. +       {
  2211. +           giveItems(player, BLUE_SOUL_CRYSTAL0_ID, 1);
  2212. +       }
  2213. +       else if (event.equalsIgnoreCase("exit.htm"))
  2214. +       {
  2215. +           qs.exitQuest(false, true);
  2216. +       }
  2217. +       return htmltext;
  2218. +   }
  2219. +  
  2220. +   @Override
  2221. +   public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
  2222. +   {
  2223. +       if (npc.isAttackable() && NPC_LEVELING_INFO.containsKey(npc.getId()))
  2224. +       {
  2225. +           levelSoulCrystals((Attackable) npc, killer);
  2226. +       }
  2227. +      
  2228. +       return null;
  2229. +   }
  2230. +  
  2231. +   @Override
  2232. +   public String onSkillSee(Npc npc, PlayerInstance caster, Skill skill, WorldObject[] targets, boolean isSummon)
  2233. +   {
  2234. +       super.onSkillSee(npc, caster, skill, targets, isSummon);
  2235. +      
  2236. +       if ((skill == null) || (skill.getId() != 2096))
  2237. +       {
  2238. +           return null;
  2239. +       }
  2240. +       else if ((caster == null) || caster.isDead())
  2241. +       {
  2242. +           return null;
  2243. +       }
  2244. +       if (!npc.isAttackable() || npc.isDead() || !NPC_LEVELING_INFO.containsKey(npc.getId()))
  2245. +       {
  2246. +           return null;
  2247. +       }
  2248. +      
  2249. +       try
  2250. +       {
  2251. +           ((Attackable) npc).addAbsorber(caster);
  2252. +       }
  2253. +       catch (Exception e)
  2254. +       {
  2255. +           LOGGER.log(Level.SEVERE, "", e);
  2256. +       }
  2257. +       return null;
  2258. +   }
  2259. +  
  2260. +   @Override
  2261. +   public String onTalk(Npc npc, PlayerInstance player)
  2262. +   {
  2263. +       final QuestState qs = getQuestState(player, true);
  2264. +       String htmltext = getNoQuestMsg(player);
  2265. +      
  2266. +       if (qs.getState() == State.CREATED)
  2267. +       {
  2268. +           qs.set("cond", "0");
  2269. +       }
  2270. +       if (qs.getInt("cond") == 0)
  2271. +       {
  2272. +           htmltext = npc.getId() + "-01.htm";
  2273. +       }
  2274. +       else if (check(player))
  2275. +       {
  2276. +           htmltext = npc.getId() + "-03.htm";
  2277. +       }
  2278. +       else if (!hasQuestItems(player, RED_SOUL_CRYSTAL0_ID) && !hasQuestItems(player, GREEN_SOUL_CRYSTAL0_ID) && !hasQuestItems(player, BLUE_SOUL_CRYSTAL0_ID))
  2279. +       {
  2280. +           htmltext = npc.getId() + "-21.htm";
  2281. +       }
  2282. +       return htmltext;
  2283. +   }
  2284. +  
  2285. +   private static boolean check(PlayerInstance player)
  2286. +   {
  2287. +       for (int i = 4629; i < 4665; i++)
  2288. +       {
  2289. +           if (hasQuestItems(player, i))
  2290. +           {
  2291. +               return true;
  2292. +           }
  2293. +       }
  2294. +       return false;
  2295. +   }
  2296. +  
  2297. +   private static void exchangeCrystal(PlayerInstance player, Attackable mob, int takeid, int giveid, boolean broke)
  2298. +   {
  2299. +       ItemInstance Item = player.getInventory().destroyItemByItemId("SoulCrystal", takeid, 1, player, mob);
  2300. +       if (Item != null)
  2301. +       {
  2302. +           // Prepare inventory update packet
  2303. +           final InventoryUpdate playerIU = new InventoryUpdate();
  2304. +           playerIU.addRemovedItem(Item);
  2305. +          
  2306. +           // Add new crystal to the killer's inventory
  2307. +           Item = player.getInventory().addItem("SoulCrystal", giveid, 1, player, mob);
  2308. +           playerIU.addItem(Item);
  2309. +          
  2310. +           // Send a sound event and text message to the player
  2311. +           if (broke)
  2312. +           {
  2313. +               player.sendPacket(SystemMessageId.THE_SOUL_CRYSTAL_BROKE_BECAUSE_IT_WAS_NOT_ABLE_TO_ENDURE_THE_SOUL_ENERGY);
  2314. +           }
  2315. +           else
  2316. +           {
  2317. +               player.sendPacket(SystemMessageId.THE_SOUL_CRYSTAL_SUCCEEDED_IN_ABSORBING_A_SOUL);
  2318. +           }
  2319. +          
  2320. +           // Send system message
  2321. +           final SystemMessage sms = new SystemMessage(SystemMessageId.YOU_HAVE_EARNED_S1);
  2322. +           sms.addItemName(giveid);
  2323. +           player.sendPacket(sms);
  2324. +          
  2325. +           // Send inventory update packet
  2326. +           player.sendPacket(playerIU);
  2327. +       }
  2328. +   }
  2329. +  
  2330. +   private static SoulCrystal getSCForPlayer(PlayerInstance player)
  2331. +   {
  2332. +       final QuestState qs = player.getQuestState(Q00350_EnhanceYourWeapon.class.getSimpleName());
  2333. +       if ((qs == null) || !qs.isStarted())
  2334. +       {
  2335. +           return null;
  2336. +       }
  2337. +      
  2338. +       final Collection<ItemInstance> inv = player.getInventory().getItems();
  2339. +       SoulCrystal ret = null;
  2340. +       for (ItemInstance item : inv)
  2341. +       {
  2342. +           final int itemId = item.getId();
  2343. +           if (!SOUL_CRYSTALS.containsKey(itemId))
  2344. +           {
  2345. +               continue;
  2346. +           }
  2347. +          
  2348. +           if (ret != null)
  2349. +           {
  2350. +               return null;
  2351. +           }
  2352. +           ret = SOUL_CRYSTALS.get(itemId);
  2353. +       }
  2354. +       return ret;
  2355. +   }
  2356. +  
  2357. +   private static boolean isPartyLevelingMonster(int npcId)
  2358. +   {
  2359. +       for (LevelingInfo li : NPC_LEVELING_INFO.get(npcId).values())
  2360. +       {
  2361. +           if (li.getAbsorbCrystalType() != AbsorbCrystalType.LAST_HIT)
  2362. +           {
  2363. +               return true;
  2364. +           }
  2365. +       }
  2366. +       return false;
  2367. +   }
  2368. +  
  2369. +   private static void levelCrystal(PlayerInstance player, SoulCrystal sc, Attackable mob)
  2370. +   {
  2371. +       if ((sc == null) || !NPC_LEVELING_INFO.containsKey(mob.getId()))
  2372. +       {
  2373. +           return;
  2374. +       }
  2375. +      
  2376. +       // If the crystal level is way too high for this mob, say that we can't increase it
  2377. +       if (!NPC_LEVELING_INFO.get(mob.getId()).containsKey(sc.getLevel()))
  2378. +       {
  2379. +           player.sendPacket(SystemMessageId.THE_SOUL_CRYSTAL_IS_REFUSING_TO_ABSORB_THE_SOUL);
  2380. +           return;
  2381. +       }
  2382. +      
  2383. +       if (getRandom(100) <= NPC_LEVELING_INFO.get(mob.getId()).get(sc.getLevel()).getChance())
  2384. +       {
  2385. +           exchangeCrystal(player, mob, sc.getItemId(), sc.getLeveledItemId(), false);
  2386. +       }
  2387. +       else
  2388. +       {
  2389. +           player.sendPacket(SystemMessageId.THE_SOUL_CRYSTAL_WAS_NOT_ABLE_TO_ABSORB_THE_SOUL);
  2390. +       }
  2391. +   }
  2392. +  
  2393. +   /**
  2394. +    * Calculate the leveling chance of Soul Crystals based on the attacker that killed this Attackable
  2395. +    * @param mob
  2396. +    * @param killer The player that last killed this Attackable $ Rewrite 06.12.06 - Yesod $ Rewrite 08.01.10 - Gigiikun
  2397. +    */
  2398. +   public static void levelSoulCrystals(Attackable mob, PlayerInstance killer)
  2399. +   {
  2400. +       // Only PlayerInstance can absorb a soul
  2401. +       if (killer == null)
  2402. +       {
  2403. +           mob.resetAbsorbList();
  2404. +           return;
  2405. +       }
  2406. +      
  2407. +       final Map<PlayerInstance, SoulCrystal> players = new HashMap<>();
  2408. +       int maxSCLevel = 0;
  2409. +      
  2410. +       // TODO: what if mob support last_hit + party?
  2411. +       if (isPartyLevelingMonster(mob.getId()) && (killer.getParty() != null))
  2412. +       {
  2413. +           // firts get the list of players who has one Soul Cry and the quest
  2414. +           for (PlayerInstance pl : killer.getParty().getMembers())
  2415. +           {
  2416. +               if (pl == null)
  2417. +               {
  2418. +                   continue;
  2419. +               }
  2420. +              
  2421. +               final SoulCrystal sc = getSCForPlayer(pl);
  2422. +               if (sc == null)
  2423. +               {
  2424. +                   continue;
  2425. +               }
  2426. +              
  2427. +               players.put(pl, sc);
  2428. +               if ((maxSCLevel < sc.getLevel()) && NPC_LEVELING_INFO.get(mob.getId()).containsKey(sc.getLevel()))
  2429. +               {
  2430. +                   maxSCLevel = sc.getLevel();
  2431. +               }
  2432. +           }
  2433. +       }
  2434. +       else
  2435. +       {
  2436. +           final SoulCrystal sc = getSCForPlayer(killer);
  2437. +           if (sc != null)
  2438. +           {
  2439. +               players.put(killer, sc);
  2440. +               if ((maxSCLevel < sc.getLevel()) && NPC_LEVELING_INFO.get(mob.getId()).containsKey(sc.getLevel()))
  2441. +               {
  2442. +                   maxSCLevel = sc.getLevel();
  2443. +               }
  2444. +           }
  2445. +       }
  2446. +       // Init some useful vars
  2447. +       final LevelingInfo mainlvlInfo = NPC_LEVELING_INFO.get(mob.getId()).get(maxSCLevel);
  2448. +      
  2449. +       if (mainlvlInfo == null)
  2450. +       {
  2451. +           /* throw new NullPointerException("Target: "+mob+ " player: "+killer+" level: "+maxSCLevel); */
  2452. +           return;
  2453. +       }
  2454. +      
  2455. +       // If this mob is not require skill, then skip some checkings
  2456. +       if (mainlvlInfo.isSkillNeeded())
  2457. +       {
  2458. +           // Fail if this Attackable isn't absorbed or there's no one in its _absorbersList
  2459. +           if (!mob.isAbsorbed() /* || _absorbersList == null */)
  2460. +           {
  2461. +               mob.resetAbsorbList();
  2462. +               return;
  2463. +           }
  2464. +          
  2465. +           // Fail if the killer isn't in the _absorbersList of this Attackable and mob is not boss
  2466. +           final AbsorberInfo ai = mob.getAbsorbersList().get(killer.getObjectId());
  2467. +           boolean isSuccess = true;
  2468. +           if ((ai == null) || (ai.getObjectId() != killer.getObjectId()))
  2469. +           {
  2470. +               isSuccess = false;
  2471. +           }
  2472. +          
  2473. +           // Check if the soul crystal was used when HP of this Attackable wasn't higher than half of it
  2474. +           if ((ai != null) && (ai.getAbsorbedHp() > (mob.getMaxHp() / 2.0)))
  2475. +           {
  2476. +               isSuccess = false;
  2477. +           }
  2478. +          
  2479. +           if (!isSuccess)
  2480. +           {
  2481. +               mob.resetAbsorbList();
  2482. +               return;
  2483. +           }
  2484. +       }
  2485. +      
  2486. +       switch (mainlvlInfo.getAbsorbCrystalType())
  2487. +       {
  2488. +           case PARTY_ONE_RANDOM:
  2489. +           {
  2490. +               // This is a naive method for selecting a random member. It gets any random party member and
  2491. +               // then checks if the member has a valid crystal. It does not select the random party member
  2492. +               // among those who have crystals, only. However, this might actually be correct (same as retail).
  2493. +               if (killer.getParty() != null)
  2494. +               {
  2495. +                   final PlayerInstance lucky = killer.getParty().getMembers().get(getRandom(killer.getParty().getMemberCount()));
  2496. +                   levelCrystal(lucky, players.get(lucky), mob);
  2497. +               }
  2498. +               else
  2499. +               {
  2500. +                   levelCrystal(killer, players.get(killer), mob);
  2501. +               }
  2502. +               break;
  2503. +           }
  2504. +           case PARTY_RANDOM:
  2505. +           {
  2506. +               if (killer.getParty() != null)
  2507. +               {
  2508. +                   final List<PlayerInstance> luckyParty = new ArrayList<>();
  2509. +                   luckyParty.addAll(killer.getParty().getMembers());
  2510. +                   while ((getRandom(100) < 33) && !luckyParty.isEmpty())
  2511. +                   {
  2512. +                       final PlayerInstance lucky = luckyParty.remove(getRandom(luckyParty.size()));
  2513. +                       if (players.containsKey(lucky))
  2514. +                       {
  2515. +                           levelCrystal(lucky, players.get(lucky), mob);
  2516. +                       }
  2517. +                   }
  2518. +               }
  2519. +               else if (getRandom(100) < 33)
  2520. +               {
  2521. +                   levelCrystal(killer, players.get(killer), mob);
  2522. +               }
  2523. +               break;
  2524. +           }
  2525. +           case FULL_PARTY:
  2526. +           {
  2527. +               if (killer.getParty() != null)
  2528. +               {
  2529. +                   for (PlayerInstance pl : killer.getParty().getMembers())
  2530. +                   {
  2531. +                       levelCrystal(pl, players.get(pl), mob);
  2532. +                   }
  2533. +               }
  2534. +               else
  2535. +               {
  2536. +                   levelCrystal(killer, players.get(killer), mob);
  2537. +               }
  2538. +               break;
  2539. +           }
  2540. +           case LAST_HIT:
  2541. +           {
  2542. +               levelCrystal(killer, players.get(killer), mob);
  2543. +               break;
  2544. +           }
  2545. +       }
  2546. +   }
  2547. +  
  2548. +   /**
  2549. +    * TODO: Implement using DocumentParser.
  2550. +    */
  2551. +   private void load()
  2552. +   {
  2553. +       try
  2554. +       {
  2555. +           final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  2556. +           factory.setValidating(false);
  2557. +           factory.setIgnoringComments(true);
  2558. +          
  2559. +           final File file = new File(Config.DATAPACK_ROOT, "data/LevelUpCrystalData.xml");
  2560. +           if (!file.exists())
  2561. +           {
  2562. +               LOGGER.severe("[EnhanceYourWeapon] Missing LevelUpCrystalData.xml. The quest wont work without it!");
  2563. +               return;
  2564. +           }
  2565. +          
  2566. +           final Document doc = factory.newDocumentBuilder().parse(file);
  2567. +           final Node first = doc.getFirstChild();
  2568. +           if ((first != null) && "list".equalsIgnoreCase(first.getNodeName()))
  2569. +           {
  2570. +               for (Node n = first.getFirstChild(); n != null; n = n.getNextSibling())
  2571. +               {
  2572. +                   if ("crystal".equalsIgnoreCase(n.getNodeName()))
  2573. +                   {
  2574. +                       for (Node d = n.getFirstChild(); d != null; d = d.getNextSibling())
  2575. +                       {
  2576. +                           if ("item".equalsIgnoreCase(d.getNodeName()))
  2577. +                           {
  2578. +                               final NamedNodeMap attrs = d.getAttributes();
  2579. +                               Node att = attrs.getNamedItem("itemId");
  2580. +                               if (att == null)
  2581. +                               {
  2582. +                                   LOGGER.severe("[EnhanceYourWeapon] Missing itemId in Crystal List, skipping");
  2583. +                                   continue;
  2584. +                               }
  2585. +                               final int itemId = Integer.parseInt(attrs.getNamedItem("itemId").getNodeValue());
  2586. +                              
  2587. +                               att = attrs.getNamedItem("level");
  2588. +                               if (att == null)
  2589. +                               {
  2590. +                                   LOGGER.severe("[EnhanceYourWeapon] Missing level in Crystal List itemId: " + itemId + ", skipping");
  2591. +                                   continue;
  2592. +                               }
  2593. +                               final int level = Integer.parseInt(attrs.getNamedItem("level").getNodeValue());
  2594. +                              
  2595. +                               att = attrs.getNamedItem("leveledItemId");
  2596. +                               if (att == null)
  2597. +                               {
  2598. +                                   LOGGER.severe("[EnhanceYourWeapon] Missing leveledItemId in Crystal List itemId: " + itemId + ", skipping");
  2599. +                                   continue;
  2600. +                               }
  2601. +                               final int leveledItemId = Integer.parseInt(attrs.getNamedItem("leveledItemId").getNodeValue());
  2602. +                              
  2603. +                               SOUL_CRYSTALS.put(itemId, new SoulCrystal(level, itemId, leveledItemId));
  2604. +                           }
  2605. +                       }
  2606. +                   }
  2607. +                   else if ("npc".equalsIgnoreCase(n.getNodeName()))
  2608. +                   {
  2609. +                       for (Node d = n.getFirstChild(); d != null; d = d.getNextSibling())
  2610. +                       {
  2611. +                           if ("item".equalsIgnoreCase(d.getNodeName()))
  2612. +                           {
  2613. +                               NamedNodeMap attrs = d.getAttributes();
  2614. +                               Node att = attrs.getNamedItem("npcId");
  2615. +                               if (att == null)
  2616. +                               {
  2617. +                                   LOGGER.severe("[EnhanceYourWeapon] Missing npcId in NPC List, skipping");
  2618. +                                   continue;
  2619. +                               }
  2620. +                              
  2621. +                               final int npcId = Integer.parseInt(att.getNodeValue());
  2622. +                               final Map<Integer, LevelingInfo> temp = new HashMap<>();
  2623. +                               for (Node cd = d.getFirstChild(); cd != null; cd = cd.getNextSibling())
  2624. +                               {
  2625. +                                   boolean isSkillNeeded = false;
  2626. +                                   int chance = 5;
  2627. +                                   AbsorbCrystalType absorbType = AbsorbCrystalType.LAST_HIT;
  2628. +                                  
  2629. +                                   if ("detail".equalsIgnoreCase(cd.getNodeName()))
  2630. +                                   {
  2631. +                                       attrs = cd.getAttributes();
  2632. +                                      
  2633. +                                       att = attrs.getNamedItem("absorbType");
  2634. +                                       if (att != null)
  2635. +                                       {
  2636. +                                           absorbType = Enum.valueOf(AbsorbCrystalType.class, att.getNodeValue());
  2637. +                                       }
  2638. +                                      
  2639. +                                       att = attrs.getNamedItem("chance");
  2640. +                                       if (att != null)
  2641. +                                       {
  2642. +                                           chance = Integer.parseInt(att.getNodeValue());
  2643. +                                       }
  2644. +                                      
  2645. +                                       att = attrs.getNamedItem("skill");
  2646. +                                       if (att != null)
  2647. +                                       {
  2648. +                                           isSkillNeeded = Boolean.parseBoolean(att.getNodeValue());
  2649. +                                       }
  2650. +                                      
  2651. +                                       final Node att1 = attrs.getNamedItem("maxLevel");
  2652. +                                       final Node att2 = attrs.getNamedItem("levelList");
  2653. +                                       if ((att1 == null) && (att2 == null))
  2654. +                                       {
  2655. +                                           LOGGER.severe("[EnhanceYourWeapon] Missing maxlevel/levelList in NPC List npcId: " + npcId + ", skipping");
  2656. +                                           continue;
  2657. +                                       }
  2658. +                                       final LevelingInfo info = new LevelingInfo(absorbType, isSkillNeeded, chance);
  2659. +                                       if (att1 != null)
  2660. +                                       {
  2661. +                                           final int maxLevel = Integer.parseInt(att1.getNodeValue());
  2662. +                                           for (int i = 0; i <= maxLevel; i++)
  2663. +                                           {
  2664. +                                               temp.put(i, info);
  2665. +                                           }
  2666. +                                       }
  2667. +                                       else if (att2 != null)
  2668. +                                       {
  2669. +                                           final StringTokenizer st = new StringTokenizer(att2.getNodeValue(), ",");
  2670. +                                           final int tokenCount = st.countTokens();
  2671. +                                           for (int i = 0; i < tokenCount; i++)
  2672. +                                           {
  2673. +                                               Integer value = Integer.decode(st.nextToken().trim());
  2674. +                                               if (value == null)
  2675. +                                               {
  2676. +                                                   LOGGER.severe("[EnhanceYourWeapon] Bad Level value!! npcId: " + npcId + " token: " + i);
  2677. +                                                   value = 0;
  2678. +                                               }
  2679. +                                               temp.put(value, info);
  2680. +                                           }
  2681. +                                       }
  2682. +                                   }
  2683. +                               }
  2684. +                              
  2685. +                               if (temp.isEmpty())
  2686. +                               {
  2687. +                                   LOGGER.severe("[EnhanceYourWeapon] No leveling info for npcId: " + npcId + ", skipping");
  2688. +                                   continue;
  2689. +                               }
  2690. +                               NPC_LEVELING_INFO.put(npcId, temp);
  2691. +                           }
  2692. +                       }
  2693. +                   }
  2694. +               }
  2695. +           }
  2696. +       }
  2697. +       catch (Exception e)
  2698. +       {
  2699. +           LOGGER.log(Level.WARNING, "[EnhanceYourWeapon] Could not parse LevelUpCrystalData.xml file: " + e.getMessage(), e);
  2700. +       }
  2701. +       LOGGER.info("[EnhanceYourWeapon] Loaded " + SOUL_CRYSTALS.size() + " Soul Crystal data.");
  2702. +       LOGGER.info("[EnhanceYourWeapon] Loaded " + NPC_LEVELING_INFO.size() + " npc Leveling info data.");
  2703. +   }
  2704. +}
  2705. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-08.htm
  2706. ===================================================================
  2707. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-08.htm (nonexistent)
  2708. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-08.htm (working copy)
  2709. @@ -0,0 +1,7 @@
  2710. +<html><body>Magister Winonin:<br>
  2711. +Please choose one of the following three types of crystals:<br>
  2712. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-09.htm">Red Soul Crystal</button>
  2713. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-10.htm">Green Soul Crystal</button>
  2714. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-11.htm">Blue Soul Crystal</button>
  2715. +Each crystal bestows a different power upon the weapon it enhances, and the powers may vary from weapon to weapon.
  2716. +</body></html>
  2717. \ No newline at end of file
  2718. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-07.htm
  2719. ===================================================================
  2720. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-07.htm (nonexistent)
  2721. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-07.htm (working copy)
  2722. @@ -0,0 +1,6 @@
  2723. +<html><body>Grand Magister Jurek:<br>
  2724. +The collection of a soul doesn't always go as planned. Some evil souls will simply not be absorbed, and, if you happen to collect the wrong soul, the crystal will shatter...<br>
  2725. +Soul crystals develop refined tastes, and will reject weaker souls after a while. When this happens you must seek the souls of creatures of greater evil to satisfy your crystal.<br>
  2726. +Remember that you may not absorb a soul with more than one crystal because a resonance effect is created between the crystals that prevents proper absorbtion.<br>
  2727. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-08.htm">Receive a soul crystal.</button>
  2728. +</body></html>
  2729. \ No newline at end of file
  2730. Index: java/org/l2jmobius/gameserver/model/AbsorberInfo.java
  2731. ===================================================================
  2732. --- java/org/l2jmobius/gameserver/model/AbsorberInfo.java   (nonexistent)
  2733. +++ java/org/l2jmobius/gameserver/model/AbsorberInfo.java   (working copy)
  2734. @@ -0,0 +1,67 @@
  2735. +/*
  2736. + * This file is part of the L2J Mobius project.
  2737. + *
  2738. + * This program is free software: you can redistribute it and/or modify
  2739. + * it under the terms of the GNU General Public License as published by
  2740. + * the Free Software Foundation, either version 3 of the License, or
  2741. + * (at your option) any later version.
  2742. + *
  2743. + * This program is distributed in the hope that it will be useful,
  2744. + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  2745. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  2746. + * General Public License for more details.
  2747. + *
  2748. + * You should have received a copy of the GNU General Public License
  2749. + * along with this program. If not, see <http://www.gnu.org/licenses/>.
  2750. + */
  2751. +package org.l2jmobius.gameserver.model;
  2752. +
  2753. +import org.l2jmobius.gameserver.model.interfaces.IUniqueId;
  2754. +
  2755. +/**
  2756. + * @author xban1x
  2757. + */
  2758. +public class AbsorberInfo implements IUniqueId
  2759. +{
  2760. +   private int _objectId;
  2761. +   private double _absorbedHp;
  2762. +  
  2763. +   public AbsorberInfo(int objectId, double pAbsorbedHp)
  2764. +   {
  2765. +       _objectId = objectId;
  2766. +       _absorbedHp = pAbsorbedHp;
  2767. +   }
  2768. +  
  2769. +   public double getAbsorbedHp()
  2770. +   {
  2771. +       return _absorbedHp;
  2772. +   }
  2773. +  
  2774. +   public void setAbsorbedHp(double absorbedHp)
  2775. +   {
  2776. +       _absorbedHp = absorbedHp;
  2777. +   }
  2778. +  
  2779. +   @Override
  2780. +   public int getObjectId()
  2781. +   {
  2782. +       return _objectId;
  2783. +   }
  2784. +  
  2785. +   public void setObjectId(int objectId)
  2786. +   {
  2787. +       _objectId = objectId;
  2788. +   }
  2789. +  
  2790. +   @Override
  2791. +   public boolean equals(Object obj)
  2792. +   {
  2793. +       return (this == obj) || ((obj instanceof AbsorberInfo) && (((AbsorberInfo) obj).getObjectId() == _objectId));
  2794. +   }
  2795. +  
  2796. +   @Override
  2797. +   public int hashCode()
  2798. +   {
  2799. +       return _objectId;
  2800. +   }
  2801. +}
  2802. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-11.htm
  2803. ===================================================================
  2804. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-11.htm (nonexistent)
  2805. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-11.htm (working copy)
  2806. @@ -0,0 +1,4 @@
  2807. +<html><body>Magister Winonin:<br>
  2808. +Here is a blue soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it.<br>
  2809. +Next time we meet I hope you have gained more strength.
  2810. +</body></html>
  2811. \ No newline at end of file
  2812. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/exit.htm
  2813. ===================================================================
  2814. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/exit.htm (nonexistent)
  2815. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/exit.htm (working copy)
  2816. @@ -0,0 +1,2 @@
  2817. +<html><body>Goodbye
  2818. +</body></html>
  2819. \ No newline at end of file
  2820. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-12.htm
  2821. ===================================================================
  2822. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-12.htm (nonexistent)
  2823. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-12.htm (working copy)
  2824. @@ -0,0 +1,11 @@
  2825. +<html><body>Grand Magister Jurek:<br>
  2826. +From the following areas, which area's evil creatures would you like to obtain more information about?<br>
  2827. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-13.htm">Northern Oren</button>
  2828. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-14.htm">Forest of Mirrors</button>
  2829. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-15.htm">Cave of Giants</button>
  2830. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-16.htm">Devastated Castle</button>
  2831. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-17.htm">Tower of Insolence</button>
  2832. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-18.htm">Lair of Antharas</button>
  2833. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-19.htm">Eva's Underwater Garden</button>
  2834. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-20.htm">Devil's Isle</button>
  2835. +</body></html>
  2836. \ No newline at end of file
  2837. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-04.htm
  2838. ===================================================================
  2839. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-04.htm (nonexistent)
  2840. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-04.htm (working copy)
  2841. @@ -0,0 +1,5 @@
  2842. +<html><body>Grand Magister Jurek:<br>
  2843. +Oh, marvelous! If we all develop our strengths and work together, we will triumph over the coming cataclysm. My colleagues and I have recently developed a method of enhancing weaponry that should prove quite useful to all of us.<br>
  2844. +This <FONT COLOR=LEVEL>weapons enhancement</FONT> boosts strength noticeably in combat.<br>
  2845. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-05.htm">Explanation of weapons enhancement</button>
  2846. +</body></html>
  2847. \ No newline at end of file
  2848. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-15.htm
  2849. ===================================================================
  2850. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-15.htm (nonexistent)
  2851. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-15.htm (working copy)
  2852. @@ -0,0 +1,4 @@
  2853. +<html><body>Master Gideon:<br>
  2854. +It seems that the most evil creatures in the Cave of Giants are the <FONT COLOR=LEVEL>Halingkas, Yintzus, Paliotes, Hamruts, and Kranrots.</FONT><br>
  2855. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  2856. +</body></html>
  2857. \ No newline at end of file
  2858. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-07.htm
  2859. ===================================================================
  2860. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-07.htm (nonexistent)
  2861. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-07.htm (working copy)
  2862. @@ -0,0 +1,6 @@
  2863. +<html><body>Magister Winonin:<br>
  2864. +The collection of a soul doesn't always go as planned. Some evil souls will simply not be absorbed, and, if you happen to collect the wrong soul, the crystal will shatter...<br>
  2865. +Soul crystals develop refined tastes, and will reject weaker souls after a while. When this happens you must seek the souls of creatures of greater evil to satisfy your crystal.<br>
  2866. +Remember that you may not absorb a soul with more than one crystal because a resonance effect is created between the crystals that prevents proper absorbtion.<br>
  2867. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-08.htm">Receive a soul crystal.</button>
  2868. +</body></html>
  2869. \ No newline at end of file
  2870. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-19.htm
  2871. ===================================================================
  2872. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-19.htm (nonexistent)
  2873. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-19.htm (working copy)
  2874. @@ -0,0 +1,4 @@
  2875. +<html><body>Magister Winonin:<br>
  2876. +It seems that <FONT COLOR=LEVEL>all of the evil creatures inhabiting Eva's Underwater Garden</FONT> are appropriate soul donors.<br>
  2877. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  2878. +</body></html>
  2879. \ No newline at end of file
  2880. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-20.htm
  2881. ===================================================================
  2882. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-20.htm (nonexistent)
  2883. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-20.htm (working copy)
  2884. @@ -0,0 +1,4 @@
  2885. +<html><body>Master Gideon:<br>
  2886. +It seems that <FONT COLOR=LEVEL>all of the evil creatures inhabiting Devil's Isle</FONT> are appropriate soul donors.<br>
  2887. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  2888. +</body></html>
  2889. \ No newline at end of file
  2890. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-11.htm
  2891. ===================================================================
  2892. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-11.htm (nonexistent)
  2893. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-11.htm (working copy)
  2894. @@ -0,0 +1,4 @@
  2895. +<html><body>Grand Magister Jurek:<br>
  2896. +Here is a blue soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it.<br>
  2897. +Next time we meet I hope you have gained more strength.
  2898. +</body></html>
  2899. \ No newline at end of file
  2900. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-09.htm
  2901. ===================================================================
  2902. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-09.htm (nonexistent)
  2903. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-09.htm (working copy)
  2904. @@ -0,0 +1,4 @@
  2905. +<html><body>Master Gideon:<br>
  2906. +Here is a red soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it.<br>
  2907. +Next time we meet I hope you have gained more strength.
  2908. +</body></html>
  2909. \ No newline at end of file
  2910. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-12.htm
  2911. ===================================================================
  2912. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-12.htm (nonexistent)
  2913. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-12.htm (working copy)
  2914. @@ -0,0 +1,11 @@
  2915. +<html><body>Magister Winonin:<br>
  2916. +From the following areas, which area's evil creatures would you like to obtain more information about?<br>
  2917. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-13.htm">Northern Oren</button>
  2918. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-14.htm">Forest of Mirrors</button>
  2919. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-15.htm">Cave of Giants</button>
  2920. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-16.htm">Devastated Castle</button>
  2921. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-17.htm">Tower of Insolence</button>
  2922. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-18.htm">Lair of Antharas</button>
  2923. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-19.htm">Eva's Underwater Garden</button>
  2924. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-20.htm">Devil's Isle</button>
  2925. +</body></html>
  2926. \ No newline at end of file
  2927. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-05.htm
  2928. ===================================================================
  2929. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-05.htm (nonexistent)
  2930. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-05.htm (working copy)
  2931. @@ -0,0 +1,6 @@
  2932. +<html><body>Grand Magister Jurek:<br>
  2933. +To enhance a weapon you will need some <FONT COLOR=LEVEL>magical souls. You must collect the souls of evil creatures and trap them in the soul crystal I will give you.</FONT> You will then take the crystal to a blacksmith and he will extract the magic from the crystal and apply it to a weapon for you.<br>
  2934. +All blacksmiths know how to do this, but, obviously, they don't work for free.<br>
  2935. +You can collect the souls of the evil ones in the <FONT COLOR=LEVEL>northern part of Oren, the Forest of Mirrors, the Cave of Giants, the Devastated Castle, the upper floors of the Tower of Insolence, deep within the Lair of Antharas, Eva's Underwater Garden and Devil's Isle.</FONT> Enhanced weapons would greatly aid your mission.<br>
  2936. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30115-06.htm">"How do I collect the souls of the evil ones?"</button>
  2937. +</body></html>
  2938. \ No newline at end of file
  2939. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-14.htm
  2940. ===================================================================
  2941. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-14.htm (nonexistent)
  2942. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-14.htm (working copy)
  2943. @@ -0,0 +1,4 @@
  2944. +<html><body>Master Gideon:<br>
  2945. +It seems that the most evil creatures in the Forest of Mirrors are the <FONT COLOR=LEVEL>Forest of Mirror ghosts, mirrors and Harit Lizardmen.</FONT><br>
  2946. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  2947. +</body></html>
  2948. \ No newline at end of file
  2949. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-06.htm
  2950. ===================================================================
  2951. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-06.htm (nonexistent)
  2952. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-06.htm (working copy)
  2953. @@ -0,0 +1,5 @@
  2954. +<html><body>Magister Winonin:<br>
  2955. +<FONT COLOR=LEVEL>After you have sapped the evil one's strength in battle, apply the crystal to his skin. His soul will be absorbed into the crystal. His mortal body is easily dispatched.</FONT> Each soul crystal can contain up to 10 souls. <FONT COLOR=LEVEL>A more precise explanation would be that it can contain up to 10 souls with regular usage. I will tell you the detailed story later when you bring back the soul crystal with 10 souls.</FONT><br>
  2956. +Actually, collecting souls for the purpose of bestowing a weapon with a special power is not as easy as it sounds.<br>
  2957. +<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00350_EnhanceYourWeapon 30856-07.htm">What are the precautions to take when collecting souls?"</button>
  2958. +</body></html>
  2959. \ No newline at end of file
  2960. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-19.htm
  2961. ===================================================================
  2962. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-19.htm (nonexistent)
  2963. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-19.htm (working copy)
  2964. @@ -0,0 +1,4 @@
  2965. +<html><body>Grand Magister Jurek:<br>
  2966. +It seems that <FONT COLOR=LEVEL>all of the evil creatures inhabiting Eva's Underwater Garden</FONT> are appropriate soul donors.<br>
  2967. +Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
  2968. +</body></html>
  2969. \ No newline at end of file
  2970. Index: dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-10.htm
  2971. ===================================================================
  2972. --- dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-10.htm (nonexistent)
  2973. +++ dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-10.htm (working copy)
  2974. @@ -0,0 +1,4 @@
  2975. +<html><body>Grand Magister Jurek:<br>
  2976. +Here is a green soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it.<br>
  2977. +Next time we meet I hope you have gained more strength.
  2978. +</body></html>
  2979. \ No newline at end of file
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement