9
3

NeezerGrund.lua 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627
  1. --[[
  2. Script Name : SpawnScripts/Baubbleshire/NeezerGrund.lua
  3. Script Purpose : Neezer Grund <Gnome Mentor>
  4. Script Author : Scatman
  5. Script Date : 2009.09.27
  6. Script Notes :
  7. --]]
  8. -- Race ID's
  9. local GNOME = 5
  10. -- Quest ID's
  11. local SCRAPTASTIC = 328 -- was 26
  12. local NOGGINSPARK_REACTORS = 329 -- was 27
  13. local NEEZERS_SURVEY = 330 -- was 28
  14. local GETTING_TO_KNOW_POKO = 331 -- was 29
  15. -- Item ID's
  16. local NEEZERS_QUESTIONS = 10030
  17. function spawn(NPC)
  18. ProvidesQuest(NPC, SCRAPTASTIC)
  19. ProvidesQuest(NPC, NOGGINSPARK_REACTORS)
  20. ProvidesQuest(NPC, NEEZERS_SURVEY)
  21. ProvidesQuest(NPC, GETTING_TO_KNOW_POKO)
  22. end
  23. function respawn(NPC)
  24. spawn(NPC)
  25. end
  26. function hailed(NPC, Spawn)
  27. FaceTarget(NPC, Spawn)
  28. conversation = CreateConversation()
  29. if GetRace(Spawn) == GNOME then
  30. Begin(NPC, Spawn, conversation)
  31. else
  32. NotGnome(NPC, Spawn, conversation)
  33. end
  34. end
  35. function NotGnome(NPC, Spawn, conversation)
  36. AddConversationOption(conversation, "Busy with what?", "BusyWithWhat")
  37. StartConversation(conversation, NPC, Spawn, "Ah yes, hello, hello. I'm afraid I'm quite busy at the moment.")
  38. end
  39. function BusyWithWhat(NPC, Spawn)
  40. FaceTarget(NPC, Spawn)
  41. conversation = CreateConversation()
  42. AddConversationOption(conversation, "Oh...")
  43. AddConversationOption(conversation, "Fine.")
  44. StartConversation(conversation, NPC, Spawn, "Erm... thinking... I'm busy thinking... about gnomish things! I'm busy thinking about gnomish things, I'm afraid you wouldn't understand.")
  45. end
  46. function Begin(NPC, Spawn, conversation)
  47. if HasCompletedQuest(Spawn, SCRAPTASTIC) then
  48. if HasCompletedQuest(Spawn, NOGGINSPARK_REACTORS) then
  49. if HasCompletedQuest(Spawn, NEEZERS_SURVEY) then
  50. if HasCompletedQuest(Spawn, GETTING_TO_KNOW_POKO) then
  51. SpokenToPokoYet(NPC, Spawn)
  52. elseif HasQuest(Spawn, GETTING_TO_KNOW_POKO) then
  53. SpokenToPokoYet(NPC, Spawn)
  54. else
  55. GatheredInfoYet(NPC, Spawn)
  56. end
  57. elseif HasQuest(Spawn, NEEZERS_SURVEY) then
  58. if GetQuestStep(Spawn, NEEZERS_SURVEY) == 1 then
  59. HelloHowDidItGo(NPC, Spawn)
  60. else
  61. GatheredInfoYet(NPC, Spawn)
  62. end
  63. else
  64. HaveTheReactorsYet(NPC, Spawn)
  65. end
  66. elseif HasQuest(Spawn, NOGGINSPARK_REACTORS) then
  67. HaveTheReactorsYet(NPC, Spawn)
  68. else
  69. CollectMetalYet(NPC, Spawn)
  70. end
  71. elseif HasQuest(Spawn, SCRAPTASTIC) then
  72. CollectMetalYet(NPC, Spawn)
  73. else
  74. NoQuests(NPC, Spawn)
  75. end
  76. end
  77. function NoQuests(NPC, Spawn)
  78. FaceTarget(NPC, Spawn)
  79. conversation = CreateConversation()
  80. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund003.mp3", "", "", 2398754480, 2380734970, Spawn)
  81. AddConversationOption(conversation, "Wonderful!", "Wonderful")
  82. AddConversationOption(conversation, "Well enough.", "Wonderful")
  83. AddConversationOption(conversation, "I cannot complain.", "Wonderful")
  84. AddConversationOption(conversation, "Not too well.", "NotTooWell")
  85. AddConversationOption(conversation, "Horrible.", "NotTooWell")
  86. StartConversation(conversation, NPC, Spawn, "Hello, hello. Good day to you! How are you doing, my friend?")
  87. end
  88. function Wonderful(NPC, Spawn)
  89. FaceTarget(NPC, Spawn)
  90. conversation = CreateConversation()
  91. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund004.mp3", "", "", 159402035, 3144243317, Spawn)
  92. AddConversationOption(conversation, "Indeed!", "Indeed")
  93. AddConversationOption(conversation, "I suppose so.", "Indeed")
  94. StartConversation(conversation, NPC, Spawn, "That's good to hear! Nothing helps the mind learn like a sunny disposition.")
  95. end
  96. function NotTooWell(NPC, Spawn)
  97. FaceTarget(NPC, Spawn)
  98. conversation = CreateConversation()
  99. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund005.mp3", "", "", 3561294899, 2382387513, Spawn)
  100. AddConversationOption(conversation, "Indeed!", "Indeed")
  101. AddConversationOption(conversation, "I suppose so.", "Indeed")
  102. StartConversation(conversation, NPC, Spawn, "Can't win them all, I suppose. But even an upset provides ample opportunity to learn!")
  103. end
  104. function Indeed(NPC, Spawn)
  105. FaceTarget(NPC, Spawn)
  106. conversation = CreateConversation()
  107. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund006.mp3", "", "", 383028818, 2731292797, Spawn)
  108. AddConversationOption(conversation, "Oh, I agree!", "LearningUsefulForAll")
  109. AddConversationOption(conversation, "Sure, I guess.", "LearningUsefulForAll")
  110. StartConversation(conversation, NPC, Spawn, "Learning is what I've structured my life around. Really, most gnomes I know tend to thrive on the thrill of discovery. It's just naturally exhilarating, wouldn't you say?")
  111. end
  112. function LearningUsefulForAll(NPC, Spawn)
  113. FaceTarget(NPC, Spawn)
  114. conversation = CreateConversation()
  115. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund010.mp3", "", "", 2512061908, 1584382933, Spawn)
  116. AddConversationOption(conversation, "What can you teach me?", "TeachYouAlot")
  117. StartConversation(conversation, NPC, Spawn, "Learning is useful for us all. Heck, I'm sure I could teach you a lot. What do you say, care to learn something?")
  118. end
  119. function TeachYouAlot(NPC, Spawn)
  120. FaceTarget(NPC, Spawn)
  121. conversation = CreateConversation()
  122. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund011a.mp3", "", "", 1024129290, 1515220544, Spawn)
  123. AddConversationOption(conversation, "Sounds complicated.", "LessonMostGnomesNeverLearn")
  124. StartConversation(conversation, NPC, Spawn, "Well, I can teach you a lot. At least, I hope I can! But if I can't teach you maybe you can teach me! Great how that works! The first thing I'd like to teach you is the importance of not losing sight of things around you even when you're trying to focus on something very specific.")
  125. end
  126. function LessonMostGnomesNeverLearn(NPC, Spawn)
  127. FaceTarget(NPC, Spawn)
  128. conversation = CreateConversation()
  129. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund011.mp3", "", "", 1744061266, 2073767999, Spawn)
  130. AddConversationOption(conversation, "Socialization?", "BigRoleToPlay")
  131. AddConversationOption(conversation, "The thing after which you're modeling the clockwork?", "ForgetAboutTargetModel")
  132. AddConversationOption(conversation, "Basic needs?", "BigRoleToPlay")
  133. AddConversationOption(conversation, "Complex math?", "BigRoleToPlay")
  134. StartConversation(conversation, NPC, Spawn, "This is a lesson most gnomes never learn, so it's best you get an early start on it. Specifically, in my life at least, it applies to tinkering. The thing is, my ultimate goal when it comes to my clockworks is to make them as realistic as possible. So when I'm tinkering away, what do you imagine the first thing is I lose sight of?")
  135. end
  136. function BigRoleToPlay(NPC, Spawn)
  137. FaceTarget(NPC, Spawn)
  138. conversation = CreateConversation()
  139. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund012.mp3", "", "", 400046078, 4032605046, Spawn)
  140. AddConversationOption(conversation, "Why is it so important?", "CarveAnOrange")
  141. StartConversation(conversation, NPC, Spawn, "Well, sure, partially. That does have a big role to play, no doubt. But the biggest, most important thing that I outright forget always ends up being the target model.")
  142. end
  143. function CarveAnOrange(NPC, Spawn)
  144. FaceTarget(NPC, Spawn)
  145. conversation = CreateConversation()
  146. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund014.mp3", "", "", 560118172, 3267242459, Spawn)
  147. AddConversationOption(conversation, "Not very hard.", "CarveSnapSnafu")
  148. StartConversation(conversation, NPC, Spawn, "Well think about this. If you wanted to carve an orange out of a block of wood how hard would it be?")
  149. end
  150. function CarveSnapSnafu(NPC, Spawn)
  151. FaceTarget(NPC, Spawn)
  152. conversation = CreateConversation()
  153. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund015.mp3", "", "", 1479998599, 3063831444, Spawn)
  154. AddConversationOption(conversation, "A what?", "BetterClockWorkRat")
  155. StartConversation(conversation, NPC, Spawn, "What if you wanted to carve a Compartmental Snap-Snafu?")
  156. end
  157. function BetterClockWorkRat(NPC, Spawn)
  158. FaceTarget(NPC, Spawn)
  159. conversation = CreateConversation()
  160. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund016.mp3", "", "", 1777801851, 3121337531, Spawn)
  161. AddConversationOption(conversation, "Clockwork pineapple?", "PineapplesArentThePoint")
  162. StartConversation(conversation, NPC, Spawn, "Precisely! If I want to make a better clockwork rat I need to study rats. If I want to make a better clockwork wolf I need to study wolves. If I want to make a better clockwork gnome I need to study gnomes. If I want to make a better clockwork pineapple I need to study pineapples!")
  163. end
  164. function PineapplesArentThePoint(NPC, Spawn)
  165. FaceTarget(NPC, Spawn)
  166. conversation = CreateConversation()
  167. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund017.mp3", "", "", 1454499140, 4215645266, Spawn)
  168. AddConversationOption(conversation, "Yes.", "GettingThingsMostExcellent")
  169. AddConversationOption(conversation, "No.", "ThePointIs")
  170. StartConversation(conversation, NPC, Spawn, "Genius, I know. I'm sure it can be done. But pineapples aren't the point here, the point is to make a point, get it?")
  171. end
  172. function GettingThingsMostExcellent(NPC, Spawn)
  173. FaceTarget(NPC, Spawn)
  174. conversation = CreateConversation()
  175. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund019.mp3", "", "", 2892273855, 3107559798, Spawn)
  176. AddConversationOption(conversation, "Huh?", "NeedMetalMyGoodGnome")
  177. StartConversation(conversation, NPC, Spawn, "Good! Getting things is most excellent. Speaking of getting things I need you to get something for me.")
  178. end
  179. function NeedMetalMyGoodGnome(NPC, Spawn)
  180. FaceTarget(NPC, Spawn)
  181. conversation = CreateConversation()
  182. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund020.mp3", "", "", 4025541555, 1679896535, Spawn)
  183. AddConversationOption(conversation, "Am I supposed to learn from this?", "BaubbleshireOverloaded")
  184. StartConversation(conversation, NPC, Spawn, "Metal, my good gnome, metal. The prices have been on a steady rise as of late and, while I can afford it, I am a gnome who enjoys the finer things in life: such as cheap or free metal. That's where you come in.")
  185. end
  186. function BaubbleshireOverloaded(NPC, Spawn)
  187. FaceTarget(NPC, Spawn)
  188. conversation = CreateConversation()
  189. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund021.mp3", "", "", 695807949, 2739522754, Spawn)
  190. AddConversationOption(conversation, "Sure, I'll help.", "MetalCanBeFoundAllAround")
  191. AddConversationOption(conversation, "Sorry, not right now.")
  192. StartConversation(conversation, NPC, Spawn, "Er, why yes. It is vitally important that you do this task in order to expand your horizons. The Baubbleshire is absolutely overloaded with scrap metal, we've got more than we know what to do with. Despite that the brokers are charging outrageous amounts of coin for refined metal. Unfortunately it means more work for me, but I'm going to need you to search the Baubbleshire and collect some scrap metal for me. What do you say?")
  193. end
  194. function MetalCanBeFoundAllAround(NPC, Spawn)
  195. FaceTarget(NPC, Spawn)
  196. conversation = CreateConversation()
  197. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund022.mp3", "", "", 3604190287, 3119663481, Spawn)
  198. AddConversationOption(conversation, "All right.", "OfferQuest1")
  199. StartConversation(conversation, NPC, Spawn, "Great! The metal itself can be found all around the Baubbleshire. Bring it directly back to me once you've found enough.")
  200. end
  201. function ForgetAboutTargetModel(NPC, Spawn)
  202. FaceTarget(NPC, Spawn)
  203. conversation = CreateConversation()
  204. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund013.mp3", "", "", 3876182189, 1831808866, Spawn)
  205. AddConversationOption(conversation, "Why is it so important?", "CarveAnOrange")
  206. StartConversation(conversation, NPC, Spawn, "Precisely! More than anything else I tend to forget about my target model. And that's a huge mistake.")
  207. end
  208. function ThePointIs(NPC, Spawn)
  209. FaceTarget(NPC, Spawn)
  210. conversation = CreateConversation()
  211. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund018.mp3", "", "", 2698816568, 2514712329, Spawn)
  212. AddConversationOption(conversation, "I think I get it now.", "GettingThingsMostExcellent")
  213. StartConversation(conversation, NPC, Spawn, "The point is if you lose sight of all but your creations you may forget what you were trying to create in the first place. For some this is acceptable, for others--like myself--it is to be avoided at all costs. Because of this I study people. I'm studying you right now! And, in the end, it helps me in all aspects of my life.")
  214. end
  215. function OfferQuest1(NPC, Spawn)
  216. FaceTarget(NPC, Spawn)
  217. OfferQuest(NPC, Spawn, SCRAPTASTIC)
  218. end
  219. function CollectMetalYet(NPC, Spawn)
  220. FaceTarget(NPC, Spawn)
  221. conversation = CreateConversation()
  222. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund023.mp3", "", "", 3712250731, 444462007, Spawn)
  223. if (HasCompletedQuest(Spawn, SCRAPTASTIC) and not HasCompletedQuest(Spawn, NOGGINSPARK_REACTORS)) or (HasQuest(Spawn, SCRAPTASTIC) and GetQuestStep(Spawn, SCRAPTASTIC) == 2) then
  224. AddConversationOption(conversation, "Yes I have.", "GotMetal")
  225. end
  226. AddConversationOption(conversation, "No, not yet.")
  227. StartConversation(conversation, NPC, Spawn, "Have you collected the metal yet?")
  228. end
  229. function GotMetal(NPC, Spawn)
  230. if HasQuest(Spawn, SCRAPTASTIC) then
  231. SetStepComplete(Spawn, SCRAPTASTIC, 2)
  232. end
  233. FaceTarget(NPC, Spawn)
  234. conversation = CreateConversation()
  235. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund024.mp3", "", "", 699637292, 2939226911, Spawn)
  236. AddConversationOption(conversation, "How so?", "LogicPractically")
  237. StartConversation(conversation, NPC, Spawn, "Brilliant! I hope you learned a valuable lesson. I'm learning, too! Gullibility is an important aspect that I have previously completely ignored when trying to design Clockwork Logical Applications. Working with you is really great, by the way. Working with gnomes and understanding them can help you understand your own creations better. There is far more to tinkering than straight mechanics.")
  238. end
  239. --------------------------------------------------------------------------------------------------------------------------------
  240. -- QUEST 2
  241. --------------------------------------------------------------------------------------------------------------------------------
  242. function LogicPractically(NPC, Spawn)
  243. FaceTarget(NPC, Spawn)
  244. conversation = CreateConversation()
  245. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund025.mp3", "", "", 695225922, 1471596605, Spawn)
  246. AddConversationOption(conversation, "Nogginspark?", "DontKnowTheName")
  247. StartConversation(conversation, NPC, Spawn, "Well, logic and practicality are the basic reasons that drive a machine's existence. If you break gnomes down we're really only made up of logic and practicality too. I know it sounds weird, but I think it will eventually lead to my own breakthrough. Maybe it'll be bigger than Nogginspark!")
  248. end
  249. function DontKnowTheName(NPC, Spawn)
  250. FaceTarget(NPC, Spawn)
  251. conversation = CreateConversation()
  252. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund026.mp3", "", "", 1318729135, 1687338620, Spawn)
  253. AddConversationOption(conversation, "But who is he?", "NogginsparkWasOnce")
  254. StartConversation(conversation, NPC, Spawn, "It's good that you don't know the name, it means he's keeping out of the public eye.")
  255. end
  256. function NogginsparkWasOnce(NPC, Spawn)
  257. FaceTarget(NPC, Spawn)
  258. conversation = CreateConversation()
  259. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund027.mp3", "", "", 2506302340, 2745721634, Spawn)
  260. AddConversationOption(conversation, "That isn't surprising.", "NogginsparkWasntVeryKeen")
  261. StartConversation(conversation, NPC, Spawn, "Nogginspark was once a resident of the Baubbleshire. Like myself he was very interested in making his creations more and more life-like. Unlike myself he spent most of his time studying rats. This really started to creep out the citizens of the Baubbleshire.")
  262. end
  263. function NogginsparkWasntVeryKeen(NPC, Spawn)
  264. FaceTarget(NPC, Spawn)
  265. conversation = CreateConversation()
  266. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund028.mp3", "", "", 801212880, 3491241694, Spawn)
  267. AddConversationOption(conversation, "What did he do?", "HeLeft")
  268. StartConversation(conversation, NPC, Spawn, "Nogginspark wasn't very keen on social politics, but it wasn't hard for him to pick up on how everyone was treating him. Rumors about him were being spread and it became too much for him.")
  269. end
  270. function HeLeft(NPC, Spawn)
  271. FaceTarget(NPC, Spawn)
  272. conversation = CreateConversation()
  273. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund029.mp3", "", "", 494301261, 212992841, Spawn)
  274. AddConversationOption(conversation, "What is a Nogginspark Reactor?", "AmazingDevice")
  275. StartConversation(conversation, NPC, Spawn, "He left. Disappeared. Just before his greatest breakthrough ever, the Nogginspark Reactor. Those of us that knew him well tried to replicate his work with no success. We don't know how far along in his work he was, but when he disappeared so did the promise of the Nogginspark Reactor.")
  276. end
  277. function AmazingDevice(NPC, Spawn)
  278. FaceTarget(NPC, Spawn)
  279. conversation = CreateConversation()
  280. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund030.mp3", "", "", 3630655555, 2040609157, Spawn)
  281. AddConversationOption(conversation, "How do you know so much about it.", "SomeWhatClose")
  282. StartConversation(conversation, NPC, Spawn, "It's an amazing device. No bigger than the thumb of a half elf it can produce far more power than any other device of its size. It won't save the world, but it does have a great number of uses. Anything that is small and needs power is best served by a Nogginspark Reactor.")
  283. end
  284. function SomeWhatClose(NPC, Spawn)
  285. FaceTarget(NPC, Spawn)
  286. conversation = CreateConversation()
  287. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund031.mp3", "", "", 1026846973, 2969612033, Spawn)
  288. AddConversationOption(conversation, "How so?", "VesselsNogginspark")
  289. StartConversation(conversation, NPC, Spawn, "Like I said, Nogginspark and I were somewhat close. In fact, and don't let anyone know this, Nogginspark is still very much alive and well. He didn't like the effect he had on the townspeople so he fled into the Catacombs. But, at the same time, he wanted his device to do good. A few weeks after he disappeared we started noticing more rats in the Baubbleshire. These rats were the key.")
  290. end
  291. function VesselsNogginspark(NPC, Spawn)
  292. FaceTarget(NPC, Spawn)
  293. conversation = CreateConversation()
  294. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund032.mp3", "", "", 1856257557, 1013614090, Spawn)
  295. AddConversationOption(conversation, "That's amazing.", "UseThemInGadgets")
  296. StartConversation(conversation, NPC, Spawn, "They were the vessels through which Nogginspark would transport his reactors to other tinkerers. Rats are annoying but this was no plague, so most people ignored them. As it turns out, these weren't rats at all, merely very well-crafted replicas. Some of Nogginspark's finest work. And each rat is powered by a Nogginspark Reactor. He sends them on a regular basis, and we collect them. He really is a philanthropist.")
  297. end
  298. function UseThemInGadgets(NPC, Spawn)
  299. FaceTarget(NPC, Spawn)
  300. conversation = CreateConversation()
  301. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund033.mp3", "", "", 3293153605, 462704824, Spawn)
  302. AddConversationOption(conversation, "What must I do?", "FalseRats")
  303. StartConversation(conversation, NPC, Spawn, "Yes, it is! What I'd like you to do is collect some for me. I use them in a number of gadgets and nobody has figured out how to create them yet. This is why we rely on Nogginspark to send more. There are plenty of his rats in the Baubbleshire, they usually hang out near the entrance to the Catacombs.")
  304. end
  305. function FalseRats(NPC, Spawn)
  306. FaceTarget(NPC, Spawn)
  307. conversation = CreateConversation()
  308. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund034.mp3", "", "", 403739352, 2116282291, Spawn)
  309. AddConversationOption(conversation, "Are they dangerous?", "OfferQuest2")
  310. StartConversation(conversation, NPC, Spawn, "Just knock those false-rats senseless and remove the reactors. Get seven of them for me, if you would be so kind.")
  311. end
  312. function OfferQuest2(NPC, Spawn)
  313. FaceTarget(NPC, Spawn)
  314. OfferQuest(NPC, Spawn, NOGGINSPARK_REACTORS)
  315. end
  316. function HaveTheReactorsYet(NPC, Spawn)
  317. FaceTarget(NPC, Spawn)
  318. conversation = CreateConversation()
  319. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund035.mp3", "", "", 394906506, 3033570210, Spawn)
  320. if (HasCompletedQuest(Spawn, NOGGINSPARK_REACTORS) and not HasCompletedQuest(Spawn, NEEZERS_SURVEY)) or (HasQuest(Spawn, NOGGINSPARK_REACTORS) and GetQuestStep(Spawn, NOGGINSPARK_REACTORS) == 2) then
  321. AddConversationOption(conversation, "Yes, I do.", "GotReactors")
  322. end
  323. AddConversationOption(conversation, "No, not yet.")
  324. StartConversation(conversation, NPC, Spawn, "Do you have the reactors?")
  325. end
  326. function GotReactors(NPC, Spawn)
  327. if HasQuest(Spawn, NOGGINSPARK_REACTORS) then
  328. SetStepComplete(Spawn, NOGGINSPARK_REACTORS, 2)
  329. end
  330. FaceTarget(NPC, Spawn)
  331. conversation = CreateConversation()
  332. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund036.mp3", "", "", 813222908, 4004987438, Spawn)
  333. AddConversationOption(conversation, "Halflings?", "YouThoughtAboutHalflings")
  334. StartConversation(conversation, NPC, Spawn, "Ahhh, magnificent. I do appreciate this, really I do. Quickly now, don't think about halflings!")
  335. end
  336. --------------------------------------------------------------------------------------------------------------
  337. -- QUEST 3
  338. --------------------------------------------------------------------------------------------------------------
  339. function YouThoughtAboutHalflings(NPC, Spawn)
  340. FaceTarget(NPC, Spawn)
  341. conversation = CreateConversation()
  342. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund037.mp3", "", "", 2556511824, 3361874688, Spawn)
  343. AddConversationOption(conversation, "Does it work?", "WorksWonderfully")
  344. StartConversation(conversation, NPC, Spawn, "You thought about halflings when I said that, didn't you? It's a new technique I'm working on to help gather data about people. Raw data, nothing but the foremost thoughts on the brain. That's why it's got to be quick.")
  345. end
  346. function WorksWonderfully(NPC, Spawn)
  347. FaceTarget(NPC, Spawn)
  348. conversation = CreateConversation()
  349. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund038.mp3", "", "", 2990773465, 2059831606, Spawn)
  350. AddConversationOption(conversation, "Sure, I guess.", "AskAllOfTheQuestions")
  351. StartConversation(conversation, NPC, Spawn, "Oh it works wonderfully! I bet you're still thinking about halflings. You seem interested, how would you like to help me collect some data?")
  352. end
  353. function AskAllOfTheQuestions(NPC, Spawn)
  354. FaceTarget(NPC, Spawn)
  355. conversation = CreateConversation()
  356. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund039.mp3", "", "", 1467938151, 2246844233, Spawn)
  357. AddConversationOption(conversation, "What questions?", "SorryHereTheyAre")
  358. StartConversation(conversation, NPC, Spawn, "Great! Go and ask all of the questions to Drundo in the tavern, Remo, who I think may be hiding out in the eastern hills of the Baubbleshire, and Fillzer who was also in the eastern hills last I saw him. Keep in mind, the answers aren't the only important things to note here.")
  359. end
  360. function SorryHereTheyAre(NPC, Spawn)
  361. FaceTarget(NPC, Spawn)
  362. conversation = CreateConversation()
  363. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund039a.mp3", "", "", 1439058546, 1389547628, Spawn)
  364. AddConversationOption(conversation, "That's strange.", "OfferQuest3")
  365. StartConversation(conversation, NPC, Spawn, "Sorry, here they are. Ask the questions rapidly once you start, keep their answers fresh. Also, and this is also very important, you must write down the very first word in their answer. With that information I will be able to determine what is on their mind specifically, and whether or not they're actually understanding the question.")
  366. end
  367. function OfferQuest3(NPC, Spawn)
  368. FaceTarget(NPC, Spawn)
  369. OfferQuest(NPC, Spawn, NEEZERS_SURVEY)
  370. end
  371. function GatheredInfoYet(NPC, Spawn)
  372. FaceTarget(NPC, Spawn)
  373. conversation = CreateConversation()
  374. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund040.mp3", "", "", 167402545, 3218119097, Spawn)
  375. if (HasCompletedQuest(Spawn, NEEZERS_SURVEY) and not HasCompletedQuest(Spawn, GETTING_TO_KNOW_POKO)) or (HasQuest(Spawn, NEEZERS_SURVEY) and GetQuestStep(Spawn, NEEZERS_SURVEY) == 5) then
  376. AddConversationOption(conversation, "Yes I did.", "GatheredInfo")
  377. elseif HasQuest(Spawn, NEEZERS_SURVEY) then
  378. HelloHowDidItGo(NPC, Spawn)
  379. end
  380. AddConversationOption(conversation, "Not yet.")
  381. StartConversation(conversation, NPC, Spawn, "Did you gather the information?")
  382. end
  383. function HelloHowDidItGo(NPC, Spawn)
  384. FaceTarget(NPC, Spawn)
  385. conversation = CreateConversation()
  386. AddConversationOption(conversation, "I need a copy of the questions.", "NeedCopyQuestions")
  387. StartConversation(conversation, NPC, Spawn, "Hello, how did it go?")
  388. end
  389. function NeedCopyQuestions(NPC, Spawn)
  390. FaceTarget(NPC, Spawn)
  391. conversation = CreateConversation()
  392. AddConversationOption(conversation, "Ok, I'll be back once I've gotten the answers.")
  393. -- Neezer's Questions
  394. if HasItem(Spawn, NEEZERS_QUESTIONS) then
  395. StartConversation(conversation, NPC, Spawn, "I already gave you a copy, make sure you check your bags and maybe even your bank, then examine them!")
  396. else
  397. SummonItem(Spawn, NEEZERS_QUESTIONS, 1)
  398. StartConversation(conversation, NPC, Spawn, "Here you go. Come back if you need another copy.")
  399. end
  400. end
  401. function GatheredInfo(NPC, Spawn)
  402. FaceTarget(NPC, Spawn)
  403. conversation = CreateConversation()
  404. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund041.mp3", "", "", 89357876, 2587237282, Spawn)
  405. AddConversationOption(conversation, "Yes.", "Question1")
  406. StartConversation(conversation, NPC, Spawn, "Ok. I'm all set up to record the data but I need you to give it to me in a specific fashion. I'll say 'question one' and you'll give me Drundo's answer, then Remo's answer, then Fillzer's answer. Do you understand?")
  407. end
  408. function Question1(NPC, Spawn)
  409. FaceTarget(NPC, Spawn)
  410. conversation = CreateConversation()
  411. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund042.mp3", "", "", 3205382465, 4154417613, Spawn)
  412. AddConversationOption(conversation, "Erm, leave, variable.", "Question2")
  413. StartConversation(conversation, NPC, Spawn, "Ok. Question one.")
  414. end
  415. function Question2(NPC, Spawn)
  416. FaceTarget(NPC, Spawn)
  417. conversation = CreateConversation()
  418. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund043.mp3", "", "", 1399090384, 3898684702, Spawn)
  419. AddConversationOption(conversation, "What, the, in.", "Question3")
  420. StartConversation(conversation, NPC, Spawn, "All right. Question two.")
  421. end
  422. function Question3(NPC, Spawn)
  423. FaceTarget(NPC, Spawn)
  424. conversation = CreateConversation()
  425. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund044.mp3", "", "", 798104376, 2325700503, Spawn)
  426. AddConversationOption(conversation, "I, nut, going.", "Question4")
  427. StartConversation(conversation, NPC, Spawn, "Question three.")
  428. end
  429. function Question4(NPC, Spawn)
  430. FaceTarget(NPC, Spawn)
  431. conversation = CreateConversation()
  432. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund045.mp3", "", "", 1339784146, 2591203703, Spawn)
  433. AddConversationOption(conversation, "Thermo-what, I, no.", "Question5")
  434. StartConversation(conversation, NPC, Spawn, "All right. Question four.")
  435. end
  436. function Question5(NPC, Spawn)
  437. FaceTarget(NPC, Spawn)
  438. conversation = CreateConversation()
  439. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund046.mp3", "", "", 2378626494, 4165116500, Spawn)
  440. AddConversationOption(conversation, "Who, who, who.", "Question6")
  441. StartConversation(conversation, NPC, Spawn, "Theramwatt?! I can't believe Drundo knew that one! Ok, question five.")
  442. end
  443. function Question6(NPC, Spawn)
  444. FaceTarget(NPC, Spawn)
  445. conversation = CreateConversation()
  446. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund047.mp3", "", "", 2355834496, 4028717093, Spawn)
  447. AddConversationOption(conversation, "I, is, I.", "ATautology")
  448. StartConversation(conversation, NPC, Spawn, "Ouch. Ok, question six.")
  449. end
  450. function ATautology(NPC, Spawn)
  451. FaceTarget(NPC, Spawn)
  452. conversation = CreateConversation()
  453. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund048.mp3", "", "", 1677411622, 1337570204, Spawn)
  454. AddConversationOption(conversation, "I guess so.", "TakeMeLongTime")
  455. StartConversation(conversation, NPC, Spawn, "A tautology! Interesting! So my answers are: erm leave variable what the in I nut going Thermawatt I no who who who I is I. Wow, this is exciting stuff!")
  456. end
  457. function TakeMeLongTime(NPC, Spawn)
  458. if HasQuest(Spawn, NEEZERS_SURVEY) then
  459. SetStepComplete(Spawn, NEEZERS_SURVEY, 5)
  460. end
  461. FaceTarget(NPC, Spawn)
  462. conversation = CreateConversation()
  463. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund049.mp3", "", "", 305933006, 365026974, Spawn)
  464. AddConversationOption(conversation, "Who am I taking this to?", "PokoZing")
  465. AddConversationOption(conversation, "Not a chance.")
  466. StartConversation(conversation, NPC, Spawn, "This is going to take me a long time to decipher. I may never figure it out! Sorry, I'm a bit excited. Listen, while I take care of this I've got a friend who can keep you occupied. In fact, take this part to him for me!")
  467. end
  468. ------------------------------------------------------------------------------------------------------------------------
  469. -- Quest 4
  470. ------------------------------------------------------------------------------------------------------------------------
  471. function PokoZing(NPC, Spawn)
  472. FaceTarget(NPC, Spawn)
  473. conversation = CreateConversation()
  474. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund050.mp3", "", "", 2003101354, 3738442152, Spawn)
  475. AddConversationOption(conversation, "I'll deliver this right away.", "OfferQuest4")
  476. StartConversation(conversation, NPC, Spawn, "Poko Zing! You'll find him in the Forest Ruins, which you can get to from here.")
  477. end
  478. function OfferQuest4(NPC, Spawn)
  479. FaceTarget(NPC, Spawn)
  480. OfferQuest(NPC, Spawn, GETTING_TO_KNOW_POKO)
  481. end
  482. function SpokenToPokoYet(NPC, Spawn)
  483. FaceTarget(NPC, Spawn)
  484. conversation = CreateConversation()
  485. if HasCompletedQuest(Spawn, GETTING_TO_KNOW_POKO) then
  486. AddConversationOption(conversation, "Yes, I have.", "WonderfulGladToHear")
  487. end
  488. AddConversationOption(conversation, "Not yet.")
  489. StartConversation(conversation, NPC, Spawn, "Have you spoken to Poko yet?")
  490. end
  491. function WonderfulGladToHear(NPC, Spawn)
  492. FaceTarget(NPC, Spawn)
  493. conversation = CreateConversation()
  494. AddConversationOption(conversation, "All right.")
  495. StartConversation(conversation, NPC, Spawn, "Wonderful! I'm glad to hear that. Anyway, back to my studying! Keep learning!")
  496. end