TheSageofAges.lua 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270
  1. --[[
  2. Script Name : SpawnScripts/Antonica/TheSageofAges.lua
  3. Script Author : Dorbin
  4. Script Date : 2022.06.01 06:06:34
  5. Script Purpose :
  6. :
  7. --]]
  8. require "SpawnScripts/Generic/DialogModule"
  9. local Drag = 5577
  10. local FireIce =5578
  11. function spawn(NPC)
  12. end
  13. function respawn(NPC)
  14. spawn(NPC)
  15. end
  16. function hailed(NPC, Spawn)
  17. if GetQuestStep(Spawn,Drag)==1 or GetQuestStep(Spawn,Drag)==2 then
  18. Dialog19(NPC, Spawn)
  19. elseif GetQuestStep(Spawn,Drag)==3 or GetQuestStep(Spawn,Drag)==4 or GetQuestStep(Spawn,Drag)==5 or GetQuestStep(Spawn,Drag)==6 or GetQuestStep(Spawn,Drag)==7 or GetQuestStep(Spawn,Drag)==8 or GetQuestStep(Spawn,Drag)==9 or GetQuestStep(Spawn,Drag)==10 or GetQuestStep(Spawn,Drag)==11 or GetQuestStep(Spawn,Drag)==12 or GetQuestStep(Spawn,Drag)==13 or GetQuestStep(Spawn,Drag)==27 or GetQuestStep(Spawn,Drag)==26 or GetQuestStep(Spawn,Drag)==28 or GetQuestStep(Spawn,Drag)==14 or GetQuestStep(Spawn,Drag)==15 or GetQuestStep(Spawn,Drag)==18 or GetQuestStep(Spawn,Drag)==20 or GetQuestStep(Spawn,Drag)==29 then
  20. Dialog14(NPC, Spawn)
  21. -- RandomGreeting(NPC, Spawn)
  22. elseif HasCompletedQuest(Spawn,Drag) and HasQuest(Spawn,FireIce)then
  23. Dialog11(NPC, Spawn)
  24. end
  25. end
  26. function RandomGreeting(NPC, Spawn)
  27. local choice = MakeRandomInt(1,3)
  28. if choice == 1 then
  29. PlayVoice(NPC, "voiceover/english/voice_emotes/greetings/greetings_2_1022.mp3", 0, 0, Spawn)
  30. elseif choice == 2 then
  31. PlayVoice(NPC, "voiceover/english/voice_emotes/greetings/greetings_3_1022.mp3", 0, 0, Spawn)
  32. elseif choice == 3 then
  33. PlayVoice(NPC, "voiceover/english/voice_emotes/greetings/greetings_1_1022.mp3", 0, 0, Spawn)
  34. end
  35. end
  36. function Dialog1(NPC, Spawn)
  37. FaceTarget(NPC, Spawn)
  38. Dialog.New(NPC, Spawn)
  39. Dialog.AddDialog("No. The research relating to understanding just one of the runes is far too precious for the owner to consent in relinquishing it, and there is not enough wealth on Norrath to purchase the translated runes from the individual owners. It is even quite likely that half the research is lost to the sands of time, having been destroyed in the cataclysms. ")
  40. Dialog.AddVoiceover("the_sage_of_ages/draconic/sage_of_ages013.mp3", 3880431009, 895005648)
  41. Dialog.AddOption("If I were able to obtain all the research, would you be able to teach me the language?", "Dialog13")
  42. Dialog.Start()
  43. end
  44. function Dialog2(NPC, Spawn)
  45. FaceTarget(NPC, Spawn)
  46. Dialog.New(NPC, Spawn)
  47. Dialog.AddDialog("Those Drakota must have rebelled against him and stole the shards for their own grab at power. Nagafen is still too weak from the Truthspeaker's attack to go after them himself, so he remains safely in his lair while he gets mortals to do his dirty work. ")
  48. Dialog.AddVoiceover("the_sage_of_ages/draconic/sage_of_ages022.mp3", 300799050, 2936988194)
  49. Dialog.AddOption("Who is the Truthspeaker? ", "Dialog3")
  50. Dialog.Start()
  51. end
  52. function Dialog3(NPC, Spawn)
  53. FaceTarget(NPC, Spawn)
  54. Dialog.New(NPC, Spawn)
  55. Dialog.AddDialog("The Truthspeaker was an agent of the Ring of Scale. It was he who risked his life to lead the Drakota, the same Drakota that Nagafen now commands, in an attack to stop the mating of Nagafen and Vox, a mating that would result in utter doom for all of Norrath! The Truthspeaker's Drakota were able to destroy Vox to prevent the union, but Nagafen was able to retreat to the safety of his lair.")
  56. Dialog.AddVoiceover("the_sage_of_ages/draconic/sage_of_ages023.mp3", 378285402, 2423385351)
  57. Dialog.AddOption("Where is the Truthspeaker now? ", "Dialog17")
  58. Dialog.AddOption("Why is the mating of the Lady Vox and the Lord Nagafen so dangerous? ")
  59. Dialog.Start()
  60. end
  61. function Dialog4(NPC, Spawn)
  62. FaceTarget(NPC, Spawn)
  63. Dialog.New(NPC, Spawn)
  64. Dialog.AddDialog("Restore the Lady Vox to life? Nagafen must know that mortals do not have sufficient power or knowledge to resurrect an elder dragon from the dead. I do not trust him. The King of Fire is deceitful and sinister. His forked tongue only speaks lies. This must be why he wants me destroyed. He means to put his plots in motion and knows that I am aware of his trickery.")
  65. Dialog.AddVoiceover("the_sage_of_ages/draconic/sage_of_ages021.mp3", 717214449, 4029953103)
  66. Dialog.AddOption("If that is true, then why does he want me to kill his Drakota and reclaim Vox's essence shards?", "Dialog2")
  67. Dialog.Start()
  68. end
  69. function Dialog5(NPC, Spawn)
  70. FaceTarget(NPC, Spawn)
  71. Dialog.New(NPC, Spawn)
  72. Dialog.AddDialog("Look to the sky, child. The destruction you find there is the doing of the Sleeper simply as a display of power and a reminder to all living beings of his supremacy. Do you realize the danger now? Nagafen wants the power to do just that. Imagine an army of dragons that could each do that with Nagafen and Vox reigning king and queen over them. It is well that the Truthspeaker succeeded in his task to destroy the Lady Vox.")
  73. Dialog.AddVoiceover("the_sage_of_ages/draconic/sage_of_ages026.mp3", 1118947610, 4281103827)
  74. Dialog.AddOption("Now Nagafen wants me to help return her to life. ", "Dialog21")
  75. Dialog.Start()
  76. end
  77. function Dialog6(NPC, Spawn)
  78. FaceTarget(NPC, Spawn)
  79. Dialog.New(NPC, Spawn)
  80. Dialog.AddDialog("I sincerely hope you are right, but I fear it cannot be done. However, I wish you the best of luck in this quest. In the meantime I will look into my own research and libraries for clues into the greater plot that is unfolding around us. Be careful in your journeys, you may be in far more danger than we know.")
  81. Dialog.AddVoiceover("the_sage_of_ages/draconic/sage_of_ages015.mp3", 3846775839, 1239712166)
  82. Dialog.AddOption("I will. Farewell Sage. ","DragUpdate")
  83. Dialog.Start()
  84. end
  85. function DragUpdate(NPC, Spawn)
  86. FaceTarget(NPC, Spawn)
  87. QuestStepIsComplete(Spawn,Drag,2)
  88. end
  89. function Dialog7(NPC, Spawn)
  90. FaceTarget(NPC, Spawn)
  91. Dialog.New(NPC, Spawn)
  92. Dialog.AddDialog("If the Lady Vox knew the location of this orb, it might be Nagafen's plan for you to resurrect the spirit of Vox long enough to discover the whereabouts. Even though Nagafen is using you, the best course of action would be to follow his plan so that we can learn of the orb's location before he can lay his claws upon it. Find this orb and bring it to me. We will foil the Lord Nagafen's villainous plot.")
  93. Dialog.AddVoiceover("the_sage_of_ages/draconic/sage_of_ages029.mp3", 2075555749, 3374038885)
  94. Dialog.AddOption("Are you sure this is the best thing to do? ", "Dialog8")
  95. Dialog.AddOption("Yes, that sounds like a good plan. ")
  96. Dialog.Start()
  97. end
  98. function Dialog8(NPC, Spawn)
  99. FaceTarget(NPC, Spawn)
  100. Dialog.New(NPC, Spawn)
  101. Dialog.AddDialog("It frightens me to say this, but yes, this is the course of action we need to take. This orb will fall into Nagafen's claws in due time unless we act to prevent it. He may already have other groups searching for it. The orcs you encountered while collecting the runes may be one such group.")
  102. Dialog.AddVoiceover("the_sage_of_ages/draconic/sage_of_ages030.mp3", 2293784606, 1662398106)
  103. Dialog.AddOption("I understand. ", "Dialog18")
  104. Dialog.Start()
  105. end
  106. function Dialog9(NPC, Spawn)
  107. FaceTarget(NPC, Spawn)
  108. Dialog.New(NPC, Spawn)
  109. Dialog.AddDialog("An Orb of Omnipotence? I have not heard of such a thing. Did he say why he wanted it?")
  110. Dialog.AddVoiceover("the_sage_of_ages/draconic/sage_of_ages028.mp3", 659900152, 3550811141)
  111. Dialog.AddOption("No, just that it belonged to him and he would double our reward if we brought it to him. ", "Dialog7")
  112. Dialog.Start()
  113. end
  114. function Dialog10(NPC, Spawn)
  115. FaceTarget(NPC, Spawn)
  116. Dialog.New(NPC, Spawn)
  117. Dialog.AddDialog("Yes ... Yes ... I will be able to teach you this language now.")
  118. Dialog.AddVoiceover("the_sage_of_ages/draconic/sage_of_ages019.mp3", 2732880442, 1441450687)
  119. Dialog.AddOption("Good, let's get started. ","DragFinish")
  120. Dialog.Start()
  121. end
  122. function DragFinish(NPC, Spawn)
  123. FaceTarget(NPC, Spawn)
  124. QuestStepIsComplete(Spawn,Drag,29)
  125. end
  126. function Dialog11(NPC, Spawn)
  127. FaceTarget(NPC, Spawn)
  128. Dialog.New(NPC, Spawn)
  129. Dialog.AddDialog("Greetings, adventurer! I am pleased to see that you still live. Did you speak to Lord Nagafen?")
  130. Dialog.AddVoiceover("the_sage_of_ages/draconic/sage_of_ages020.mp3", 324789125, 3962714360)
  131. Dialog.AddOption("No, not yet. ")
  132. Dialog.Start()
  133. end
  134. function Dialog12(NPC, Spawn)
  135. FaceTarget(NPC, Spawn)
  136. Dialog.New(NPC, Spawn)
  137. Dialog.AddDialog("It is forbidden among dragonkind for dragons of differing elements to mate and bring forth offspring. The combination of the elements result in a prismatic dragon, a creature of immense power and energy. Only one prismatic dragon has existed on Norrath, the Sleeper, Kerafyrm. Nagafen must believe he can control a prismatic offspring, but it seems he cannot even fully control the Drakota he wrested from the Truthspeaker.")
  138. Dialog.AddVoiceover("the_sage_of_ages/draconic/sage_of_ages025.mp3", 744907193, 303219507)
  139. Dialog.AddOption("How powerful are prismatic dragons? ", "Dialog5")
  140. Dialog.Start()
  141. end
  142. function Dialog13(NPC, Spawn)
  143. FaceTarget(NPC, Spawn)
  144. Dialog.New(NPC, Spawn)
  145. Dialog.AddDialog("Yes ... yes, I believe I could. I know many techniques and spells that enhance the learning of tongues, but this idea is all for naught. It is impossible for one person to obtain all the translated Draconic runes, let alone find them. It is a hopeless quest, friend.")
  146. Dialog.AddVoiceover("the_sage_of_ages/draconic/sage_of_ages014.mp3", 865879437, 2521426664)
  147. Dialog.AddOption("It can be done. I will find the runes. ", "Dialog6")
  148. Dialog.Start()
  149. end
  150. function Dialog14(NPC, Spawn)
  151. FaceTarget(NPC, Spawn)
  152. Dialog.New(NPC, Spawn)
  153. Dialog.AddDialog("Greetings, adventurer! What word do you have on the runes of the Draconic language?")
  154. Dialog.AddVoiceover("the_sage_of_ages/draconic/sage_of_ages016.mp3", 1144286840, 1817664808)
  155. Dialog.AddOption("I am making progress, but I still do not have all twenty six runes. ")
  156. if GetQuestStep(Spawn,Drag)==29 then
  157. Dialog.AddOption("I have obtained research on the translation of all twenty six Draconic runes. ", "Dialog23")
  158. end
  159. Dialog.Start()
  160. end
  161. function Dialog15(NPC, Spawn)
  162. FaceTarget(NPC, Spawn)
  163. Dialog.New(NPC, Spawn)
  164. Dialog.AddDialog("Orcs? Their kind has never been interested in knowledge such as this, even after the lifting of the Rathe's curse. This does not bode well...")
  165. Dialog.AddVoiceover("the_sage_of_ages/draconic/sage_of_ages018.mp3", 2339550336, 327645109)
  166. Dialog.AddOption("Will you be able to teach me Draconic? ", "Dialog10")
  167. Dialog.Start()
  168. end
  169. function Dialog16(NPC, Spawn)
  170. FaceTarget(NPC, Spawn)
  171. Dialog.New(NPC, Spawn)
  172. Dialog.AddDialog("This is a very unfortunate turn of events. Very few beings on Norrath know of this language, and even fewer still know enough to read and teach it. Many mortal scholars have tried to study the language but even finding one written rune of the language is a challenge. Some have dedicated their entire research to just understanding one or two of the Draconic letters.")
  173. Dialog.AddVoiceover("the_sage_of_ages/draconic/sage_of_ages011.mp3", 545378275, 1782543526)
  174. Dialog.AddOption("Do you have any research on the language? ", "Dialog20")
  175. Dialog.Start()
  176. end
  177. function Dialog17(NPC, Spawn)
  178. FaceTarget(NPC, Spawn)
  179. Dialog.New(NPC, Spawn)
  180. Dialog.AddDialog("The Truthspeaker has not been heard of since the attack on Nagafen in the Lavastorm Mountains. All that is known of that attack is that Nagafen lives and is now in control of the Drakota assassins. The Truthspeaker is presumed destroyed.")
  181. Dialog.AddVoiceover("the_sage_of_ages/draconic/sage_of_ages024.mp3", 3567160806, 1171044088)
  182. Dialog.AddOption("Why is the mating of the Lady Vox and the Lord Nagafen so dangerous? ", "Dialog12")
  183. Dialog.Start()
  184. end
  185. function Dialog18(NPC, Spawn)
  186. FaceTarget(NPC, Spawn)
  187. Dialog.New(NPC, Spawn)
  188. Dialog.AddDialog("Follow Nagafen's instruction in resurrecting Vox's spirit, but only in this. Do not trust his words. He will deceive you with lies and fallacies. He will twist the truth and double cross you in the end. Do not let him do this for he means to bring about the destruction of this world.")
  189. Dialog.AddVoiceover("the_sage_of_ages/draconic/sage_of_ages031.mp3", 2269350236, 2908922351)
  190. Dialog.AddOption("I will resurrect Vox and learn the location of this orb. ")
  191. Dialog.Start()
  192. end
  193. function Dialog19(NPC, Spawn)
  194. FaceTarget(NPC, Spawn)
  195. Dialog.New(NPC, Spawn)
  196. Dialog.AddDialog("Have you spoken with the Lord Nagafen?")
  197. Dialog.AddVoiceover("the_sage_of_ages/draconic/sage_of_ages010.mp3", 2996841651, 3104118564)
  198. if GetQuestStep(Spawn,Drag)==2 then
  199. Dialog.AddOption("No, the majordomo will not let me enter the lair without knowing Draconic.", "Dialog16")
  200. end
  201. Dialog.AddOption("No. I haven't been into Nagafen's lair yet. ")
  202. Dialog.Start()
  203. end
  204. function Dialog20(NPC, Spawn)
  205. FaceTarget(NPC, Spawn)
  206. Dialog.New(NPC, Spawn)
  207. Dialog.AddDialog("Sadly, no. There are many ancient languages I have scribed for historical record but Draconic has always eluded my reach. However, I have heard theories from my consociates that it might be possible to make a compilation of all the research on the Draconic runes if someone were to gather all the work done by the various scholars.")
  208. Dialog.AddVoiceover("the_sage_of_ages/draconic/sage_of_ages012.mp3", 758040686, 339801576)
  209. Dialog.AddOption("Has this compilation ever been attempted? ", "Dialog1")
  210. Dialog.Start()
  211. end
  212. function Dialog21(NPC, Spawn)
  213. FaceTarget(NPC, Spawn)
  214. Dialog.New(NPC, Spawn)
  215. Dialog.AddDialog("Yes and that part worries me. He must know that no mortal possesses the ability to return an elder dragon to full life. There must be another reason why he wishes you to attempt this.")
  216. Dialog.AddVoiceover("the_sage_of_ages/draconic/sage_of_ages027.mp3", 3355447299, 1041652679)
  217. Dialog.AddOption("He also asked if the Drakota we defeated were in possession of a glowing orb, an Orb of Omnipotence he called it. ", "Dialog9")
  218. Dialog.Start()
  219. end
  220. function Dialog22(NPC, Spawn)
  221. FaceTarget(NPC, Spawn)
  222. Dialog.New(NPC, Spawn)
  223. Dialog.AddDialog("Greetings, adventurer! I am pleased to see that you still live. Did you speak to Lord Nagafen?")
  224. Dialog.AddVoiceover("the_sage_of_ages/draconic/sage_of_ages020.mp3", 324789125, 3962714360)
  225. Dialog.AddOption("Yes. He says he is not responsible for the Drakota's attacking you. He asks that my companions and I seek to restore Vox to life. ", "Dialog4")
  226. Dialog.AddOption("No, not yet. ")
  227. Dialog.Start()
  228. end
  229. function Dialog23(NPC, Spawn)
  230. FaceTarget(NPC, Spawn)
  231. Dialog.New(NPC, Spawn)
  232. Dialog.AddDialog("The gods be awakened! Can it be true?! Yes! You have done it! I can't fathom how you obtained all these, but here they are. This is truly amazing!")
  233. Dialog.AddVoiceover("the_sage_of_ages/draconic/sage_of_ages017.mp3", 2273109136, 863771443)
  234. Dialog.AddOption("There were orcs all over these things. They seem to be after them as well.", "Dialog15")
  235. Dialog.Start()
  236. end