CatalogueQuestUpdates.lua 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236
  1. --[[
  2. Script Name : SpawnScripts/Generic/CatalogueQuestUpdates.lua
  3. Script Author : Dorbin
  4. Script Date : 2023.09.10 10:09:20
  5. Script Purpose : Facilitates updates for Catalogue Quest updates. Only created catalogue quests are referenced here.
  6. The script requires the 'Catalogue Creature' ability to be cast, Player to be on the right Quest, and the Appropriate Target/Update to complete the quest step.
  7. :
  8. --]]
  9. local OutlyingQeynos = 519
  10. local Antonica = 5885
  11. function casted_on(NPC, Spawn, Message)
  12. if Message == "Catalogue Creature" then
  13. --OUTLYING QEYNOS GUIDE-------------------------------------------------------
  14. if HasQuest(Spawn, OutlyingQeynos) then
  15. --OAKMYST FAIRIES
  16. if GetSpawnID(NPC) == 8300048 or GetSpawnID(NPC) == 8300049 or GetSpawnID(NPC) == 8300050 or GetSpawnID(NPC) == 8300014 or GetSpawnID(NPC) == 8300015 or GetSpawnID(NPC) == 8300011 then
  17. if GetQuestStepProgress(Spawn,OutlyingQeynos,1) == 0 then
  18. SetStepComplete(Spawn, OutlyingQeynos, 1)
  19. local con = CreateConversation()
  20. AddConversationOption(con, "Close the entry.")
  21. StartDialogConversation(con, 1, NPC, Spawn, "Oakmyst Fairy\n\n\"Oakmyst fairies should not be mistaken for sweet innocent pranksters. In a world of spirits, these fairies embody deception. Many tales are told to children of Qeynos about being led off into the woods by playful fayefolk, never to be seen again. Sadly, those tales are more true than I’d like to admit.\"\n\n-Heirophant Aldalad")
  22. end
  23. --SUNSHIMMER SPRITE
  24. elseif GetSpawnID(NPC) == 8300051 or GetSpawnID(NPC) == 8300052 or GetSpawnID(NPC) == 8300053 or GetSpawnID(NPC) == 8300006 or GetSpawnID(NPC) == 8300052 or GetSpawnID(NPC) == 8300012 then
  25. if GetQuestStepProgress(Spawn,OutlyingQeynos,2) == 0 then
  26. SetStepComplete(Spawn, OutlyingQeynos, 2)
  27. local con = CreateConversation()
  28. AddConversationOption(con, "Close the entry.")
  29. StartDialogConversation(con, 1, NPC, Spawn, "Sunshimmer Sprite\n\n\"Sprites are a newer addition to the Oakmyst since The Cataclysm. Supposedly hailing from more enchanted waters, they were swept in from the torrential winds. My fellow trackers have had difficulty determining the terms the sprites have made with the resident fairies to occupy the same woods. It is also unknown how they may shift the balance of these woods.\"\n\n-Tracker Kelnis")
  30. end
  31. --BADGER CUB
  32. elseif GetSpawnID(NPC) == 8300001 then
  33. if GetQuestStepProgress(Spawn,OutlyingQeynos,3) == 0 then
  34. SetStepComplete(Spawn, OutlyingQeynos, 3)
  35. local con = CreateConversation()
  36. AddConversationOption(con, "Close the entry.")
  37. StartDialogConversation(con, 1, NPC, Spawn, "Badger Cub\n\n\"Badger cubs go weeks before their ear canals develop. This lack of hearing causes the parental badgers to remain nearby at all times to provide a familiar scent. If a parent badger loses their young, for whatever reason, their temperament becomes vicious. The increased aggression empowers their attacks and manifests in their actual claws - a perfect ingredient for infusing nature's rage into mundane objects!\"\n\n-Yanari Cyellann")
  38. end
  39. --RUINS SKULKER
  40. elseif GetSpawnID(NPC) == 8270058 or GetSpawnID(NPC) == 8270059 or GetSpawnID(NPC) == 8270060 then
  41. if GetQuestStepProgress(Spawn,OutlyingQeynos,4) == 0 then
  42. SetStepComplete(Spawn, OutlyingQeynos, 4)
  43. local con = CreateConversation()
  44. AddConversationOption(con, "Close the entry.")
  45. StartDialogConversation(con, 1, NPC, Spawn, "Ruins Skulker\n\n\"The aqua goblins here in the ruins crawled out of the sea once the dust settled from the chunks of Luclin that collided in the old mage quarter. They have this insatiable need to collect and trade trinkets they find amongst each other. You have to wonder where they put it all…\"\n\n-Sergeant at Arms Uthros")
  46. end
  47. --FLAMEPAW LOYALIST
  48. elseif GetSpawnID(NPC) == 8270010 then
  49. if GetQuestStepProgress(Spawn,OutlyingQeynos,5) == 0 then
  50. SetStepComplete(Spawn, OutlyingQeynos, 5)
  51. local con = CreateConversation()
  52. AddConversationOption(con, "Close the entry.")
  53. StartDialogConversation(con, 1, NPC, Spawn, "Flamepaw Loyalist\n\n\"Kinloc Flamepaw was renowned in the Age of Turmoil for his control of summoning magic in Qeynos. Aspiring mages flocked to him for protection from The Shattering as Luclin succumbed to its fate. Fortunately for us, he sacrificed himself to protect Qeynos. He did this by weaving together elements to absorb most of the impacts… His aspiring students were not as lucky. Even now, those mages still cling to Kinloc's remains, searching for answers. \"\n\n-Bellengere the Three")
  54. end
  55. --SLEEPLESS ONE
  56. elseif GetSpawnID(NPC) == 8270018 or GetSpawnID(NPC) == 8270066 then
  57. if GetQuestStepProgress(Spawn,OutlyingQeynos,6) == 0 then
  58. SetStepComplete(Spawn, OutlyingQeynos, 6)
  59. local con = CreateConversation()
  60. AddConversationOption(con, "Close the entry.")
  61. StartDialogConversation(con, 1, NPC, Spawn, "Sleepless One\n\n\"Not all students of the arcane are as focused as I would like. Ages ago, meditation to regain precious mana was a common practice. This required closing your mind to distraction and feeling the mana flow through you. Still in the old magician guild ruins, these students continue their meditations- even in undeath. They might not even know they're dead!\n\nI'de doubt if today's students have that sort of attention span... \"\n\n-Telamina Garendell")
  62. end
  63. --ALABASTER GOLEM
  64. elseif GetSpawnID(NPC) == 8260021 or GetSpawnID(NPC) == 8260022 or GetSpawnID(NPC) == 8260077 or GetSpawnID(NPC) == 8260079 then
  65. if GetQuestStepProgress(Spawn,OutlyingQeynos,7) == 0 then
  66. SetStepComplete(Spawn, OutlyingQeynos, 7)
  67. local con = CreateConversation()
  68. AddConversationOption(con, "Close the entry.")
  69. StartDialogConversation(con, 1, NPC, Spawn, "Alabaster Golem\n\n\"It is believed that waters with trace magical properties have seeped below the old ruins of the original Three Towers and have impacted the geology below. The affected stones themselves became animated, similar to the guardians above - smoothing their edges through repetative movements.\n\nRumor is that gnolls have taken these malformed constructs as ‘pets.’ Can you imagine? Gnolls?! \"\n\n-Elspeth Astley of the Three Towers")
  70. end
  71. --DUSTPAW GUARD
  72. elseif GetSpawnID(NPC) == 8260006 then
  73. if GetQuestStepProgress(Spawn,OutlyingQeynos,8) == 0 then
  74. SetStepComplete(Spawn, OutlyingQeynos, 8)
  75. local con = CreateConversation()
  76. AddConversationOption(con, "Close the entry.")
  77. StartDialogConversation(con, 1, NPC, Spawn, "Dustpaw Guard\n\n\"Fortunately for Qeynos, the splintered gnoll factions down in the caves have distractions that keep them in their tunnels. With little exposure to the outside dangers, their guards spend more time protecting their treasures than their kin. If a treasure hunter were savvy enough, they might find some tucked away in their ornamental chests… if you don’t mind the smell of wet dog.\"\n\n-Knight-Lieutenant Laughlin")
  78. end
  79. --ALBINO PYTHON
  80. elseif GetSpawnID(NPC) == 8260024 then
  81. if GetQuestStepProgress(Spawn,OutlyingQeynos,9) == 0 then
  82. SetStepComplete(Spawn, OutlyingQeynos, 9)
  83. local con = CreateConversation()
  84. AddConversationOption(con, "Close the entry.")
  85. StartDialogConversation(con, 1, NPC, Spawn, "Albino Python\n\n\"A purveyor of exotic beasts offered me a rare specimen a few years ago - a white python. Supposedly traded as pets from old Neriak between the upper class, I pounced at the opportunity to make a few gold on such a rare find. Little did I know that the thing was pregnant!\"\n\n-Donovan Herald, Pet Shop Owner")
  86. end
  87. --BOG SLUDGE
  88. elseif GetSpawnID(NPC) == 8290004 then
  89. if GetQuestStepProgress(Spawn,OutlyingQeynos,10) == 0 then
  90. SetStepComplete(Spawn, OutlyingQeynos, 10)
  91. local con = CreateConversation()
  92. AddConversationOption(con, "Close the entry.")
  93. StartDialogConversation(con, 1, NPC, Spawn, "Bog Sludge\n\n\"While easily enough to confuse for muck, the bog sludges in the Peat Bog are actually abandoned conjuration attempts by young students of the arcane. The current theory believes that when the conjuration’s magic is exhausted, it dissolves into the earth. I’m still testing the possibility that they may congeal into one massive creature, but that could have disastrous (and most assuredly messy) results! \"\n\n-Magister Niksel")
  94. end
  95. --MARSH HATCHLING
  96. elseif GetSpawnID(NPC) == 8290022 then
  97. if GetQuestStepProgress(Spawn,OutlyingQeynos,11) == 0 then
  98. SetStepComplete(Spawn, OutlyingQeynos, 11)
  99. local con = CreateConversation()
  100. AddConversationOption(con, "Close the entry.")
  101. StartDialogConversation(con, 1, NPC, Spawn, "Marsh Hatchling\n\n\"Slugs have been a common sight in the Peat Bog for ages. All the waste material pumped into the bog from Qeynos is broken down by the critters there, particularly the slugs. Slugs are essential part of a marsh monitor's diet and keep the slug populations in check. Without the monitor lizards, the slugs would devour the bog and end up in our homes!\n\nThat muck you’re standing in when you’re in the bog? That was inside a slug. So be thankful to the marsh hatchlings.\"\n\n-Sean Wellfayer, Angler")
  102. end
  103. --BOG FAERIE
  104. elseif GetSpawnID(NPC) == 8290001 or GetSpawnID(NPC) == 8290002 or GetSpawnID(NPC) == 8290003 or GetSpawnID(NPC) == 8290052 then
  105. if GetQuestStepProgress(Spawn,OutlyingQeynos,12) == 0 then
  106. SetStepComplete(Spawn, OutlyingQeynos, 12)
  107. local con = CreateConversation()
  108. AddConversationOption(con, "Close the entry.")
  109. StartDialogConversation(con, 1, NPC, Spawn, "Bog Faerie\n\n\"Faeries in the bog have been a menace to neighboring communities since they took up residence there—pranking, prodding, and meddling in the affairs of refugees and citizens alike. Some reports state they have some sort of allegiance to an elusive Queen or whatnot, but if that were true, I would have rooted them out ages ago!\"\n\n-Knight-Lieutenant Ilgar")
  110. end
  111. end
  112. --ANTONICA GUIDE-------------------------------------------------------
  113. elseif HasQuest(Spawn, Antonica) then
  114. --YOUNG KODIAK
  115. if GetSpawnID(NPC) == 120294 then
  116. if GetQuestStepProgress(Spawn,Antonica,1) == 0 then
  117. SetStepComplete(Spawn, Antonica, 1)
  118. end
  119. --GRIZZLED BADGER
  120. elseif GetSpawnID(NPC) == 120014 then
  121. if GetQuestStepProgress(Spawn,Antonica,2) == 0 then
  122. SetStepComplete(Spawn, Antonica, 2)
  123. end
  124. --LOWLAND VIPER
  125. elseif GetSpawnID(NPC) == 120068 then
  126. if GetQuestStepProgress(Spawn,Antonica,3) == 0 then
  127. SetStepComplete(Spawn, Antonica, 3)
  128. end
  129. --COLDWIND OCTOPUS
  130. elseif GetSpawnID(NPC) == 120032 or GetSpawnID(NPC) == 120193 or GetSpawnID(NPC) == 120085 or GetSpawnID(NPC) == 120194 then
  131. if GetQuestStepProgress(Spawn,Antonica,4) == 0 then
  132. SetStepComplete(Spawn, Antonica, 4)
  133. end
  134. --SONIC SHRIEKER
  135. elseif GetSpawnID(NPC) == 120297 then
  136. if GetQuestStepProgress(Spawn,Antonica,5) == 0 then
  137. SetStepComplete(Spawn, Antonica, 5)
  138. end
  139. --KLICNIK WARRIOR
  140. elseif GetSpawnID(NPC) == 120253 or GetSpawnID(NPC) == 120367 then
  141. if GetQuestStepProgress(Spawn,Antonica,6) == 0 then
  142. SetStepComplete(Spawn, Antonica, 6)
  143. end
  144. --TIMBERCLAW GNOLL
  145. elseif GetSpawnID(NPC) == 120296 or GetSpawnID(NPC) == 120295 then
  146. if GetQuestStepProgress(Spawn,Antonica,7) == 0 then
  147. SetStepComplete(Spawn, Antonica, 7)
  148. end
  149. --DANKFUR GNOLL
  150. elseif GetSpawnID(NPC) == 121482 or GetSpawnID(NPC) == 120420 or GetSpawnID(NPC) == 120340 then
  151. if GetQuestStepProgress(Spawn,Antonica,8) == 0 then
  152. SetStepComplete(Spawn, Antonica, 8)
  153. end
  154. --POND BEAVER
  155. elseif GetSpawnID(NPC) == 120415 then
  156. if GetQuestStepProgress(Spawn,Antonica,9) == 0 then
  157. SetStepComplete(Spawn, Antonica, 9)
  158. end
  159. --SOGBONE SKELETON
  160. elseif GetSpawnID(NPC) == 120261 then
  161. if GetQuestStepProgress(Spawn,Antonica,10) == 0 then
  162. SetStepComplete(Spawn, Antonica, 10)
  163. end
  164. --KODIAK
  165. elseif GetSpawnID(NPC) == 120105 then
  166. if GetQuestStepProgress(Spawn,Antonica,11) == 0 then
  167. SetStepComplete(Spawn, Antonica, 11)
  168. end
  169. --TIDEWALKER BEHEMOTH
  170. elseif GetSpawnID(NPC) == 120243 then
  171. if GetQuestStepProgress(Spawn,Antonica,12) == 0 then
  172. SetStepComplete(Spawn, Antonica, 12)
  173. end
  174. --ROOT STRANGLER
  175. elseif GetSpawnID(NPC) == 120475 then
  176. if GetQuestStepProgress(Spawn,Antonica,13) == 0 then
  177. SetStepComplete(Spawn, Antonica, 13)
  178. end
  179. --EARTHEN BURROWER
  180. elseif GetSpawnID(NPC) == 120157 then
  181. if GetQuestStepProgress(Spawn,Antonica,14) == 0 then
  182. SetStepComplete(Spawn, Antonica, 14)
  183. end
  184. --WANDERING BAT
  185. elseif GetSpawnID(NPC) == 120210 then
  186. if GetQuestStepProgress(Spawn,Antonica,15) == 0 then
  187. SetStepComplete(Spawn, Antonica, 15)
  188. end
  189. end
  190. end
  191. end
  192. end