123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312 |
- --[[
- Script Name : SpawnScripts/NorthFreeport/ArcanistSonius.lua
- Script Author : Dorbin
- Script Date : 2023.09.29 06:09:41
- Script Purpose :
- :
- --]]
- require "SpawnScripts/Generic/DialogModule"
- local Mage1 = 5902
- local Sorc = 5904
- local Summ = 5905
- local Ench = 5903
- function spawn(NPC)
- ProvidesQuest(NPC, Mage1)
- ProvidesQuest(NPC, Sorc)
- ProvidesQuest(NPC, Summ)
- ProvidesQuest(NPC, Ench)
- end
- --The Arcanist sent you to me? She's made my promotion to sorcerer so easy!
- function respawn(NPC)
- spawn(NPC)
- end
- function hailed(NPC, Spawn)
- if GetLevel(Spawn) ==7 and HasCompletedQuest(Spawn,Mage1) then
- DoneToday(NPC,Spawn)
- elseif GetLevel(Spawn) >=9 and HasCompletedQuest(Spawn,Mage1) and GetClass(Spawn)==21 and not HasQuest(Spawn, Ench) and not HasQuest(Spawn, Sorc) and not HasQuest(Spawn, Summ) then
- FinalClassTest(NPC,Spawn)
- else
- FaceTarget(NPC, Spawn)
- Dialog.New(NPC, Spawn)
- Dialog.AddDialog("Don't talk to me unless you're devoted to academic research. Unlocking the secrets of arcane powers takes devotion. The lazy need not apply in this field...")
- Dialog.AddVoiceover("voiceover/english/arcanist_sonius/fprt_north/arcanistsonius001.mp3", 3905512775, 1010931746)
- PlayFlavor(NPC, "", "", "sniff", 0, 0, Spawn)
- if GetClass(Spawn)== 21 and GetLevel(Spawn)>=7 and not HasQuest(Spawn,Mage1) and not HasCompletedQuest(Spawn,Mage1) then
- Dialog.AddOption("I am interested in learning how to enhance my magic abilities.","Dialog1")
- end
- if HasQuest(Spawn,Mage1) and GetQuestStep(Spawn,Mage1)==2 then
- Dialog.AddOption("The infestation of slimes has been slowed now that I have destroyed a number of the monstrous goos.","Dialog2")
- end
- if HasQuest(Spawn,Mage1) and GetQuestStep(Spawn,Mage1)==4 then
- Dialog.AddOption("He's written up a contract for forty bottles at five silver pieces each.","Dialog3")
- end
- if GetClass(Spawn)== 21 and GetLevel(Spawn)>=8 and GetQuestStep(Spawn,Mage1)==5 then
- Dialog.AddOption("I would like to continue my lessons, Arcanist.","Dialog4")
- elseif GetClass(Spawn)== 21 and GetLevel(Spawn)< 8 and GetQuestStep(Spawn,Mage1)==5 then
- Dialog.AddOption("I will return once I've reviewed my studies, Arcanist.")
- end
- if HasQuest(Spawn,Mage1) and GetQuestStep(Spawn,Mage1)==9 then
- Dialog.AddOption("I have collected the information on what was summoned. It looks like three different things were summoned into existence.","Dialog5")
- end
- if HasCompletedQuest(Spawn,Ench) or HasCompletedQuest(Spawn,Sorc) or HasCompletedQuest(Spawn,Summ) then
- Dialog.AddOption("Arcanist. I still reflect on your lessons. Thank you.")
- end
- if GetLevel(Spawn) <9 and HasCompletedQuest(Spawn,Mage1) and GetClass(Spawn)==21 and not HasQuest(Spawn, Ench) and not HasQuest(Spawn, Sorc) and not HasQuest(Spawn, Summ) then
- Dialog.AddOption("I will return for my final exam once I've reviewed my studies, Arcanist.")
- end
- Dialog.AddOption("In that case, I'll let you get back to work. Goodbye.")
- Dialog.Start()
- end
- end
- --I convinced Bulz the troll to defeat a couple of Seafuries for me. I handled the first mate myself.
- --Precisely! The mage summoned an elephant! One witness felt its ears drape her head, another ran into its tusks, and the last witness felt the elephant's trunk wrap around his neck. Even though each witness experienced something different, there is only one reality. A summoner can identify this reality and change it to suit his needs. I know who is responsible for summoning the elephant, but this is not your concern. You completed your lessons, my apt pupil. Now it is time for your final exam.
- --I do not have time to speak to you unless you are seriously devoted to academic research. This is not something to take lightly, for true research does not just happen all by itself. You must devote your life to unlocking the secrets of arcane powers. Therefore, the lazy need not apply.
- function Dialog1(NPC,Spawn)
- FaceTarget(NPC, Spawn)
- Dialog.New(NPC, Spawn)
- Dialog.AddDialog("Or so you say... Many people dabble in the arcane for the promise of great power. Yet, when the time comes, they're too lazy to wrest secrets from the grasp of mystery. How far will you go to unlock the power that knowledge can grant you?")
- Dialog.AddVoiceover("voiceover/english/arcanist_sonius/fprt_north/arcanistsonius002.mp3", 2674482409, 809985473)
- Dialog.AddOption("I will wield powers yet to be seen in this world!","OfferMage1")
- Dialog.AddOption("I... should be going.")
- Dialog.Start()
- end
- function OfferMage1(NPC,Spawn)
- OfferQuest(NPC,Spawn,Mage1)
- FaceTarget(NPC,Spawn)
- end
- --I would like to continue my lessons, Arcanist.
- function Dialog2(NPC,Spawn)
- FaceTarget(NPC, Spawn)
- Dialog.New(NPC, Spawn)
- Dialog.AddDialog("Hmmm ... you return and in a timely manner. You may be a prize pupil after all. Even though you can't see it, these Slime specimens contain residue of the life force that animated them. You will learn that life is a never-ending resource that surrounds us. Knowledge, on the other hand, is far more difficult to obtain. Thus, the lesson learned is knowledge is far more precious than life. Remember this.")
- Dialog.AddVoiceover("voiceover/english/arcanist_sonius/fprt_north/arcanistsonius004.mp3", 3551708297, 2303353482)
- PlayFlavor(NPC, "", "", "ponder", 0, 0, Spawn)
- Dialog.AddOption("I see. So my path to knowing will be paved by the bodies before me.","Dialog2a")
- Dialog.Start()
- end
- function Dialog2a(NPC,Spawn)
- FaceTarget(NPC, Spawn)
- Dialog.New(NPC, Spawn)
- Dialog.AddDialog("Next, I shall teach you how to avoid letting other people's concerns disrupt your research. The Coalition of Tradesfolke raised the price of ink this morning. This is unacceptable. Go speak with Aulus in Torlig's Shop. Convince him that the price increase of ink shouldn't apply to someone of my stature.")
- Dialog.AddVoiceover("voiceover/english/arcanist_sonius/fprt_north/arcanistsonius005.mp3", 4176304101, 1577206553)
- PlayFlavor(NPC, "", "", "nod", 0, 0, Spawn)
- Dialog.AddOption("How would I do that?","Dialog2b")
- Dialog.Start()
- end
- function Dialog2b(NPC,Spawn)
- SetStepComplete(Spawn,Mage1,2)
- FaceTarget(NPC, Spawn)
- Dialog.New(NPC, Spawn)
- Dialog.AddDialog("An enchanter would mesmerise Alus with a simple spell, but you haven't learned these skills. It shall be a difficult task, but mesmerizing Aulus will teach you the skills of an enchanter. Start with the words you use in everyday life, then you will begin to understand how to enhance people with magic.")
- Dialog.AddVoiceover("voiceover/english/arcanist_sonius/fprt_north/arcanistsonius006.mp3", 2931456206, 3429721696)
- Dialog.AddOption("Alright. I'll return once I've spoken with them.")
- Dialog.Start()
- end
- function Dialog3(NPC,Spawn)
- FaceTarget(NPC, Spawn)
- Dialog.New(NPC, Spawn)
- Dialog.AddDialog("Amazing! He charges ten gold pieces for a bottle and you lowered it to five silver pieces? Well, my pupil, I think you have what it takes to be an enchanter.")
- Dialog.AddVoiceover("voiceover/english/arcanist_sonius/fprt_north/arcanistsonius007.mp3", 1459390682, 2672790255)
- PlayFlavor(NPC, "", "", "boggle", 0, 0, Spawn)
- SetStepComplete(Spawn,Mage1,4)
- if GetClass(Spawn)== 21 and GetLevel(Spawn)>=8 and GetQuestStep(Spawn,Mage1)==5 then
- Dialog.AddOption("I rather enjoyed manipulating the conversation to my desire...","Dialog4")
- elseif GetClass(Spawn)== 21 and GetLevel(Spawn)< 8 and GetQuestStep(Spawn,Mage1)==5 then
- Dialog.AddOption("I rather enjoyed manipulating the conversation to my desire...","DoneToday")
- end
- Dialog.Start()
- end
- function DoneToday(NPC,Spawn)
- if GetQuestStep(Spawn,Mage1)==4 then
- SetStepComplete(Spawn,Mage1,4)
- end
- FaceTarget(NPC, Spawn)
- Dialog.New(NPC, Spawn)
- Dialog.AddDialog("I'm pleased with your progress. Unfortunately, today's lesson is over. I must write this postulate before I forget it. Please study what I taught you thus far. We can continue your lessons at another time.")
- Dialog.AddVoiceover("voiceover/english/arcanist_sonius/fprt_north/arcanistsonius008.mp3", 0, 0)
- PlayFlavor(NPC, "", "", "no", 0, 0, Spawn)
- if GetClass(Spawn)== 21 and GetLevel(Spawn)>=8 then
- Dialog.AddOption("I would like to continue my lessons, Arcanist. I'm eager to start","Dialog4")
- else
- Dialog.AddOption("Thank you. I'll return soon for more lessons.")
- end
- Dialog.Start()
- end
- ---MAGE2
- function Dialog4(NPC,Spawn)
- FaceTarget(NPC, Spawn)
- Dialog.New(NPC, Spawn)
- Dialog.AddDialog("Excellent! I noticed that one of my students dropped out of my course and is attempting home schooling. Without my signature of academic achievement, I cannot tolerate this. I don't know who this dropout is, but I need you to find out. In turn, you will learn the skills of a summoner.")
- Dialog.AddVoiceover("voiceover/english/arcanist_sonius/fprt_north/arcanistsonius009.mp3", 3430145629, 2951724267)
- PlayFlavor(NPC, "", "", "agree", 0, 0, Spawn)
- Dialog.AddOption("What does a dropout have to do with summoning?","Dialog4a")
- Dialog.Start()
- end
- function Dialog4a(NPC,Spawn)
- FaceTarget(NPC, Spawn)
- Dialog.New(NPC, Spawn)
- Dialog.AddDialog("I heard that earlier today several people in the districts witnessed the summoning of some kind of creature. Go question these witnesses. After interviewing them, identify the summoned creature. Let me know when you solve this mystery. When I find out who is responsible, I shall kill him for his disobedience! Let me have your journal. I'll write down the names of the witnesses.")
- Dialog.AddVoiceover("voiceover/english/arcanist_sonius/fprt_north/arcanistsonius010.mp3", 1221218294, 850810550)
- PlayFlavor(NPC, "", "", "nod", 0, 0, Spawn)
- Dialog.AddOption("Here is my journal. I will get to the bottom of this.","OfferMage2")
- Dialog.Start()
- end
- function OfferMage2(NPC,Spawn)
- SetStepComplete(Spawn,Mage1,5)
- FaceTarget(NPC,Spawn)
- end
- function Dialog5(NPC,Spawn)
- FaceTarget(NPC, Spawn)
- Dialog.New(NPC, Spawn)
- Dialog.AddDialog("You have a list? Let me see it. ... One person was draped in a sheet of leather, another was impaled by a stake, and another felt a snake ... this is rubbish! A novice summoner could never summon three objects at once! From this list, I can tell what that delinquent student summoned. To pass this test, you must understand that people's realities differ. Three objects weren't summoned today, only one was. What was it?")
- Dialog.AddVoiceover("voiceover/english/arcanist_sonius/fprt_north/arcanistsonius011.mp3", 1663368472, 4059713499)
- PlayFlavor(NPC, "", "", "tapfoot", 0, 0, Spawn)
- Dialog.AddOption("a goblin","Wrong")
- Dialog.AddOption("a really big snake","Wrong")
- Dialog.AddOption("an orc","Wrong")
- Dialog.AddOption("a sewer slime","Wrong")
- Dialog.AddOption("Lucan D'lere","WrongLucan")
- Dialog.AddOption("an elephant","Correct")
- Dialog.AddOption("a coat-wearing snake wielding spears?","WrongSnake")
- Dialog.Start()
- end
- function Wrong(NPC,Spawn)
- FaceTarget(NPC, Spawn)
- Dialog.New(NPC, Spawn)
- Dialog.AddDialog("Sadly, you fail. Using the facts you presented me, your answer is ridiculous; you obviously put no thought into it. If you continue at this rate, you will never be anything more than a simple mage. Review the clues again, and speak with me when you have the correct answer.")
- Dialog.AddVoiceover("voiceover/english/arcanist_sonius/fprt_north/arcanistsonius012.mp3", 2718680677, 1828842152)
- PlayFlavor(NPC, "", "", "no", 0, 0, Spawn)
- Dialog.AddOption("I'll consider my list again...","Dialog5")
- Dialog.Start()
- end
- function WrongLucan(NPC,Spawn)
- FaceTarget(NPC, Spawn)
- Dialog.New(NPC, Spawn)
- Dialog.AddDialog("Fool! The Overlord is watching you as we speak.")
- Dialog.AddVoiceover("voiceover/english/optional2/darkelf_eco_evil_3/ft/darkelf/darkelf_eco_evil_3_notcitizen_gf_e5838bd0.mp3", 644059683, 1813641447)
- Dialog.AddVoiceover("voiceover/english/human_eco_evil_1/ft/human/human_eco_evil_1_notcitizen_gf_e5838bd0.mp3", 3487310419, 1932819422)
- PlayFlavor(NPC, "", "", "cringe", 0, 0, Spawn)
- Dialog.AddOption("Err...")
- Dialog.Start()
- end
- function WrongSnake(NPC,Spawn)
- FaceTarget(NPC, Spawn)
- Dialog.New(NPC, Spawn)
- Dialog.AddDialog("...")
- Dialog.AddVoiceover("voiceover/english/arcanist_sonius/fprt_north/arcanistsonius012.mp3", 0, 0)
- PlayFlavor(NPC, "", "", "stare", 0, 0, Spawn)
- Dialog.AddOption("Uhhh... Only kidding.","Wrong")
- Dialog.Start()
- end
- function Correct(NPC,Spawn)
- SetStepComplete(Spawn,Mage1,9)
- FaceTarget(NPC, Spawn)
- Dialog.New(NPC, Spawn)
- Dialog.AddDialog("Precisely! The mage summoned an elephant! One witness felt its ears drape her head, another ran into its tusks, and the last witness felt the elephant's trunk wrap around his neck. Even though each witness experienced something different, there is only one reality. A summoner can identify this reality and change it to suit his needs. I know who is responsible for summoning the elephant, but this is not your concern. You completed your lessons, my apt pupil. Now it is time for your final exam.")
- Dialog.AddVoiceover("voiceover/english/arcanist_sonius/fprt_north/arcanistsonius013.mp3", 1007657081, 1911291450)
- PlayFlavor(NPC, "", "", "agree", 0, 0, Spawn)
- Dialog.AddOption("A final exam? What must I do?","FinalClassTest")
- Dialog.Start()
- end
- --FINAL Test
- function FinalClassTest(NPC,Spawn)
- FaceTarget(NPC, Spawn)
- Dialog.New(NPC, Spawn)
- Dialog.AddDialog("I taught you three different methods of exploring the secrets of mystical power. Now you must dedicate your arcane studies to one discipline... Which shall it be?")
- Dialog.AddVoiceover("voiceover/english/arcanist_sonius/fprt_north/arcanistsonius014.mp3", 196403467, 3470342687)
- PlayFlavor(NPC, "", "", "sniff", 0, 0, Spawn)
- Dialog.AddOption("I feel the destructive arts are to my liking. I shall study to be a sorcerer.","Sorcery")
- Dialog.AddOption("The complex weaves of enchantment are compelling. I will study to be an enchanter.","Enchanter")
- Dialog.AddOption("Bending truths to create something from nothing is intriguing. I will be a summoner.","Summoner")
- Dialog.Start()
- end
- function Summoner(NPC,Spawn)
- FaceTarget(NPC, Spawn)
- OfferQuest(NPC,Spawn,Summ)
- end
- function Sorcery(NPC,Spawn)
- FaceTarget(NPC, Spawn)
- Dialog.New(NPC, Spawn)
- Dialog.AddDialog("Craving such immense power is tempting, but beware, others crave it too. They will destroy you in the blink of an eye to obtain even a small portion of your power. Students of the arcane arts must learn to combat these power plays by testing their skills. Now it is your time to test your skills and face your first opponent.")
- Dialog.AddVoiceover("voiceover/english/arcanist_sonius/fprt_north/arcanistsonius018.mp3", 2784462451, 4251950023)
- PlayFlavor(NPC, "", "", "shakefist", 0, 0, Spawn)
- Dialog.AddOption("I am ready. Who will I be testing my skills on?","Sorcery2")
- Dialog.AddOption("Perhaps I should reconsider this...","FinalClassTest")
- Dialog.Start()
- end
- function Sorcery2(NPC,Spawn)
- FaceTarget(NPC, Spawn)
- OfferQuest(NPC,Spawn,Sorc)
- end
- function Enchanter(NPC,Spawn)
- FaceTarget(NPC, Spawn)
- Dialog.New(NPC, Spawn)
- Dialog.AddDialog("You'll be an enchanter... yes... perhaps ... First, let's see how you deal with an angry crowd. Not everyone is cut out to deal with the thought required behind this choice ... we need to make sure that you are.")
- PlayFlavor(NPC, "", "", "sniff", 0, 0, Spawn)
- Dialog.AddVoiceover("voiceover/english/arcanist_sonius/fprt_north/arcanistsonius012.mp3", 0, 0)
- Dialog.AddOption("If it is like my lesson before, I can handle a crowd.","Enchanter2")
- Dialog.AddOption("Actually, I better rethink this.","FinalClassTest")
- Dialog.Start()
- end
- function Enchanter2(NPC,Spawn)
- FaceTarget(NPC, Spawn)
- OfferQuest(NPC,Spawn,Ench)
- end
- function GoodbyeSumm(NPC,Spawn) -- ALSO SORC
- FaceTarget(NPC, Spawn)
- Dialog.New(NPC, Spawn)
- Dialog.AddDialog("You don't need to return to me. You'll have proved your worth and readiness. Take care, though. You'll be alone and these elementals will not go down without a fight. I hope to see you again one day.")
- Dialog.AddVoiceover("voiceover/english/magister_niksel/qey_south/magister_niksel031.mp3", 980785219, 3713600865)
- PlayFlavor(NPC, "", "", "bye", 0, 0, Spawn)
- Dialog.AddOption("Thank you Magister Niksel.")
- Dialog.Start()
- end
- function GoodbyeEnch(NPC,Spawn)
- FaceTarget(NPC, Spawn)
- Dialog.New(NPC, Spawn)
- Dialog.AddDialog("Once you've quelled the crowd you'll have more than proven yourself to be a capable enchanter. You won't need to return to me, but I hope to see you again. Take care, and good luck!")
- PlayFlavor(NPC, "", "", "bye", 0, 0, Spawn)
- Dialog.AddOption("Thank you Magister Niksel.")
- Dialog.Start()
- end
|