NeezerGrund.lua 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647
  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. SetPlayerProximityFunction(NPC, 2, "InRange", "LeaveRange")
  23. end
  24. function InRange(NPC, Spawn)
  25. if math.random(1, 100) <= 70 then
  26. local choice = math.random(1,4)
  27. if choice == 1 then
  28. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/fprt_hood03/qst_neezer_grund_blastingtwo_2c0e8052.mp3", "Don't be afraid... the high quality parts will certainly almost probably stop any explosions.", "", 652571017, 367300687, Spawn)
  29. elseif choice == 2 then
  30. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/fprt_hood03/qst_neezer_grund_blasting_610b5248.mp3", "Come now, place the blasting capsule in the translation device.", "", 3007812352, 3808878638, Spawn)
  31. elseif choice == 3 then
  32. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/fprt_hood03/qst_neezer_grund_notonquest_f19aeb36.mp3", "Our proximity concerns me.", "", 1049236413, 2313040785, Spawn)
  33. elseif choice == 4 then
  34. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/fprt_hood03/qst_neezer_grund_translating_cc4f0d5a.mp3", "I'm quite busy, I'll be free in just a moment or two!", "", 955771039, 458972401, Spawn)
  35. else
  36. end
  37. end
  38. end
  39. function respawn(NPC)
  40. spawn(NPC)
  41. end
  42. function hailed(NPC, Spawn)
  43. FaceTarget(NPC, Spawn)
  44. conversation = CreateConversation()
  45. if GetRace(Spawn) == GNOME then
  46. Begin(NPC, Spawn, conversation)
  47. else
  48. NotGnome(NPC, Spawn, conversation)
  49. end
  50. end
  51. function NotGnome(NPC, Spawn, conversation)
  52. AddConversationOption(conversation, "Busy with what?", "BusyWithWhat")
  53. StartConversation(conversation, NPC, Spawn, "Ah yes, hello, hello. I'm afraid I'm quite busy at the moment.")
  54. end
  55. function BusyWithWhat(NPC, Spawn)
  56. FaceTarget(NPC, Spawn)
  57. conversation = CreateConversation()
  58. AddConversationOption(conversation, "Oh...")
  59. AddConversationOption(conversation, "Fine.")
  60. 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.")
  61. end
  62. function Begin(NPC, Spawn, conversation)
  63. if HasCompletedQuest(Spawn, SCRAPTASTIC) then
  64. if HasCompletedQuest(Spawn, NOGGINSPARK_REACTORS) then
  65. if HasCompletedQuest(Spawn, NEEZERS_SURVEY) then
  66. if HasCompletedQuest(Spawn, GETTING_TO_KNOW_POKO) then
  67. SpokenToPokoYet(NPC, Spawn)
  68. elseif HasQuest(Spawn, GETTING_TO_KNOW_POKO) then
  69. SpokenToPokoYet(NPC, Spawn)
  70. else
  71. GatheredInfoYet(NPC, Spawn)
  72. end
  73. elseif HasQuest(Spawn, NEEZERS_SURVEY) then
  74. if GetQuestStep(Spawn, NEEZERS_SURVEY) == 1 then
  75. HelloHowDidItGo(NPC, Spawn)
  76. else
  77. GatheredInfoYet(NPC, Spawn)
  78. end
  79. else
  80. HaveTheReactorsYet(NPC, Spawn)
  81. end
  82. elseif HasQuest(Spawn, NOGGINSPARK_REACTORS) then
  83. HaveTheReactorsYet(NPC, Spawn)
  84. else
  85. CollectMetalYet(NPC, Spawn)
  86. end
  87. elseif HasQuest(Spawn, SCRAPTASTIC) then
  88. CollectMetalYet(NPC, Spawn)
  89. else
  90. NoQuests(NPC, Spawn)
  91. end
  92. end
  93. function NoQuests(NPC, Spawn)
  94. FaceTarget(NPC, Spawn)
  95. conversation = CreateConversation()
  96. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund003.mp3", "", "", 2398754480, 2380734970, Spawn)
  97. AddConversationOption(conversation, "Wonderful!", "Wonderful")
  98. AddConversationOption(conversation, "Well enough.", "Wonderful")
  99. AddConversationOption(conversation, "I cannot complain.", "Wonderful")
  100. AddConversationOption(conversation, "Not too well.", "NotTooWell")
  101. AddConversationOption(conversation, "Horrible.", "NotTooWell")
  102. StartConversation(conversation, NPC, Spawn, "Hello, hello. Good day to you! How are you doing, my friend?")
  103. end
  104. function Wonderful(NPC, Spawn)
  105. FaceTarget(NPC, Spawn)
  106. conversation = CreateConversation()
  107. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund004.mp3", "", "", 159402035, 3144243317, Spawn)
  108. AddConversationOption(conversation, "Indeed!", "Indeed")
  109. AddConversationOption(conversation, "I suppose so.", "Indeed")
  110. StartConversation(conversation, NPC, Spawn, "That's good to hear! Nothing helps the mind learn like a sunny disposition.")
  111. end
  112. function NotTooWell(NPC, Spawn)
  113. FaceTarget(NPC, Spawn)
  114. conversation = CreateConversation()
  115. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund005.mp3", "", "", 3561294899, 2382387513, Spawn)
  116. AddConversationOption(conversation, "Indeed!", "Indeed")
  117. AddConversationOption(conversation, "I suppose so.", "Indeed")
  118. StartConversation(conversation, NPC, Spawn, "Can't win them all, I suppose. But even an upset provides ample opportunity to learn!")
  119. end
  120. function Indeed(NPC, Spawn)
  121. FaceTarget(NPC, Spawn)
  122. conversation = CreateConversation()
  123. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund006.mp3", "", "", 383028818, 2731292797, Spawn)
  124. AddConversationOption(conversation, "Oh, I agree!", "LearningUsefulForAll")
  125. AddConversationOption(conversation, "Sure, I guess.", "LearningUsefulForAll")
  126. 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?")
  127. end
  128. function LearningUsefulForAll(NPC, Spawn)
  129. FaceTarget(NPC, Spawn)
  130. conversation = CreateConversation()
  131. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund010.mp3", "", "", 2512061908, 1584382933, Spawn)
  132. AddConversationOption(conversation, "What can you teach me?", "TeachYouAlot")
  133. 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?")
  134. end
  135. function TeachYouAlot(NPC, Spawn)
  136. FaceTarget(NPC, Spawn)
  137. conversation = CreateConversation()
  138. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund011a.mp3", "", "", 1024129290, 1515220544, Spawn)
  139. AddConversationOption(conversation, "Sounds complicated.", "LessonMostGnomesNeverLearn")
  140. 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.")
  141. end
  142. function LessonMostGnomesNeverLearn(NPC, Spawn)
  143. FaceTarget(NPC, Spawn)
  144. conversation = CreateConversation()
  145. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund011.mp3", "", "", 1744061266, 2073767999, Spawn)
  146. AddConversationOption(conversation, "Socialization?", "BigRoleToPlay")
  147. AddConversationOption(conversation, "The thing after which you're modeling the clockwork?", "ForgetAboutTargetModel")
  148. AddConversationOption(conversation, "Basic needs?", "BigRoleToPlay")
  149. AddConversationOption(conversation, "Complex math?", "BigRoleToPlay")
  150. 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?")
  151. end
  152. function BigRoleToPlay(NPC, Spawn)
  153. FaceTarget(NPC, Spawn)
  154. conversation = CreateConversation()
  155. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund012.mp3", "", "", 400046078, 4032605046, Spawn)
  156. AddConversationOption(conversation, "Why is it so important?", "CarveAnOrange")
  157. 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.")
  158. end
  159. function CarveAnOrange(NPC, Spawn)
  160. FaceTarget(NPC, Spawn)
  161. conversation = CreateConversation()
  162. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund014.mp3", "", "", 560118172, 3267242459, Spawn)
  163. AddConversationOption(conversation, "Not very hard.", "CarveSnapSnafu")
  164. 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?")
  165. end
  166. function CarveSnapSnafu(NPC, Spawn)
  167. FaceTarget(NPC, Spawn)
  168. conversation = CreateConversation()
  169. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund015.mp3", "", "", 1479998599, 3063831444, Spawn)
  170. AddConversationOption(conversation, "A what?", "BetterClockWorkRat")
  171. StartConversation(conversation, NPC, Spawn, "What if you wanted to carve a Compartmental Snap-Snafu?")
  172. end
  173. function BetterClockWorkRat(NPC, Spawn)
  174. FaceTarget(NPC, Spawn)
  175. conversation = CreateConversation()
  176. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund016.mp3", "", "", 1777801851, 3121337531, Spawn)
  177. AddConversationOption(conversation, "Clockwork pineapple?", "PineapplesArentThePoint")
  178. 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!")
  179. end
  180. function PineapplesArentThePoint(NPC, Spawn)
  181. FaceTarget(NPC, Spawn)
  182. conversation = CreateConversation()
  183. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund017.mp3", "", "", 1454499140, 4215645266, Spawn)
  184. AddConversationOption(conversation, "Yes.", "GettingThingsMostExcellent")
  185. AddConversationOption(conversation, "No.", "ThePointIs")
  186. 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?")
  187. end
  188. function GettingThingsMostExcellent(NPC, Spawn)
  189. FaceTarget(NPC, Spawn)
  190. conversation = CreateConversation()
  191. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund019.mp3", "", "", 2892273855, 3107559798, Spawn)
  192. AddConversationOption(conversation, "Huh?", "NeedMetalMyGoodGnome")
  193. StartConversation(conversation, NPC, Spawn, "Good! Getting things is most excellent. Speaking of getting things I need you to get something for me.")
  194. end
  195. function NeedMetalMyGoodGnome(NPC, Spawn)
  196. FaceTarget(NPC, Spawn)
  197. conversation = CreateConversation()
  198. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund020.mp3", "", "", 4025541555, 1679896535, Spawn)
  199. AddConversationOption(conversation, "Am I supposed to learn from this?", "BaubbleshireOverloaded")
  200. 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.")
  201. end
  202. function BaubbleshireOverloaded(NPC, Spawn)
  203. FaceTarget(NPC, Spawn)
  204. conversation = CreateConversation()
  205. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund021.mp3", "", "", 695807949, 2739522754, Spawn)
  206. AddConversationOption(conversation, "Sure, I'll help.", "MetalCanBeFoundAllAround")
  207. AddConversationOption(conversation, "Sorry, not right now.")
  208. 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?")
  209. end
  210. function MetalCanBeFoundAllAround(NPC, Spawn)
  211. FaceTarget(NPC, Spawn)
  212. conversation = CreateConversation()
  213. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund022.mp3", "", "", 3604190287, 3119663481, Spawn)
  214. AddConversationOption(conversation, "All right.", "OfferQuest1")
  215. 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.")
  216. end
  217. function ForgetAboutTargetModel(NPC, Spawn)
  218. FaceTarget(NPC, Spawn)
  219. conversation = CreateConversation()
  220. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund013.mp3", "", "", 3876182189, 1831808866, Spawn)
  221. AddConversationOption(conversation, "Why is it so important?", "CarveAnOrange")
  222. StartConversation(conversation, NPC, Spawn, "Precisely! More than anything else I tend to forget about my target model. And that's a huge mistake.")
  223. end
  224. function ThePointIs(NPC, Spawn)
  225. FaceTarget(NPC, Spawn)
  226. conversation = CreateConversation()
  227. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund018.mp3", "", "", 2698816568, 2514712329, Spawn)
  228. AddConversationOption(conversation, "I think I get it now.", "GettingThingsMostExcellent")
  229. 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.")
  230. end
  231. function OfferQuest1(NPC, Spawn)
  232. FaceTarget(NPC, Spawn)
  233. OfferQuest(NPC, Spawn, SCRAPTASTIC)
  234. end
  235. function CollectMetalYet(NPC, Spawn)
  236. FaceTarget(NPC, Spawn)
  237. conversation = CreateConversation()
  238. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund023.mp3", "", "", 3712250731, 444462007, Spawn)
  239. if (HasCompletedQuest(Spawn, SCRAPTASTIC) and not HasCompletedQuest(Spawn, NOGGINSPARK_REACTORS)) or (HasQuest(Spawn, SCRAPTASTIC) and GetQuestStep(Spawn, SCRAPTASTIC) == 2) then
  240. AddConversationOption(conversation, "Yes I have.", "GotMetal")
  241. end
  242. AddConversationOption(conversation, "No, not yet.")
  243. StartConversation(conversation, NPC, Spawn, "Have you collected the metal yet?")
  244. end
  245. function GotMetal(NPC, Spawn)
  246. if HasQuest(Spawn, SCRAPTASTIC) then
  247. SetStepComplete(Spawn, SCRAPTASTIC, 2)
  248. end
  249. FaceTarget(NPC, Spawn)
  250. conversation = CreateConversation()
  251. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund024.mp3", "", "", 699637292, 2939226911, Spawn)
  252. AddConversationOption(conversation, "How so?", "LogicPractically")
  253. 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.")
  254. end
  255. --------------------------------------------------------------------------------------------------------------------------------
  256. -- QUEST 2
  257. --------------------------------------------------------------------------------------------------------------------------------
  258. function LogicPractically(NPC, Spawn)
  259. FaceTarget(NPC, Spawn)
  260. conversation = CreateConversation()
  261. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund025.mp3", "", "", 695225922, 1471596605, Spawn)
  262. AddConversationOption(conversation, "Nogginspark?", "DontKnowTheName")
  263. 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!")
  264. end
  265. function DontKnowTheName(NPC, Spawn)
  266. FaceTarget(NPC, Spawn)
  267. conversation = CreateConversation()
  268. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund026.mp3", "", "", 1318729135, 1687338620, Spawn)
  269. AddConversationOption(conversation, "But who is he?", "NogginsparkWasOnce")
  270. StartConversation(conversation, NPC, Spawn, "It's good that you don't know the name, it means he's keeping out of the public eye.")
  271. end
  272. function NogginsparkWasOnce(NPC, Spawn)
  273. FaceTarget(NPC, Spawn)
  274. conversation = CreateConversation()
  275. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund027.mp3", "", "", 2506302340, 2745721634, Spawn)
  276. AddConversationOption(conversation, "That isn't surprising.", "NogginsparkWasntVeryKeen")
  277. 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.")
  278. end
  279. function NogginsparkWasntVeryKeen(NPC, Spawn)
  280. FaceTarget(NPC, Spawn)
  281. conversation = CreateConversation()
  282. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund028.mp3", "", "", 801212880, 3491241694, Spawn)
  283. AddConversationOption(conversation, "What did he do?", "HeLeft")
  284. 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.")
  285. end
  286. function HeLeft(NPC, Spawn)
  287. FaceTarget(NPC, Spawn)
  288. conversation = CreateConversation()
  289. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund029.mp3", "", "", 494301261, 212992841, Spawn)
  290. AddConversationOption(conversation, "What is a Nogginspark Reactor?", "AmazingDevice")
  291. 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.")
  292. end
  293. function AmazingDevice(NPC, Spawn)
  294. FaceTarget(NPC, Spawn)
  295. conversation = CreateConversation()
  296. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund030.mp3", "", "", 3630655555, 2040609157, Spawn)
  297. AddConversationOption(conversation, "How do you know so much about it.", "SomeWhatClose")
  298. 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.")
  299. end
  300. function SomeWhatClose(NPC, Spawn)
  301. FaceTarget(NPC, Spawn)
  302. conversation = CreateConversation()
  303. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund031.mp3", "", "", 1026846973, 2969612033, Spawn)
  304. AddConversationOption(conversation, "How so?", "VesselsNogginspark")
  305. 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.")
  306. end
  307. function VesselsNogginspark(NPC, Spawn)
  308. FaceTarget(NPC, Spawn)
  309. conversation = CreateConversation()
  310. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund032.mp3", "", "", 1856257557, 1013614090, Spawn)
  311. AddConversationOption(conversation, "That's amazing.", "UseThemInGadgets")
  312. 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.")
  313. end
  314. function UseThemInGadgets(NPC, Spawn)
  315. FaceTarget(NPC, Spawn)
  316. conversation = CreateConversation()
  317. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund033.mp3", "", "", 3293153605, 462704824, Spawn)
  318. AddConversationOption(conversation, "What must I do?", "FalseRats")
  319. 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.")
  320. end
  321. function FalseRats(NPC, Spawn)
  322. FaceTarget(NPC, Spawn)
  323. conversation = CreateConversation()
  324. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund034.mp3", "", "", 403739352, 2116282291, Spawn)
  325. AddConversationOption(conversation, "Are they dangerous?", "OfferQuest2")
  326. 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.")
  327. end
  328. function OfferQuest2(NPC, Spawn)
  329. FaceTarget(NPC, Spawn)
  330. OfferQuest(NPC, Spawn, NOGGINSPARK_REACTORS)
  331. end
  332. function HaveTheReactorsYet(NPC, Spawn)
  333. FaceTarget(NPC, Spawn)
  334. conversation = CreateConversation()
  335. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund035.mp3", "", "", 394906506, 3033570210, Spawn)
  336. if (HasCompletedQuest(Spawn, NOGGINSPARK_REACTORS) and not HasCompletedQuest(Spawn, NEEZERS_SURVEY)) or (HasQuest(Spawn, NOGGINSPARK_REACTORS) and GetQuestStep(Spawn, NOGGINSPARK_REACTORS) == 2) then
  337. AddConversationOption(conversation, "Yes, I do.", "GotReactors")
  338. end
  339. AddConversationOption(conversation, "No, not yet.")
  340. StartConversation(conversation, NPC, Spawn, "Do you have the reactors?")
  341. end
  342. function GotReactors(NPC, Spawn)
  343. if HasQuest(Spawn, NOGGINSPARK_REACTORS) then
  344. SetStepComplete(Spawn, NOGGINSPARK_REACTORS, 2)
  345. end
  346. FaceTarget(NPC, Spawn)
  347. conversation = CreateConversation()
  348. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund036.mp3", "", "", 813222908, 4004987438, Spawn)
  349. AddConversationOption(conversation, "Halflings?", "YouThoughtAboutHalflings")
  350. StartConversation(conversation, NPC, Spawn, "Ahhh, magnificent. I do appreciate this, really I do. Quickly now, don't think about halflings!")
  351. end
  352. --------------------------------------------------------------------------------------------------------------
  353. -- QUEST 3
  354. --------------------------------------------------------------------------------------------------------------
  355. function YouThoughtAboutHalflings(NPC, Spawn)
  356. FaceTarget(NPC, Spawn)
  357. conversation = CreateConversation()
  358. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund037.mp3", "", "", 2556511824, 3361874688, Spawn)
  359. AddConversationOption(conversation, "Does it work?", "WorksWonderfully")
  360. 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.")
  361. end
  362. function WorksWonderfully(NPC, Spawn)
  363. FaceTarget(NPC, Spawn)
  364. conversation = CreateConversation()
  365. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund038.mp3", "", "", 2990773465, 2059831606, Spawn)
  366. AddConversationOption(conversation, "Sure, I guess.", "AskAllOfTheQuestions")
  367. 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?")
  368. end
  369. function AskAllOfTheQuestions(NPC, Spawn)
  370. FaceTarget(NPC, Spawn)
  371. conversation = CreateConversation()
  372. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund039.mp3", "", "", 1467938151, 2246844233, Spawn)
  373. AddConversationOption(conversation, "What questions?", "SorryHereTheyAre")
  374. 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.")
  375. end
  376. function SorryHereTheyAre(NPC, Spawn)
  377. FaceTarget(NPC, Spawn)
  378. conversation = CreateConversation()
  379. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund039a.mp3", "", "", 1439058546, 1389547628, Spawn)
  380. AddConversationOption(conversation, "That's strange.", "OfferQuest3")
  381. 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.")
  382. end
  383. function OfferQuest3(NPC, Spawn)
  384. FaceTarget(NPC, Spawn)
  385. OfferQuest(NPC, Spawn, NEEZERS_SURVEY)
  386. end
  387. function GatheredInfoYet(NPC, Spawn)
  388. FaceTarget(NPC, Spawn)
  389. conversation = CreateConversation()
  390. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund040.mp3", "", "", 167402545, 3218119097, Spawn)
  391. 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
  392. AddConversationOption(conversation, "Yes I did.", "GatheredInfo")
  393. elseif HasQuest(Spawn, NEEZERS_SURVEY) then
  394. HelloHowDidItGo(NPC, Spawn)
  395. end
  396. AddConversationOption(conversation, "Not yet.")
  397. StartConversation(conversation, NPC, Spawn, "Did you gather the information?")
  398. end
  399. function HelloHowDidItGo(NPC, Spawn)
  400. FaceTarget(NPC, Spawn)
  401. conversation = CreateConversation()
  402. AddConversationOption(conversation, "I need a copy of the questions.", "NeedCopyQuestions")
  403. StartConversation(conversation, NPC, Spawn, "Hello, how did it go?")
  404. end
  405. function NeedCopyQuestions(NPC, Spawn)
  406. FaceTarget(NPC, Spawn)
  407. conversation = CreateConversation()
  408. AddConversationOption(conversation, "Ok, I'll be back once I've gotten the answers.")
  409. -- Neezer's Questions
  410. if HasItem(Spawn, NEEZERS_QUESTIONS) then
  411. StartConversation(conversation, NPC, Spawn, "I already gave you a copy, make sure you check your bags and maybe even your bank, then examine them!")
  412. else
  413. SummonItem(Spawn, NEEZERS_QUESTIONS, 1)
  414. StartConversation(conversation, NPC, Spawn, "Here you go. Come back if you need another copy.")
  415. end
  416. end
  417. function GatheredInfo(NPC, Spawn)
  418. FaceTarget(NPC, Spawn)
  419. conversation = CreateConversation()
  420. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund041.mp3", "", "", 89357876, 2587237282, Spawn)
  421. AddConversationOption(conversation, "Yes.", "Question1")
  422. 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?")
  423. end
  424. function Question1(NPC, Spawn)
  425. FaceTarget(NPC, Spawn)
  426. conversation = CreateConversation()
  427. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund042.mp3", "", "", 3205382465, 4154417613, Spawn)
  428. AddConversationOption(conversation, "Erm, leave, variable.", "Question2")
  429. StartConversation(conversation, NPC, Spawn, "Ok. Question one.")
  430. end
  431. function Question2(NPC, Spawn)
  432. FaceTarget(NPC, Spawn)
  433. conversation = CreateConversation()
  434. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund043.mp3", "", "", 1399090384, 3898684702, Spawn)
  435. AddConversationOption(conversation, "What, the, in.", "Question3")
  436. StartConversation(conversation, NPC, Spawn, "All right. Question two.")
  437. end
  438. function Question3(NPC, Spawn)
  439. FaceTarget(NPC, Spawn)
  440. conversation = CreateConversation()
  441. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund044.mp3", "", "", 798104376, 2325700503, Spawn)
  442. AddConversationOption(conversation, "I, nut, going.", "Question4")
  443. StartConversation(conversation, NPC, Spawn, "Question three.")
  444. end
  445. function Question4(NPC, Spawn)
  446. FaceTarget(NPC, Spawn)
  447. conversation = CreateConversation()
  448. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund045.mp3", "", "", 1339784146, 2591203703, Spawn)
  449. AddConversationOption(conversation, "Thermo-what, I, no.", "Question5")
  450. StartConversation(conversation, NPC, Spawn, "All right. Question four.")
  451. end
  452. function Question5(NPC, Spawn)
  453. FaceTarget(NPC, Spawn)
  454. conversation = CreateConversation()
  455. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund046.mp3", "", "", 2378626494, 4165116500, Spawn)
  456. AddConversationOption(conversation, "Who, who, who.", "Question6")
  457. StartConversation(conversation, NPC, Spawn, "Theramwatt?! I can't believe Drundo knew that one! Ok, question five.")
  458. end
  459. function Question6(NPC, Spawn)
  460. FaceTarget(NPC, Spawn)
  461. conversation = CreateConversation()
  462. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund047.mp3", "", "", 2355834496, 4028717093, Spawn)
  463. AddConversationOption(conversation, "I, is, I.", "ATautology")
  464. StartConversation(conversation, NPC, Spawn, "Ouch. Ok, question six.")
  465. end
  466. function ATautology(NPC, Spawn)
  467. FaceTarget(NPC, Spawn)
  468. conversation = CreateConversation()
  469. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund048.mp3", "", "", 1677411622, 1337570204, Spawn)
  470. AddConversationOption(conversation, "I guess so.", "TakeMeLongTime")
  471. 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!")
  472. end
  473. function TakeMeLongTime(NPC, Spawn)
  474. if HasQuest(Spawn, NEEZERS_SURVEY) then
  475. SetStepComplete(Spawn, NEEZERS_SURVEY, 5)
  476. end
  477. FaceTarget(NPC, Spawn)
  478. conversation = CreateConversation()
  479. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund049.mp3", "", "", 305933006, 365026974, Spawn)
  480. AddConversationOption(conversation, "Who am I taking this to?", "PokoZing")
  481. AddConversationOption(conversation, "Not a chance.")
  482. 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!")
  483. end
  484. ------------------------------------------------------------------------------------------------------------------------
  485. -- Quest 4
  486. ------------------------------------------------------------------------------------------------------------------------
  487. function PokoZing(NPC, Spawn)
  488. FaceTarget(NPC, Spawn)
  489. conversation = CreateConversation()
  490. PlayFlavor(NPC, "voiceover/english/tutorial_revamp/neezer_grund/qey_village06/quests/neezer_grund/neezer_grund050.mp3", "", "", 2003101354, 3738442152, Spawn)
  491. AddConversationOption(conversation, "I'll deliver this right away.", "OfferQuest4")
  492. StartConversation(conversation, NPC, Spawn, "Poko Zing! You'll find him in the Forest Ruins, which you can get to from here.")
  493. end
  494. function OfferQuest4(NPC, Spawn)
  495. FaceTarget(NPC, Spawn)
  496. OfferQuest(NPC, Spawn, GETTING_TO_KNOW_POKO)
  497. end
  498. function SpokenToPokoYet(NPC, Spawn)
  499. FaceTarget(NPC, Spawn)
  500. conversation = CreateConversation()
  501. if HasCompletedQuest(Spawn, GETTING_TO_KNOW_POKO) then
  502. AddConversationOption(conversation, "Yes, I have.", "WonderfulGladToHear")
  503. end
  504. AddConversationOption(conversation, "Not yet.")
  505. StartConversation(conversation, NPC, Spawn, "Have you spoken to Poko yet?")
  506. end
  507. function WonderfulGladToHear(NPC, Spawn)
  508. FaceTarget(NPC, Spawn)
  509. conversation = CreateConversation()
  510. AddConversationOption(conversation, "All right.")
  511. StartConversation(conversation, NPC, Spawn, "Wonderful! I'm glad to hear that. Anyway, back to my studying! Keep learning!")
  512. end