GinwyssDArkenett.lua 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300
  1. --[[
  2. Script Name : SpawnScripts/Darklight/GinwyssDArkenett.lua
  3. Script Purpose : Ginwyss D'Arkenett ID 340064
  4. Script Author : Cynnar
  5. Script Date : 2015.12.30
  6. Script Notes : A Guard Insignia? Examine item a Neriak recruit badge dropped by moldering soldiers
  7. Scritp Notes : It leads to Gwinyss final quest.
  8. --]]
  9. local NoUndeadGoesUnturned = 134
  10. local ThexianTaint = 135
  11. local RottingScum = 138
  12. local PickingUpSlack = 139
  13. local AGuardInsignia = 140
  14. local MissingRecruit = 141
  15. function spawn(NPC)
  16. ProvidesQuest(NPC, RottingScum)
  17. ProvidesQuest(NPC, PickingUpSlack)
  18. end
  19. function respawn(NPC)
  20. spawn(NPC)
  21. end
  22. function hailed(NPC, Spawn)
  23. FaceTarget(NPC, Spawn)
  24. conversation = CreateConversation()
  25. if not HasCompletedQuest(Spawn, ThexianTaint) and GetQuestStep(Spawn, ThexianTaint) < 3 then
  26. StartConversation(conversation, NPC, Spawn, "You need speak with Sselnyl Do'Zyth in Hate's Envy, then come back and see me.")
  27. elseif not HasCompletedQuest(Spawn, ThexianTaint) and GetQuestStep(Spawn, ThexianTaint) == 3 then
  28. PlayFlavor(NPC, "ginwyss_d_arkenett/darklight_wood/tvatar_post/ginwyss_revamp/ginwyss001.mp3", "", "", 3871091964, 1580185291, Spawn)
  29. AddConversationOption(conversation, "Sselnyl Do'Zyth has sent me from Hate's Envy. I've just stopped a Thexian Desecrator from completing a ritual at the Wellspring of Nightmares.", "ThexianTaint_Finish")
  30. AddConversationOption(conversation, "Is there nothing I can do to help?", "Quest_RottingScum_B")
  31. AddConversationOption(conversation, "I must be going.")
  32. StartConversation(conversation, NPC, Spawn, "You wish to help? If that's the case, then you need speak with Sselnyl Do'Zyth in Hate's Envy")
  33. elseif HasCompletedQuest(Spawn, ThexianTaint) and not HasCompletedQuest(Spawn, RottingScum) then
  34. if HasQuest(Spawn, RottingScum) then
  35. if GetQuestStep(Spawn, RottingScum) ~= 3 then
  36. PlayFlavor(NPC, "ginwyss_d_arkenett/darklight_wood/tvatar_post/ginwyss_revamp/ginwyss009.mp3", "", "", 1363812552, 1394644666, Spawn)
  37. AddConversationOption(conversation, "Not yet.", "RottingScum_No")
  38. else
  39. PlayFlavor(NPC, "ginwyss_d_arkenett/darklight_wood/tvatar_post/ginwyss_revamp/ginwyss009.mp3", "", "", 1363812552, 1394644666, Spawn)
  40. AddConversationOption(conversation, "I have.", "RottingScum_Yes")
  41. end
  42. StartConversation(conversation, NPC, Spawn, "Have you decimated the Thexian's proxy army?")
  43. else
  44. PlayFlavor(NPC, "ginwyss_d_arkenett/darklight_wood/tvatar_post/ginwyss_revamp/ginwyss001.mp3", "", "", 3871091964, 1580185291, Spawn)
  45. AddConversationOption(conversation, "Is there nothing I can do to help?", "Quest_RottingScum_B")
  46. AddConversationOption(conversation, "I must be going.")
  47. StartConversation(conversation, NPC, Spawn, "Yes? We've much to deal with here, so if I seem uneager to speak with you that is why.")
  48. end
  49. elseif HasCompletedQuest(Spawn, RottingScum) and not HasQuest(Spawn, PickingUpSlack) and not HasCompletedQuest(Spawn, PickingUpSlack) then
  50. PickingUpSlack_B(NPC, Spawn)
  51. elseif HasQuest(Spawn, PickingUpSlack) and not HasCompletedQuest(Spawn, PickingUpSlack) then
  52. if GetQuestStep(Spawn, PickingUpSlack) < 2 then
  53. PlayFlavor(NPC, "ginwyss_d_arkenett/darklight_wood/tvatar_post/ginwyss_revamp/ginwyss016.mp3", "", "", 1608180400, 3304590468, Spawn)
  54. AddConversationOption(conversation, "Not yet.", "PickingUpSlack_No")
  55. else
  56. PlayFlavor(NPC, "ginwyss_d_arkenett/darklight_wood/tvatar_post/ginwyss_revamp/ginwyss016.mp3", "", "", 1608180400, 3304590468, Spawn)
  57. AddConversationOption(conversation, "I have.", "PickingUpSlack_Yes")
  58. end
  59. StartConversation(conversation, NPC, Spawn, "Did you collect enough scrap pieces of armor?")
  60. elseif HasCompletedQuest(Spawn, PickingUpSlack) and not HasQuest(Spawn, AGuardInsignia) and not HasCompletedQuest(Spawn, AGuardInsignia) then
  61. PickingUpSlack_02(NPC, Spawn)
  62. elseif HasQuest(Spawn, AGuardInsignia)then --and not HasQuest(Spawn, MissingRecruit) then
  63. PlayFlavor(NPC, "ginwyss_d_arkenett/darklight_wood/tvatar_post/ginwyss_revamp/ginwyss020.mp3", "", "", 2409485632, 3192848351, Spawn)
  64. AddConversationOption(conversation, "I found this while hunting undead.", "Quest_MissingRecruit")
  65. StartConversation(conversation, NPC, Spawn, "Yes, what is it now, " .. GetName(Spawn) .. "?")
  66. elseif HasCompletedQuest(Spawn, AGuardInsignia) and not HasQuest(Spawn, MissingRecruit) and not HasCompletedQuest(Spawn, MissingRecruit) then
  67. Quest_MissingRecruit(NPC, Spawn)
  68. elseif HasQuest(Spawn, MissingRecruit) then
  69. PlayFlavor(NPC, "ginwyss_d_arkenett/darklight_wood/tvatar_post/ginwyss_revamp/ginwyss024.mp3", "", "", 3017598578, 1088608550, Spawn)
  70. if GetQuestStep(Spawn, MissingRecruit) < 2 then
  71. AddConversationOption(conversation, "Not yet.", "MissingRecruit_No")
  72. else
  73. AddConversationOption(conversation, "I have. Here you go.", "MissingRecruit_Yes")
  74. end
  75. StartConversation(conversation, NPC, Spawn, "Have you found his field kit?")
  76. else
  77. Say(NPC, "Nice work. Laexyar and I appreciate it.")
  78. end
  79. end
  80. --------------------------------------------------------------------------------------
  81. -- Thexian Taint Complete
  82. --------------------------------------------------------------------------------------
  83. function ThexianTaint_Finish(NPC, Spawn)
  84. FaceTarget(NPC, Spawn)
  85. conversation = CreateConversation()
  86. SetStepComplete(Spawn, ThexianTaint, 3)
  87. PlayFlavor(NPC, "ginwyss_d_arkenett/darklight_wood/tvatar_post/ginwyss_revamp/ginwyss002.mp3", "", "", 195833289, 1438804587, Spawn)
  88. AddConversationOption(conversation, "Why is that?", "Quest_RottingScum")
  89. StartConversation(conversation, NPC, Spawn, "Of course. We appreciate this. Anything we can do to keep the Thexians out of these woods is helpful. I am glad you have arrived.")
  90. end
  91. --------------------------------------------------------------------------------------
  92. -- QUEST Rotting Scum
  93. --------------------------------------------------------------------------------------
  94. function Quest_RottingScum(NPC, Spawn)
  95. FaceTarget(NPC, Spawn)
  96. conversation = CreateConversation()
  97. PlayFlavor(NPC, "ginwyss_d_arkenett/darklight_wood/tvatar_post/ginwyss_revamp/ginwyss004.mp3", "", "", 2620151660, 2492067079, Spawn)
  98. AddConversationOption(conversation, "I am.", "Quest_RottingScum_01")
  99. AddConversationOption(conversation, "I am not.")
  100. StartConversation(conversation, NPC, Spawn, "Laexyra is in charge of the Dread Guard here in the Darklight Wood. She's been moving forces deeper into the wood and will continue to do so until we control this land as cleanly as we do the city of Neriak itself. Are you willing to lend your assistance?")
  101. end
  102. function Quest_RottingScum_B(NPC, Spawn)
  103. FaceTarget(NPC, Spawn)
  104. conversation = CreateConversation()
  105. PlayFlavor(NPC, "ginwyss_d_arkenett/darklight_wood/tvatar_post/ginwyss_revamp/ginwyss003.mp3", "", "", 3004928751, 1497818906, Spawn)
  106. AddConversationOption(conversation, "Oh?", "Quest_RottingScum")
  107. StartConversation(conversation, NPC, Spawn, "You wish to help? If that's the case, then I'm glad you're here.")
  108. end
  109. function Quest_RottingScum_01(NPC, Spawn)
  110. FaceTarget(NPC, Spawn)
  111. conversation = CreateConversation()
  112. PlayFlavor(NPC, "", "", "agree", 0, 0, Spawn)
  113. AddConversationOption(conversation, "Where have they come from?", "Quest_RottingScum_02")
  114. StartConversation(conversation, NPC, Spawn, "That is good to hear, " .. GetName(Spawn) .. ". I would like your help with the undead that infest this camp.")
  115. end
  116. function Quest_RottingScum_02(NPC, Spawn)
  117. FaceTarget(NPC, Spawn)
  118. conversation = CreateConversation()
  119. PlayFlavor(NPC, "ginwyss_d_arkenett/darklight_wood/tvatar_post/ginwyss_revamp/ginwyss006.mp3", "", "", 1721704244, 1661413444, Spawn)
  120. AddConversationOption(conversation, "These corpses... Who were they?", "Quest_RottingScum_03")
  121. StartConversation(conversation, NPC, Spawn, "This was once the site of a very large battle. Though ages old, new corpses are beginning to resurface and attack. I suspect none other than the Thexians to be behind this plot. The cowards would rather have the dead attack us than face us in open battle!")
  122. end
  123. function Quest_RottingScum_03(NPC, Spawn)
  124. FaceTarget(NPC, Spawn)
  125. conversation = CreateConversation()
  126. PlayFlavor(NPC, "ginwyss_d_arkenett/darklight_wood/tvatar_post/ginwyss_revamp/ginwyss007.mp3", "", "", 1606040300, 1401696355, Spawn)
  127. AddConversationOption(conversation, "Very well.", "QuestOffer_RottingScum")
  128. AddConversationOption(conversation, "I cannot do what you ask.")
  129. StartConversation(conversation, NPC, Spawn, "The fallen rangers and stout cadavers are the corpses of the halfling armies and their allies who attacked Neriak long ago. Now in undeath they seek to fulfill their mission once more. You must put them down at once!")
  130. end
  131. function QuestOffer_RottingScum(NPC, Spawn)
  132. OfferQuest(NPC, Spawn, RottingScum)
  133. end
  134. function RottingScum_No(NPC, Spawn)
  135. FaceTarget(NPC, Spawn)
  136. conversation = CreateConversation()
  137. PlayFlavor(NPC, "ginwyss_d_arkenett/darklight_wood/tvatar_post/ginwyss_revamp/ginwyss011.mp3", "", "", 465595230, 4113153338, Spawn)
  138. AddConversationOption(conversation, "I will return.")
  139. StartConversation(conversation, NPC, Spawn, "Do not return until you have put down the stout cadavers and fallen rangers!")
  140. end
  141. function RottingScum_Yes(NPC, Spawn)
  142. FaceTarget(NPC, Spawn)
  143. conversation = CreateConversation()
  144. SetStepComplete(Spawn, RottingScum, 3)
  145. PlayFlavor(NPC, "ginwyss_d_arkenett/darklight_wood/tvatar_post/ginwyss_revamp/ginwyss010.mp3", "", "agree", 1734208636, 3841795105, Spawn)
  146. AddConversationOption(conversation, "Isn't there a way to get rid of them permanently?", "PickingUpSlack_A")
  147. StartConversation(conversation, NPC, Spawn, "Good. They'll be back in short order, unfortunately. Your efforts, however, should cause them to cease annoying us for the time being.")
  148. end
  149. --------------------------------------------------------------------------------------
  150. -- QUEST Picking Up Slack
  151. --------------------------------------------------------------------------------------
  152. function PickingUpSlack_A(NPC, Spawn)
  153. FaceTarget(NPC, Spawn)
  154. conversation = CreateConversation()
  155. PlayFlavor(NPC, "ginwyss_d_arkenett/darklight_wood/tvatar_post/ginwyss_revamp/ginwyss012.mp3", "", "agree", 1734208636, 3841795105, Spawn)
  156. AddConversationOption(conversation, "What do you mean?", "PickingUpSlack_B")
  157. StartConversation(conversation, NPC, Spawn, "I believe Laexyra is looking into that matter. However, before you run along and help her, I first need your assistance in dealing with a few deserters.")
  158. end
  159. function PickingUpSlack_B(NPC, Spawn)
  160. FaceTarget(NPC, Spawn)
  161. conversation = CreateConversation()
  162. PlayFlavor(NPC, "voiceover/english/voice_emotes/greetings/greetings_1_1047.mp3", "", "", 0, 0, Spawn)
  163. AddConversationOption(conversation, "I could help again.", "PickingUpSlack_01")
  164. AddConversationOption(conversation, "I must take my leave.")
  165. StartConversation(conversation, NPC, Spawn, "New recruits looking for a fast track into Neriak often disappear. I had one leave just yesterday, and I'm having trouble finding someone to replace him.")
  166. end
  167. function PickingUpSlack_01(NPC, Spawn)
  168. FaceTarget(NPC, Spawn)
  169. conversation = CreateConversation()
  170. PlayFlavor(NPC, "ginwyss_d_arkenett/darklight_wood/tvatar_post/ginwyss_revamp/ginwyss014.mp3", "", "", 3763405805, 3752416036, Spawn)
  171. AddConversationOption(conversation, "All right.", "QuestOffer_PickingUpSlack")
  172. AddConversationOption(conversation, "I would prefer not to.")
  173. StartConversation(conversation, NPC, Spawn, "Indeed you could, " .. GetName(Spawn) .. ". I doubt Soltrin is coming back anytime soon. I had him collecting scraps of armor from the moldering soldiers found north from here. Jargos claims he can forge the pieces into new armor plates. Bring me several pieces and you will be rewarded.")
  174. end
  175. function QuestOffer_PickingUpSlack(NPC, Spawn)
  176. OfferQuest(NPC, Spawn, PickingUpSlack)
  177. end
  178. function PickingUpSlack_No(NPC, Spawn)
  179. FaceTarget(NPC, Spawn)
  180. conversation = CreateConversation()
  181. PlayFlavor(NPC, "ginwyss_d_arkenett/darklight_wood/tvatar_post/ginwyss_revamp/ginwyss018.mp3", "", "", 3110804349, 157804660, Spawn)
  182. AddConversationOption(conversation, "I will return.")
  183. StartConversation(conversation, NPC, Spawn, "Jargos cannot make armor plates with raw material. Do not return until you've collected enough scrap armor from the moldering soldiers.")
  184. end
  185. function PickingUpSlack_Yes(NPC, Spawn)
  186. FaceTarget(NPC, Spawn)
  187. conversation = CreateConversation()
  188. SetStepComplete(Spawn, PickingUpSlack, 2)
  189. if HasQuest(Spawn, AGuardInsignia) then
  190. AddConversationOption(conversation, "I found this while hunting undead.", "Quest_MissingRecruit")
  191. StartConversation(conversation, NPC, Spawn, "Good work, young one. You're turning out to be a much harder worker than that no good deserter, Soltrin. Curious... I wonder what became of him.")
  192. else
  193. AddConversationOption(conversation, "I'll keep my eyes open for him.", "PickingUpSlack_03")
  194. StartConversation(conversation, NPC, Spawn, "Good work, young one. You're turning out to be a much harder worker than that no good deserter, Soltrin. Curious... I wonder what became of him.")
  195. end
  196. end
  197. function PickingUpSlack_02(NPC, Spawn)
  198. FaceTarget(NPC, Spawn)
  199. conversation = CreateConversation()
  200. if HasQuest(Spawn, AGuardInsignia) then
  201. AddConversationOption(conversation, "I found this while hunting undead.", "Quest_MissingRecruit")
  202. StartConversation(conversation, NPC, Spawn, "Good work, young one. You're turning out to be a much harder worker than that no good deserter, Soltrin. Curious... I wonder what became of him.")
  203. else
  204. AddConversationOption(conversation, "I'll keep my eyes open for him.", "PickingUpSlack_03")
  205. StartConversation(conversation, NPC, Spawn, "Good work, young one. You're turning out to be a much harder worker than that no good deserter, Soltrin. Curious... I wonder what became of him.")
  206. end
  207. end
  208. function PickingUpSlack_03(NPC, Spawn)
  209. FaceTarget(NPC, Spawn)
  210. conversation = CreateConversation()
  211. AddConversationOption(conversation, "I'll see what I can do.")
  212. StartConversation(conversation, NPC, Spawn, "That is much appreciated, " .. GetName(Spawn) .. ". Now, in the meantime I suggest you speak with some of the others found here at this post. There is much work to be done.")
  213. end
  214. --------------------------------------------------------------------------------------
  215. -- QUEST Missing Recruit
  216. --------------------------------------------------------------------------------------
  217. function Quest_MissingRecruit(NPC, Spawn)
  218. FaceTarget(NPC, Spawn)
  219. conversation = CreateConversation()
  220. SetStepComplete(Spawn, MissingRecruit, 1)
  221. PlayFlavor(NPC, "ginwyss_d_arkenett/darklight_wood/tvatar_post/ginwyss_revamp/ginwyss021.mp3", "", "", 4046947438, 1960374270, Spawn)
  222. AddConversationOption(conversation, "Sure.", "Quest_MissingRecruit_01")
  223. StartConversation(conversation, NPC, Spawn, "Hmm. Interesting. Perhaps Soltrin didn't catch the fever. Perhaps he died while performing his duties--how noble of him. I wonder if we can still retrieve his field kit... Are you up for another task, " .. GetName(Spawn) .. "?")
  224. end
  225. function Quest_MissingRecruit_01(NPC, Spawn)
  226. FaceTarget(NPC, Spawn)
  227. conversation = CreateConversation()
  228. SetStepComplete(Spawn, AGuardInsignia, 1)
  229. PlayFlavor(NPC, "ginwyss_d_arkenett/darklight_wood/tvatar_post/ginwyss_revamp/ginwyss022.mp3", "", "", 2283622719, 1945338688, Spawn)
  230. AddConversationOption(conversation, "All right.", "QuestOffer_MissingRecruit")
  231. StartConversation(conversation, NPC, Spawn, "I'd like you to search the same area where you destroyed the undead soldiers. If Soltrin was killed, it's quite possible that his body is nearby. Hopefully his field kit will still be intact. If it is, I'd like you to retrieve it for me.")
  232. end
  233. function QuestOffer_MissingRecruit(NPC, Spawn)
  234. OfferQuest(NPC, Spawn, MissingRecruit)
  235. end
  236. function MissingRecruit_No(NPC, Spawn)
  237. FaceTarget(NPC, Spawn)
  238. conversation = CreateConversation()
  239. PlayFlavor(NPC, "ginwyss_d_arkenett/darklight_wood/tvatar_post/ginwyss_revamp/ginwyss026.mp3", "", "", 3389215806, 2500269282, Spawn)
  240. AddConversationOption(conversation, "Alright, alright!")
  241. StartConversation(conversation, NPC, Spawn, "Keep searching then!")
  242. end
  243. function MissingRecruit_Yes(NPC, Spawn)
  244. FaceTarget(NPC, Spawn)
  245. conversation = CreateConversation()
  246. SetStepComplete(Spawn, MissingRecruit, 2)
  247. PlayFlavor(NPC, "ginwyss_d_arkenett/darklight_wood/tvatar_post/ginwyss_revamp/ginwyss025.mp3", "", "", 3122094664, 4174660668, Spawn)
  248. AddConversationOption(conversation, "You're welcome.")
  249. StartConversation(conversation, NPC, Spawn, "Nice work, Sygman. These kits aren't cheap. Again, you have our thanks.")
  250. end