BurkStoneshatter.lua 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360
  1. --[[
  2. Script Name : SpawnScripts/Graystone/BurkStoneshatter.lua
  3. Script Purpose : Burk Stoneshatter <Barbarian Mentor>
  4. Script Author : Scatman
  5. Script Date : 2009.09.27
  6. Script Notes :
  7. --]]
  8. -- Race ID's
  9. local BARBARIAN = 0
  10. -- Quest ID's
  11. local ATIMEFORFIGHTING = 289
  12. local LATESHIPMENT = 290
  13. local IN_THE_DRINK = 291
  14. local VISITING_A_FRIEND = 292
  15. -- Item ID's
  16. local OVERFLOW_MANIFEST = 10268
  17. function spawn(NPC)
  18. ProvidesQuest(NPC, ATIMEFORFIGHTING)
  19. ProvidesQuest(NPC, LATESHIPMENT)
  20. ProvidesQuest(NPC, VISITING_A_FRIEND)
  21. end
  22. function hailed(NPC, Spawn)
  23. if GetRace(Spawn) == BARBARIAN then
  24. Begin(NPC, Spawn)
  25. else
  26. NotBarbarian(NPC, Spawn)
  27. end
  28. end
  29. function NotBarbarian(NPC, Spawn)
  30. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/burk_stoneshatter/qey_village03/quest_burk_stoneshatter_notdwarf_20893785.mp3", "I'm rather busy and cannot speak. Sorry.", "", 1027180785, 1173518799, Spawn)
  31. end
  32. function Begin(NPC, Spawn)
  33. FaceTarget(NPC, Spawn)
  34. conversation = CreateConversation()
  35. if HasCompletedQuest(Spawn, ATIMEFORFIGHTING) then
  36. if HasCompletedQuest(Spawn, LATESHIPMENT) then
  37. if HasCompletedQuest(Spawn, IN_THE_DRINK) then
  38. if HasCompletedQuest(Spawn, VISITING_A_FRIEND) then
  39. SpokenToJornYet(NPC, Spawn, conversation)
  40. elseif HasQuest(Spawn, VISITING_A_FRIEND) then
  41. SpokenToJornYet(NPC, Spawn, conversation)
  42. else
  43. FoundPackageYet(NPC, Spawn, conversation)
  44. end
  45. elseif HasQuest(Spawn, IN_THE_DRINK) then
  46. FoundPackageYet(NPC, Spawn, conversation)
  47. else
  48. FoundPackageYet(NPC, Spawn, conversation)
  49. end
  50. elseif HasQuest(Spawn, LATESHIPMENT) then
  51. FoundPackageYet(NPC, Spawn, conversation)
  52. else
  53. HowDidFightsGo(NPC, Spawn, conversation)
  54. end
  55. elseif HasQuest(Spawn, ATIMEFORFIGHTING) then
  56. HowDidFightsGo(NPC, Spawn, conversation)
  57. else
  58. AhGoodToSeeYou(NPC, Spawn, conversation)
  59. end
  60. end
  61. --------------------------------------------------------------------------------------------------------------------
  62. -- QUEST 1
  63. --------------------------------------------------------------------------------------------------------------------
  64. function AhGoodToSeeYou(NPC, Spawn, conversation)
  65. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/burk_stoneshatter/qey_village03/quests/burk_stoneshatter/burk_stoneshatter001.mp3", "", "", 956434892, 1407762002, Spawn)
  66. AddConversationOption(conversation, "Have we met before?", "MetBefore")
  67. StartConversation(conversation, NPC, Spawn, "Ah, good to see you!")
  68. end
  69. function MetBefore(NPC, Spawn)
  70. FaceTarget(NPC, Spawn)
  71. conversation = CreateConversation()
  72. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/burk_stoneshatter/qey_village03/quests/burk_stoneshatter/burk_stoneshatter002.mp3", "", "", 1814552755, 3267658415, Spawn)
  73. AddConversationOption(conversation, "What do we have in common?", "WhatInCommon")
  74. AddConversationOption(conversation, "Yes, we do.")
  75. StartConversation(conversation, NPC, Spawn, "Not that I recall, but I am fond of the drink, so it's possible. It don't matter none, though, we've got enough in common for me to strike up a conversation I'd say.")
  76. end
  77. function WhatInCommon(NPC, Spawn)
  78. FaceTarget(NPC, Spawn)
  79. conversation = CreateConversation()
  80. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/burk_stoneshatter/qey_village03/quests/burk_stoneshatter/burk_stoneshatter003.mp3", "", "", 1680260293, 3849292210)
  81. AddConversationOption(conversation, "How do they do that?", "KnowYourAncestors")
  82. StartConversation(conversation, NPC, Spawn, "Hah! A trickster, eh? If two barbarians don't have something in common, then surely more's gone wrong since The Shattering than we knew! Hah hah! Listen, you can still learn. Even the oldest who have forgotten their ancestors can get to know them before they pass.")
  83. end
  84. function KnowYourAncestors(NPC, Spawn)
  85. FaceTarget(NPC, Spawn)
  86. conversation = CreateConversation()
  87. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/burk_stoneshatter/qey_village03/quests/burk_stoneshatter/burk_stoneshatter005.mp3", "", "", 1709639983, 584600029)
  88. AddConversationOption(conversation, "What do you have for me to do?", "WhatToDo")
  89. AddConversationOption(conversation, "Who can I talk to if I'm looking for something a little more adventurous?", "MoreAdventurous")
  90. StartConversation(conversation, NPC, Spawn, "By immersing them in their past! Ah, how much can any barbarian know about themselves if they don't know their ancestors? Listen, you look like you know your ancestors rather well. I would hate to bore you, but at the same time I wouldn't mind helping ya out. I've got friends who you can talk to if you're looking for something a little more adventurous, otherwise I'm sure I could find something for you to do around here.")
  91. end
  92. function WhatToDo(NPC, Spawn)
  93. FaceTarget(NPC, Spawn)
  94. conversation = CreateConversation()
  95. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/burk_stoneshatter/qey_village03/quests/burk_stoneshatter/burk_stoneshatter007.mp3", "", "", 1329828482, 3458256530)
  96. AddConversationOption(conversation, "I am a proud barbarian, skin as hard as frost and wit as sharp as the wind.", "Continue")
  97. AddConversationOption(conversation, "I am a humble barbarian, docile yet fierce.", "Continue")
  98. AddConversationOption(conversation, "I am a young barbarian, I strike out on my own but miss the warmth of my family.", "Continue")
  99. AddConversationOption(conversation, "Who I am is not important for you to know.", "Continue")
  100. AddConversationOption(conversation, "I do not know who I am.", "Continue")
  101. StartConversation(conversation, NPC, Spawn, "Ah, that's refreshing to hear! So few barbarians these days care to take the time to think uh who they are. Tell me, who are you?")
  102. end
  103. function Continue(NPC, Spawn)
  104. FaceTarget(NPC, Spawn)
  105. conversation = CreateConversation()
  106. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/burk_stoneshatter/qey_village03/quests/burk_stoneshatter/burk_stoneshatter009.mp3", "", "", 662479869, 2366767034)
  107. AddConversationOption(conversation, "What must I do?", "WhatMustIDo")
  108. StartConversation(conversation, NPC, Spawn, "Hah! The answer doesn't matter so much, so long as you believe it. It can change, if need be, but it always needs to be present in some manner or another. How would you like to adjust, or further confirm, who you are?")
  109. end
  110. function WhatMustIDo(NPC, Spawn)
  111. FaceTarget(NPC, Spawn)
  112. conversation = CreateConversation()
  113. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/burk_stoneshatter/qey_village03/quests/burk_stoneshatter/burk_stoneshatter010.mp3", "", "", 3698329964, 3035411942)
  114. AddConversationOption(conversation, "I can do that.", "PickFights")
  115. StartConversation(conversation, NPC, Spawn, "War has always shown young soldiers who they were, and refined the ideas old soldiers had about themselves. I wish nothing so terrible or drastic for you. However, there is still much to be learned from fighting. I want you to speak with a few barbarians, and fight them. Don't worry, the guards understand this is how we sometimes do things. They may break up a fight but they won't arrest you or anything.")
  116. end
  117. function PickFights(NPC, Spawn)
  118. FaceTarget(NPC, Spawn)
  119. conversation = CreateConversation()
  120. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/burk_stoneshatter/qey_village03/quests/burk_stoneshatter/burk_stoneshatter011.mp3", "", "", 3946771118, 418263937)
  121. AddConversationOption(conversation, "Mention his feet, got it.", "MarusDonoval")
  122. StartConversation(conversation, NPC, Spawn, "I know you can. The first barbarian on my list is Marus Donoval. I'm certain he's in the tavern on the ground floor of the inn. To goad him into fighting, mention something about the smell of his feet. That always gets him on the offensive. Got that?")
  123. end
  124. function MarusDonoval(NPC, Spawn)
  125. FaceTarget(NPC, Spawn)
  126. conversation = CreateConversation()
  127. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/burk_stoneshatter/qey_village03/quests/burk_stoneshatter/burk_stoneshatter012.mp3", "", "", 1597660554, 3035248824)
  128. AddConversationOption(conversation, "And who else?", "AngusFallowfur")
  129. StartConversation(conversation, NPC, Spawn, "Good. The next person I'd like you to fight is Angus Fallowfur. He usually hangs out just over there behind the armory, on the corner closest to the docks. Nothing gets him fired up more than someone mentioning his bald head, do that and you're sure to get him into a scuffle.")
  130. end
  131. function AngusFallowfur(NPC, Spawn)
  132. FaceTarget(NPC, Spawn)
  133. conversation = CreateConversation()
  134. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/burk_stoneshatter/qey_village03/quests/burk_stoneshatter/burk_stoneshatter013.mp3", "", "", 400499408, 1307209674)
  135. AddConversationOption(conversation, "Marus, Angus, and Dunda. I've got it.", "OfferQuest1")
  136. StartConversation(conversation, NPC, Spawn, "The last person I'd like you to fight is Dunda Frostgrip. Ooh she's a fiery one to begin with, you shouldn't have any trouble getting her into conflict. But, she has been holding back lately. Mention the name Mav Boilfist around her and that's sure to send her off the deep end. You can find her just southwest of the scribe's shop.")
  137. end
  138. function OfferQuest1(NPC, Spawn)
  139. FaceTarget(NPC, Spawn)
  140. OfferQuest(NPC, Spawn, ATIMEFORFIGHTING)
  141. end
  142. function HowDidFightsGo(NPC, Spawn)
  143. FaceTarget(NPC, Spawn)
  144. conversation = CreateConversation()
  145. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/burk_stoneshatter/qey_village03/quests/burk_stoneshatter/burk_stoneshatter014.mp3", "", "", 1043759845, 3070231888)
  146. if (HasCompletedQuest(Spawn, ATIMEFORFIGHTING) and not HasCompletedQuest(Spawn, 16)) or (HasQuest(Spawn, ATIMEFORFIGHTING) and GetQuestStep(Spawn, ATIMEFORFIGHTING) == 4) then
  147. AddConversationOption(conversation, "Well enough, I suppose.", "NothingLikeGoodFight")
  148. end
  149. AddConversationOption(conversation, "I haven't fought everyone yet, I'll be back.")
  150. StartConversation(conversation, NPC, Spawn, "How did the fights go?")
  151. end
  152. -------------------------------------------------------------------------------------------------------
  153. -- QUEST 2
  154. -------------------------------------------------------------------------------------------------------
  155. function NothingLikeGoodFight(NPC, Spawn)
  156. if HasQuest(Spawn, ATIMEFORFIGHTING) then
  157. SetStepComplete(Spawn, ATIMEFORFIGHTING, 4)
  158. end
  159. FaceTarget(NPC, Spawn)
  160. conversation = CreateConversation()
  161. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/burk_stoneshatter/qey_village03/quests/burk_stoneshatter/burk_stoneshatter015.mp3", "", "", 1895041228, 2828620978)
  162. AddConversationOption(conversation, "I agree.", "IAgree")
  163. StartConversation(conversation, NPC, Spawn, "Hah hah! Nothing like a good fight to help remind you where your place is.")
  164. end
  165. function IAgree(NPC, Spawn)
  166. FaceTarget(NPC, Spawn)
  167. conversation = CreateConversation()
  168. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/burk_stoneshatter/qey_village03/quests/burk_stoneshatter/burk_stoneshatter016.mp3", "", "", 2170972985, 2218518568)
  169. AddConversationOption(conversation, "Sure, what can I do?", "WhatCanIDo")
  170. StartConversation(conversation, NPC, Spawn, "Listen, I like you. I don't want to send you off just yet. How would you like to help me settle a problem I've encountered?")
  171. end
  172. function WhatCanIDo(NPC, Spawn)
  173. FaceTarget(NPC, Spawn)
  174. conversation = CreateConversation()
  175. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/burk_stoneshatter/qey_village03/quests/burk_stoneshatter/burk_stoneshatter017.mp3", "", "", 792026774, 3751432598)
  176. AddConversationOption(conversation, "Do you want me to fight him, too?", "OfferQuest2")
  177. StartConversation(conversation, NPC, Spawn, "I've got this package I've been waiting for. It hasn't been delivered yet, but I know it's arrived in Graystone Yard. Do me a favor and go find the Graystone Courier and ask him why he hasn't delivered my package yet. It's shipment GG4QC. Here, take this overflow manifest. You'll be able to find the Graystone Courier at one of those locations.")
  178. end
  179. function OfferQuest2(NPC, Spawn)
  180. FaceTarget(NPC, Spawn)
  181. OfferQuest(NPC, Spawn, LATESHIPMENT)
  182. end
  183. function FoundPackageYet(NPC, Spawn, conversation)
  184. if HasQuest(Spawn, LATESHIPMENT) then
  185. AddConversationOption(conversation, "I need another copy of the Overflow Manifset.", "NeedManifest")
  186. end
  187. if (HasCompletedQuest(Spawn, IN_THE_DRINK) and not HasCompletedQuest(Spawn, VISITING_A_FRIEND)) or (HasQuest(Spawn, IN_THE_DRINK) and GetQuestStep(Spawn, IN_THE_DRINK) == 5) then
  188. AddConversationOption(conversation, "Yes. It turns out it had fallen in the water.", "YesFellInWater")
  189. end
  190. AddConversationOption(conversation, "No, not yet.")
  191. StartConversation(conversation, NPC, Spawn, "Have you found my package yet?")
  192. end
  193. function NeedManifest(NPC, Spawn)
  194. FaceTarget(NPC, Spawn)
  195. conversation = CreateConversation()
  196. if not HasItem(Spawn, OVERFLOW_MANIFEST, 1) then
  197. -- Overflow Manifest
  198. SummonItem(Spawn, OVERFLOW_MANIFEST, 1)
  199. AddConversationOption(conversation, "Thanks!")
  200. StartConversation(conversation, NPC, Spawn, "Here ya go.")
  201. else
  202. AddConversationOption(conversation, "Thanks!")
  203. StartConversation(conversation, NPC, Spawn, "I am certain I already gave it to ya. Make sure you check all your bags, and even the bank.")
  204. end
  205. end
  206. -------------------------------------------------------------------------------------------------------
  207. -- QUEST 3
  208. -------------------------------------------------------------------------------------------------------
  209. function YesFellInWater(NPC, Spawn)
  210. FaceTarget(NPC, Spawn)
  211. conversation = CreateConversation()
  212. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/burk_stoneshatter/qey_village03/quests/burk_stoneshatter/burk_stoneshatter020.mp3", "", "", 1785241961, 3949656366, Spawn)
  213. AddConversationOption(conversation, "It looks like it made it out all right. The crate looks to have been sealed, I had to swim down and hook up buoys so the Shipping Coordinator could pull them out. Here you go.", "dlg_26_2")
  214. StartConversation(conversation, NPC, Spawn, "Oh no! That's horrible!")
  215. end
  216. function dlg_26_2(NPC, Spawn)
  217. FaceTarget(NPC, Spawn)
  218. conversation = CreateConversation()
  219. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/burk_stoneshatter/qey_village03/quests/burk_stoneshatter/burk_stoneshatter021.mp3", "", "", 578124127, 1198637395, Spawn)
  220. AddConversationOption(conversation, "Oh?", "dlg_26_3")
  221. StartConversation(conversation, NPC, Spawn, "Oh, that's great news. Thanks. Oh, um, this isn't all mine. I think this was meant for you.")
  222. end
  223. function dlg_26_3(NPC, Spawn)
  224. if HasQuest(Spawn, IN_THE_DRINK) then
  225. SetStepComplete(Spawn, IN_THE_DRINK, 5)
  226. end
  227. FaceTarget(NPC, Spawn)
  228. conversation = CreateConversation()
  229. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/burk_stoneshatter/qey_village03/quests/burk_stoneshatter/burk_stoneshatter022.mp3", "", "", 279289992, 1880878619, Spawn)
  230. AddConversationOption(conversation, "Thank you.", "dlg_26_4")
  231. StartConversation(conversation, NPC, Spawn, "Yeah, probably the Shipping Coordinator's way of saying thank you. Here ya go.")
  232. end
  233. ----------------------------------------------------------------------------------------------------
  234. -- QUEST 4
  235. ----------------------------------------------------------------------------------------------------
  236. function dlg_26_4(NPC, Spawn)
  237. FaceTarget(NPC, Spawn)
  238. conversation = CreateConversation()
  239. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/burk_stoneshatter/qey_village03/quests/burk_stoneshatter/burk_stoneshatter023.mp3", "", "", 2560698253, 1098321894, Spawn)
  240. AddConversationOption(conversation, "What was it?", "dlg_26_5")
  241. StartConversation(conversation, NPC, Spawn, "No, thank you. This shipment was very important.")
  242. end
  243. function dlg_26_5(NPC, Spawn)
  244. FaceTarget(NPC, Spawn)
  245. conversation = CreateConversation()
  246. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/burk_stoneshatter/qey_village03/quests/burk_stoneshatter/burk_stoneshatter024.mp3", "", "", 2054544634, 3839064950, Spawn)
  247. AddConversationOption(conversation, "Why did your friend send it to you?", "dlg_26_12")
  248. StartConversation(conversation, NPC, Spawn, "An old Halasian weaving. A friend of mine found it on an island off the coast of Everfrost, amazingly intact. It details a family's past.")
  249. end
  250. function dlg_26_12(NPC, Spawn)
  251. FaceTarget(NPC, Spawn)
  252. conversation = CreateConversation()
  253. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/burk_stoneshatter/qey_village03/quests/burk_stoneshatter/burk_stoneshatter025.mp3", "", "", 360206196, 193916319, Spawn)
  254. AddConversationOption(conversation, "That is very lucky.", "dlg_26_13")
  255. StartConversation(conversation, NPC, Spawn, "He recognized some of what was depicted on the weaving. Old wars between two clans, one clan father's disgrace in the public eye, and then his eventual redemption. These images... well, it would seem that this weaving may be from my family, ages ago. We did not have a weaving to show us the past, but we kept the story alive orally. A find like this is... well it's inspirational.")
  256. end
  257. function dlg_26_13(NPC, Spawn)
  258. FaceTarget(NPC, Spawn)
  259. conversation = CreateConversation()
  260. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/burk_stoneshatter/qey_village03/quests/burk_stoneshatter/burk_stoneshatter026.mp3", "", "", 3028697624, 1563266355, Spawn)
  261. AddConversationOption(conversation, "I understand completely.", "dlg_26_14")
  262. StartConversation(conversation, NPC, Spawn, "Luck or fate. I appreciate all your help, but this is something that I wish to look at right away. I don't know how much you know of your own family, but opportunities like this are sacred.")
  263. end
  264. function dlg_26_14(NPC, Spawn)
  265. FaceTarget(NPC, Spawn)
  266. conversation = CreateConversation()
  267. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/burk_stoneshatter/qey_village03/quests/burk_stoneshatter/burk_stoneshatter027.mp3", "", "", 467475685, 2498729045, Spawn)
  268. AddConversationOption(conversation, "I will find him.", "OfferQuest4")
  269. StartConversation(conversation, NPC, Spawn, "While I do this, you should speak with my friend, Jorn Sorefoot. You can probably find him in Oakmyst Forest. I have little doubt he can make use of you, help him like you helped me.")
  270. end
  271. function OfferQuest4(NPC, Spawn)
  272. FaceTarget(NPC, Spawn)
  273. OfferQuest(NPC, Spawn, VISITING_A_FRIEND)
  274. end
  275. function SpokenToJornYet(NPC, Spawn, conversation)
  276. if HasCompletedQuest(Spawn, VISITING_A_FRIEND) then
  277. AddConversationOption(conversation, "Yes, I have.", "SpokenWithJornYes")
  278. end
  279. AddConversationOption(conversation, "No, not yet.")
  280. StartConversation(conversation, NPC, Spawn, "Have you spoken with Jorn yet?")
  281. end
  282. function SpokenWithJornYes(NPC, Spawn)
  283. FaceTarget(NPC, Spawn)
  284. conversation = CreateConversation()
  285. AddConversationOption(conversation, "I'm sure I can handle it.")
  286. StartConversation(conversation, NPC, Spawn, "Ah good, good. I hope he doesn't give ya too much trouble.")
  287. end