public async Task<HookResult> KristellAfterIntro(NpcScript npc, params object[] args) { if (npc.HasKeyword("g1_25") && npc.HasItem(BookOfRevenge2)) { npc.RemoveItem(BookOfRevenge2); npc.SendOwl(this.Id, OwlDelay1); npc.RemoveKeyword("g1_memo_of_parcelman"); npc.RemoveKeyword("g1_25"); npc.GiveKeyword("g1_26"); npc.Msg(L("So there really was another volume.<br/>I'm impressed. I didn't think you'd be able to find it.")); npc.Msg(L("I'll translate this book, as promised.<br/>I'll let you know as soon as I'm finished.")); return HookResult.Break; } else if (npc.QuestActive(this.Id, "get_book")) { npc.FinishQuest(this.Id, "get_book"); npc.GiveItem(BookOfRevenge2Translated); npc.Notice(L("You have received the Book of Revenge, Vol. 2 (Translated) from Kristell.")); npc.Msg(L("You must be here for your translated copy of the book.<br/>Here, I think you should read it yourself.<br/>It's better than having me summarize it for you.")); npc.Msg(L("That said, I can't believe what's written in this book...")); return HookResult.Break; } return HookResult.Continue; }
public async Task<HookResult> TalkNpc(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk_dilys1")) { npc.FinishQuest(this.Id, "talk_dilys1"); npc.Msg("There's been talk recently about how healthy berries are.<br/>Their qualities have peaked my interest, even about the weight!"); npc.Msg("Can you bring me one berry? I'd be very grateful."); return HookResult.Break; } else if (npc.QuestActive(this.Id, "talk_dilys2") && npc.HasItem(50007)) { npc.FinishQuest(this.Id, "talk_dilys2"); npc.Msg("Oh thank you so much! I can't wait to try it!<br/>Here, as an exchange, take these potions I've been working on.<button title='Continue' keyword='@continue'/>"); await npc.Select(); npc.RemoveItem(50007); // Berry npc.CompleteQuest(this.Id); return HookResult.Break; } return HookResult.Continue; }
public async Task<HookResult> TalkNpc(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk_deian1")) { npc.FinishQuest(this.Id, "talk_deian1"); npc.Msg("Oh thank you for coming, I was dying from boredom..."); npc.Msg("Did you bring a gathering knife? I don't seem to<br/>have any extra around here. If you didn't you'll need<br/>to go see Ferghus about that!"); npc.Msg("In any case, I could really use your help again shearing all my sheep.<br/>Just hold the knife gently in your one hand and grab a tuft of wool with<br/>the other. Easy right? Hehe, well why do you think I don't want to do it?<br/>Can you gather five bundles of wool for me?"); return HookResult.Break; } else if (npc.QuestActive(this.Id, "talk_deian2") && npc.HasItem(60009, 5)) { npc.FinishQuest(this.Id, "talk_deian2"); npc.Msg("Thank you, thank you! You look like a natural with that knife, I must say.<br/>These bundles of wool will help me out the rest of the day.<br/>Come by again if you ever want to get more wool!"); npc.RemoveItem(60009, 5); // Wool npc.CompleteQuest(this.Id); return HookResult.Break; } return HookResult.Continue; }
public async Task <HookResult> KristellBeforeKeywords(NpcScript npc, params object[] args) { var keyword = args[0] as string; if (keyword == "g1_memo_of_lost_thing") { if (npc.HasKeyword("g1_20")) { npc.RemoveKeyword("g1_20"); npc.GiveKeyword("g1_21"); npc.GiveWarpScroll(63009, "Math_Dungeon"); npc.Msg(L("You're back. I knew you would be back.<br/>Here's the item you're looking for.")); npc.Msg(L("I only remembered it later on too.<br/>I figured the person who wrote that can<br/>find the lost item at the Town Office."), npc.Image("g1_ch18_torque01")); npc.Msg(L("Broken Torque.<br/>It looks like a memorial item. Try using it in Math Dungeon.<br/>I gave you the Red Wing of the Goddess too, just in case you need it."), npc.Image("g1_ch18_torque01")); } else if (npc.HasKeyword("g1_21")) { npc.Msg(L("Try using the Broken Torque in Math Dungeon.")); } if (!npc.HasItem(Torque)) { npc.GiveItem(Torque); } return(HookResult.Break); } return(HookResult.Continue); }
public async Task <HookResult> TalkNpc(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk_dilys1")) { npc.FinishQuest(this.Id, "talk_dilys1"); npc.Msg("There's been talk recently about how healthy berries are.<br/>Their qualities have peaked my interest, even about the weight!"); npc.Msg("Can you bring me one berry? I'd be very grateful."); return(HookResult.Break); } else if (npc.QuestActive(this.Id, "talk_dilys2") && npc.HasItem(50007)) { npc.FinishQuest(this.Id, "talk_dilys2"); npc.Msg("Oh thank you so much! I can't wait to try it!<br/>Here, as an exchange, take these potions I've been working on.<button title='Continue' keyword='@continue'/>"); await npc.Select(); npc.RemoveItem(50007); // Berry npc.CompleteQuest(this.Id); return(HookResult.Break); } return(HookResult.Continue); }
public async Task <HookResult> KristellAfterIntro(NpcScript npc, params object[] args) { if (npc.HasKeyword("g1_25") && npc.HasItem(BookOfRevenge2)) { npc.RemoveItem(BookOfRevenge2); npc.SendOwl(this.Id, OwlDelay1); npc.RemoveKeyword("g1_memo_of_parcelman"); npc.RemoveKeyword("g1_25"); npc.GiveKeyword("g1_26"); npc.Msg(L("So there really was another volume.<br/>I'm impressed. I didn't think you'd be able to find it.")); npc.Msg(L("I'll translate this book, as promised.<br/>I'll let you know as soon as I'm finished.")); return(HookResult.Break); } else if (npc.QuestActive(this.Id, "get_book")) { npc.FinishQuest(this.Id, "get_book"); npc.GiveItem(BookOfRevenge2Translated); npc.Notice(L("You have received the Book of Revenge, Vol. 2 (Translated) from Kristell.")); npc.Msg(L("You must be here for your translated copy of the book.<br/>Here, I think you should read it yourself.<br/>It's better than having me summarize it for you.")); npc.Msg(L("That said, I can't believe what's written in this book...")); return(HookResult.Break); } return(HookResult.Continue); }
public async Task <HookResult> TalkNpc(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk_deian1")) { npc.FinishQuest(this.Id, "talk_deian1"); npc.Msg("Oh thank you for coming, I was dying from boredom..."); npc.Msg("Did you bring a gathering knife? I don't seem to<br/>have any extra around here. If you didn't you'll need<br/>to go see Ferghus about that!"); npc.Msg("In any case, I could really use your help again shearing all my sheep.<br/>Just hold the knife gently in your one hand and grab a tuft of wool with<br/>the other. Easy right? Hehe, well why do you think I don't want to do it?<br/>Can you gather five bundles of wool for me?"); return(HookResult.Break); } else if (npc.QuestActive(this.Id, "talk_deian2") && npc.HasItem(60009, 5)) { npc.FinishQuest(this.Id, "talk_deian2"); npc.Msg("Thank you, thank you! You look like a natural with that knife, I must say.<br/>These bundles of wool will help me out the rest of the day.<br/>Come by again if you ever want to get more wool!"); npc.RemoveItem(60009, 5); // Wool npc.CompleteQuest(this.Id); return(HookResult.Break); } return(HookResult.Continue); }
public async Task <HookResult> TalkMalcolm(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk_malcolm1")) { npc.FinishQuest(this.Id, "talk_malcolm1"); npc.Msg("So, you received the quest I sent through the Owl.<br/>Thanks for coming.<br/>I think I lost my ring in Alby Dungeon,<br/>but I can't leave, because I have no one to take care of the General Shop."); npc.Msg("I know it's a lot to ask, but can you go find the ring for me?<br/>The dungeon is very dangerous so I suggest talking to Trefor first about the Counterattack skill.<br/><br/>Take this pass to enter the dungeon, and please find my ring."); npc.GiveItem(63181); // Malcolm's Pass npc.GiveKeyword("skill_counter_attack"); return(HookResult.End); } else if (npc.QuestActive(this.Id, "kill_spider") && !npc.HasItem(63181)) { npc.Msg("Have you lost the pass?<br/>Take this one to enter the dungeon, and please find my ring."); npc.GiveItem(63181); // Malcolm's Pass return(HookResult.Break); } else if (npc.QuestActive(this.Id, "talk_malcolm2")) { npc.FinishQuest(this.Id, "talk_malcolm2"); npc.GiveKeyword("Clear_Tutorial_Malcolm_Ring"); npc.RemoveItem(75058); // Malcolm's Ring npc.Msg("You found my Ring!<br/>You have my thanks."); return(HookResult.Break); } return(HookResult.Continue); }
public async Task <HookResult> TalkTrefor(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk_trefor")) { npc.FinishQuest(this.Id, "talk_trefor"); npc.Player.Skills.Give(SkillId.Smash, SkillRank.Novice); npc.Msg("Welcome, I am Trefor, the guard.<br/>Someone from the town went into Alby Dungeon a while ago, but hasn't returned yet.<br/>I wish I could go there myself, but I can't leave my post. I'd really appreciate it if you can go and look for in Alby Dungeon."); npc.Msg("Since the dungeon is a dangerous place to be in, I'll teach you a skill that will help you in an emergency situation.<br/>It's called the Smash skill. If you use it, you can knock down a monster with a single blow!<br/>It is also highly effective when you sneak up on a target and deliver the blow without warning."); npc.Msg("Against monsters that are using the Defense skill,<br/>Smash will be the only way to penetrate that skill and deliver a killer blow."); npc.Msg("However... looking at the way you're holding your sword, I'm not sure if you are up to the task.<br/>Let me test your skills first. Do you see those brown foxes wandering in front of me?<br/>They're quite a nuisance, praying on those roosters in town.<br/>I want you to go and hunt 5 Young Brown Foxes right now."); npc.Msg("Foxes use the Defense Skill a lot, and as I told you before, regular attacks do not work against defending targets.<br/>That's then the Smash skill comes in handy.<br/><br/>Watch how I do it, and try picking up the important parts so you can use it too.<br/>You don't need to overstrain yourself by going for the Brown Foxes. Young Brown Foxes will do just fine.", npc.Movie("skillbar_guide_us.wmv", 500, 300), npc.Button("Continue")); await npc.Select(); npc.Close2(); Cutscene.Play("tuto_smash", npc.Player); return(HookResult.End); } else if (npc.QuestActive(this.Id, "talk_trefor2")) { npc.FinishQuest(this.Id, "talk_trefor2"); npc.Msg("Good, I see that you're getting the hang of it.<br/>Well, I was able to do that when I was 8, but whatever...<br/>It is now time for you to go and search for the missing Villager."); npc.Msg("Follow the road up and turn right and you'll find the Alby Dungeon.<br/>You can enter the dungeon by dropping this item on the altar.<br/>If you either lose it or fail to rescue her, come back to me so I can give you another one. Please be careful.", npc.Image("dungeonpass", 128, 128)); npc.GiveItem(63180, 1); return(HookResult.Break); } else if (npc.QuestActive(this.Id, "clear_alby")) { npc.Msg("Follow the road up and turn right and you'll find the Alby Dungeon.<br/>You can enter the dungeon by dropping this item on the altar.<br/>If you either lose it or fail to rescue her, come back to me so I can give you another one. Please be careful.", npc.Image("dungeonpass", 128, 128)); if (!npc.HasItem(63180)) { npc.GiveItem(63180, 1); } return(HookResult.Break); } else if (npc.QuestActive(this.Id, "talk_trefor3")) { npc.FinishQuest(this.Id, "talk_trefor3"); npc.Msg("You did it! Good job.<br/>Good thing I asked for your help.<br/>For your great work, I will now teach you how to properly use the Smash skill.<br/>If you open your Skill window and press the 'LEARN' button, you will be able to use a more powerful Smash skill.<br/>I can always use some help here, so drop by often, okay?"); if (npc.Player.Skills.Is(SkillId.Smash, SkillRank.Novice)) { npc.Player.Skills.Train(SkillId.Smash, 1); } return(HookResult.Break); } return(HookResult.Continue); }
public async Task <HookResult> LassarBeforeKeyword(NpcScript npc, params object[] args) { var keyword = args[0] as string; if (keyword == "g1_black_rose") { if (npc.HasKeyword("g1_17_2")) { npc.RemoveKeyword("g1_17_2"); npc.GiveKeyword("g1_17_3"); npc.Msg(L("Hmm. Priest Meven's favor?<br/>Why would he need something like that? Hehehe.")); npc.Msg(L("Hmm, I don't know how this will sound<br/>but I need some Holy Water of Lymilark to grow this.<br/>Priest Meven used to supply me with it up until recently.")); npc.Msg(L("I guess he got caught by Priestess Endelyon.<br/>He hasn't given me any for the past few days.")); npc.Msg(L("If you have any Holy Water of Lymilark, could you give me a bottle?"), npc.Button(L("Here."), "@yes"), npc.Button(L("No"), "@no")); if (await npc.Select() != "@yes" || !npc.HasItem(HolyWater)) { npc.Msg(L("I need some Holy Water of Lymilark to grow this, please come back once you have some.")); return(HookResult.Break); } LassarFinish(npc); return(HookResult.Break); } else if (npc.HasKeyword("g1_17_3")) { npc.Msg(L("Did you get a bottle of Holy Water of Lymilark?"), npc.Button(L("Here."), "@yes"), npc.Button(L("No"), "@no")); if (await npc.Select() != "@yes" || !npc.HasItem(HolyWater)) { npc.Msg(L("I need some Holy Water of Lymilark to grow this, please come back once you have some.")); return(HookResult.Break); } LassarFinish(npc); return(HookResult.Break); } } return(HookResult.Continue); }
public async Task<HookResult> DuncanBeforeKeywords(NpcScript npc, params object[] args) { var keyword = args[0] as string; if (keyword == "g1_glasgavelen") { if (npc.HasKeyword("g1_26")) { npc.RemoveKeyword("g1_26"); npc.GiveKeyword("g1_27"); npc.Msg(L("What? What did you just say?")); npc.Msg(L("G-Glas Ghaibhleann?<br/>This can't be... Where did you hear that name?")); npc.Msg(L("Does the third book of Fomors cover that?<br/>I'd like to read it. If you have it on you, please let me see it."), npc.Button(L("Here it is."), "@yes"), npc.Button(L("No"), "@no")); } else if (npc.HasKeyword("g1_27")) { npc.Msg(L("I'd like to read the third book of Fomors. If you have it on you, please let me see it."), npc.Button(L("Here it is."), "@yes"), npc.Button(L("No"), "@no")); } if (await npc.Select() != "@yes" || !npc.HasItem(BookOfRevenge3Translated)) { npc.Msg(L("Please come back immediately once you have the book on you.")); return HookResult.Break; } npc.RemoveKeyword("g1_glasgavelen"); npc.GiveKeyword("g1_book_of_glasgavelen"); npc.RemoveItem(BookOfRevenge3Translated); npc.Notice(L("You have given the Book of Revenge, Vol. 3 (Translated) to Duncan.")); npc.Msg(Hide.Name, L("(Duncan receives the book and carefully starts reading.)")); npc.Msg(L("This can't be!<br/>Things are a lot more serious than I'd thought.<br/>This is a problem. What should we do?")); npc.Msg(L("Glas Ghaibhleann is a legendary giant<br/>that destroyed everything within it's sight with hatred and anger.<br/>It's impossible to describe the fear this monster generates.")); npc.Msg(L("Once, Glas Ghaibhleann was commanded by an evil god<br/>to rampage all across Erinn.<br/>There was simply nothing we could do about it."), npc.Image("g1_ch24_glasgavelen")); npc.Msg(L("That's when our ancestor race, the Partholons, was decimated<br/>and sought refuge in this small mountainous area.")); npc.Msg(L("I'm sorry. I'm a bit dazed and it's hard to talk.<br/>It'd be more helpful for you to read a book written by our ancestors<br/>who fought against this monster.<br/>Let's see.")); npc.Msg(L("...<p/>...!!<p/>It's not here!<p/>Ah, don't give up now.<br/>I just forgot that<br/>I'd lent it to someone.<br/>He lives in Bangor and...what was his name?")); npc.Msg(L("B-Bri... That's right!<br/>Bryce is the person who borrowed it from me.")); npc.Msg(L("Tell Bryce about me to get the book and read it.<br/>There is so much more there than I can ever tell you<br/>that is written in that book.")); return HookResult.Break; } else if (keyword == "g1_book_of_glasgavelen") { npc.Msg(L("Tell Bryce about me to get the book and read it.<br/>There is so much more there than I can ever tell you<br/>that is written in that book.")); return HookResult.Break; } return HookResult.Continue; }
public async Task <HookResult> DuncanBeforeKeywords(NpcScript npc, params object[] args) { var keyword = args[0] as string; if (keyword == "g1_glasgavelen") { if (npc.HasKeyword("g1_26")) { npc.RemoveKeyword("g1_26"); npc.GiveKeyword("g1_27"); npc.Msg(L("What? What did you just say?")); npc.Msg(L("G-Glas Ghaibhleann?<br/>This can't be... Where did you hear that name?")); npc.Msg(L("Does the third book of Fomors cover that?<br/>I'd like to read it. If you have it on you, please let me see it."), npc.Button(L("Here it is."), "@yes"), npc.Button(L("No"), "@no")); } else if (npc.HasKeyword("g1_27")) { npc.Msg(L("I'd like to read the third book of Fomors. If you have it on you, please let me see it."), npc.Button(L("Here it is."), "@yes"), npc.Button(L("No"), "@no")); } if (await npc.Select() != "@yes" || !npc.HasItem(BookOfRevenge3Translated)) { npc.Msg(L("Please come back immediately once you have the book on you.")); return(HookResult.Break); } npc.RemoveKeyword("g1_glasgavelen"); npc.GiveKeyword("g1_book_of_glasgavelen"); npc.RemoveItem(BookOfRevenge3Translated); npc.Notice(L("You have given the Book of Revenge, Vol. 3 (Translated) to Duncan.")); npc.Msg(Hide.Name, L("(Duncan receives the book and carefully starts reading.)")); npc.Msg(L("This can't be!<br/>Things are a lot more serious than I'd thought.<br/>This is a problem. What should we do?")); npc.Msg(L("Glas Ghaibhleann is a legendary giant<br/>that destroyed everything within it's sight with hatred and anger.<br/>It's impossible to describe the fear this monster generates.")); npc.Msg(L("Once, Glas Ghaibhleann was commanded by an evil god<br/>to rampage all across Erinn.<br/>There was simply nothing we could do about it."), npc.Image("g1_ch24_glasgavelen")); npc.Msg(L("That's when our ancestor race, the Partholons, was decimated<br/>and sought refuge in this small mountainous area.")); npc.Msg(L("I'm sorry. I'm a bit dazed and it's hard to talk.<br/>It'd be more helpful for you to read a book written by our ancestors<br/>who fought against this monster.<br/>Let's see.")); npc.Msg(L("...<p/>...!!<p/>It's not here!<p/>Ah, don't give up now.<br/>I just forgot that<br/>I'd lent it to someone.<br/>He lives in Bangor and...what was his name?")); npc.Msg(L("B-Bri... That's right!<br/>Bryce is the person who borrowed it from me.")); npc.Msg(L("Tell Bryce about me to get the book and read it.<br/>There is so much more there than I can ever tell you<br/>that is written in that book.")); return(HookResult.Break); } else if (keyword == "g1_book_of_glasgavelen") { npc.Msg(L("Tell Bryce about me to get the book and read it.<br/>There is so much more there than I can ever tell you<br/>that is written in that book.")); return(HookResult.Break); } return(HookResult.Continue); }
public async Task <HookResult> MevenBeforeKeywords(NpcScript npc, params object[] args) { var keyword = args[0] as string; if (keyword != "g1_medal_of_fomor") { return(HookResult.Continue); } if (npc.HasItem(FomorMedal)) { if (npc.HasKeyword("g1_11")) { npc.RemoveKeyword("g1_paradise"); npc.RemoveKeyword("g1_11"); npc.RemoveKeyword("g1_11_1"); npc.GiveKeyword("g1_11_2"); npc.Msg(L("Medal...? Could...I see it?")); npc.Msg(L("That's a Priest's Token."), npc.Image("g1_ch11_12_fomormedal01")); npc.Msg(L("...Hmm...<br/>You got this from a Fomor?<br/>I don't believe this...")); npc.Msg(L("Wait...The material and the weight<br/>are slightly different from ones distributed by the Pontiff's Court.")); npc.Msg(L("There's some writing on the back...but I can't read it.<br/>It looks just like Fomors writing..."), npc.Image("g1_ch11_12_fomormedal02")); npc.Msg(L("There's no way humans can read this...<br/>Maybe a Fomor could...")); } else if (npc.HasKeyword("g1_11_1")) { npc.RemoveKeyword("g1_11_1"); npc.RemoveKeyword("g1_11_2"); npc.GiveKeyword("g1_12"); npc.RemoveKeyword("g1_medal_of_fomor"); npc.GiveKeyword("g1_voucher_of_priest"); npc.Msg(L("Medal...? Could...I see it?")); npc.Msg(L("That's a Priest's Token."), npc.Image("g1_ch11_12_fomormedal01")); npc.Msg(L("...Hmm...<br/>You got this from a Fomor?<br/>I don't believe this...")); npc.Msg(L("Wait...The material and the weight<br/>are slightly different from ones distributed by the Pontiff's Court.")); npc.Msg(L("There's some writing on the back...but I can't read it.<br/>It looks just like Fomors writing..."), npc.Image("g1_ch11_12_fomormedal02")); npc.Msg(L("There's no way humans can read this...<br/>Maybe a Fomor could...")); } else { npc.Msg(L("There's no way humans can read this...<br/>Maybe a Fomor could...")); } } else { npc.Msg(L("Medal...? Could...I see it?")); } return(HookResult.Break); }
public async Task <HookResult> TarlachBeforeKeywords(NpcScript npc, params object[] args) { var keyword = args[0] as string; if (keyword == "g1_dulbrau1") { if (npc.HasItem(FomorMedal)) { if (npc.HasKeyword("g1_13")) { npc.RemoveKeyword("g1_13"); npc.GiveKeyword("g1_14"); npc.Msg(L("'Goddess, lend me the moonlight...'<br/>That's what Goro said it means?<br/>The line 'Dul Brau Dairam Shanon?'")); npc.Msg(L("I can't say for sure that's it's a wrong interpretation but...<br/>it's slightly different from what I remember.")); } npc.Msg(L("Could I take a look at this medal?"), npc.Button(L("Yes"), "@yes"), npc.Button(L("No"), "@no")); if (await npc.Select() != "@yes") { npc.Msg(L("I won't be able to teach you the meaning of this line without seeing the medal.")); return(HookResult.Break); } npc.RemoveItem(FomorMedal); npc.RemoveKeyword("g1_dulbrau1"); npc.GiveKeyword("g1_dulbrau2"); npc.Msg(L("Thank you, let's take a look.<br/>Hm... I see.")); npc.Msg(L("The reason I am human during the night,<br/>is because of Eweca's moonlight and its magic power...")); npc.Msg(L("'Dul Brau Dairam Shanon' means,<br/>'Oh, Goddess. Please bestow me with your powers.'")); npc.Msg(L("This story...<br/>is straight from a Fomor who was practicing magic,<br/>so I am sure of it.<br/>...")); npc.Msg(L("Anyway, now you should know what this means.<br/>Fomors are coming to Erinn with the help of the Goddess.<br/>Yes, with the very power of the Goddess.")); npc.Msg(L("Morrighan is assisting Fomors with their infiltration.<br/>Which is an unforgivable act.<br/>If you don't believe me, why don't you go ask Goro again?")); } else { npc.Msg(L("'Goddess, lend me the moonlight...'<br/>That's what Goro said it means?<br/>The line 'Dul Brau Dairam Shanon?'")); npc.Msg(L("I can't say for sure that's it's a wrong interpretation but...<br/>it's slightly different from what I remember.")); } return(HookResult.Break); } else if (keyword == "g1_dulbrau2") { npc.Msg(L("If you don't believe me, why don't you go ask Goro again?")); return(HookResult.Break); } return(HookResult.Continue); }
public async Task <HookResult> AfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk") && npc.HasItem(64002, 5)) { npc.FinishQuest(this.Id, "talk"); npc.RemoveItem(64002, 5); // Iron Ore npc.Msg("(Missing dialog: Mine Lumps of Iron Ore)"); return(HookResult.Break); } return(HookResult.Continue); }
public async Task<HookResult> AfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk") && npc.HasItem(64002, 5)) { npc.FinishQuest(this.Id, "talk"); npc.RemoveItem(64002, 5); // Iron Ore npc.Msg("(Missing dialog: Mine Lumps of Iron Ore)"); return HookResult.Break; } return HookResult.Continue; }
public async Task<HookResult> AfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk") && npc.HasItem(64002, 10)) { npc.FinishQuest(this.Id, "talk"); npc.RemoveItem(64002, 10); // Iron Ore npc.Msg(L("(I give the ore to Elen)<p/>Thank you~, was it difficult to get this?<p/>Because of all the Fomors recently, nobody's going into the dungeon.<br/>Comgan's been asking people to dig here...<br/>It'll be very worrying if this situation continues.<p/>I'd appreciate someone digging on a regular basis...<br/>Ah! Don't mind my musing!")); return HookResult.Break; } return HookResult.Continue; }
public async Task <HookResult> AfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk") && npc.HasItem(64002, 10)) { npc.FinishQuest(this.Id, "talk"); npc.RemoveItem(64002, 10); // Iron Ore npc.Msg(L("(I give the ore to Elen)<p/>Thank you~, was it difficult to get this?<p/>Because of all the Fomors recently, nobody's going into the dungeon.<br/>Comgan's been asking people to dig here...<br/>It'll be very worrying if this situation continues.<p/>I'd appreciate someone digging on a regular basis...<br/>Ah! Don't mind my musing!")); return(HookResult.Break); } return(HookResult.Continue); }
public async Task <HookResult> AfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk") && npc.HasItem(50010, 5)) { npc.FinishQuest(this.Id, "talk"); npc.RemoveItem(50010, 5); // Potatoes npc.Msg("(Missing dialog: Harvest Potato)"); return(HookResult.Break); } return(HookResult.Continue); }
public async Task<HookResult> AfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk") && npc.HasItem(50009, 5)) { npc.FinishQuest(this.Id, "talk"); npc.RemoveItem(50009, 5); // Eggs npc.Msg("(Missing dialog: Gather Eggs)"); return HookResult.Break; } return HookResult.Continue; }
public async Task<HookResult> AfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk") && npc.HasItem(50009, 5)) { npc.FinishQuest(this.Id, "talk"); npc.RemoveItem(50009, 5); // Eggs npc.Msg(L("Oh, thank you. That was fast.<br/>If you get hungry later on, feel free to drop by.<br/>I've got plenty of delicious food in store for you!")); return HookResult.Break; } return HookResult.Continue; }
public async Task<HookResult> GoroAfterIntro(NpcScript npc, params object[] args) { if (!npc.QuestActive(this.Id) || !npc.HasItem(GorosRing)) return HookResult.Continue; npc.CompleteQuest(this.Id); npc.RemoveItem(GorosRing); npc.Msg(Hide.Name, L("(You give Goro his ring.)")); npc.Msg(L("Thank you, I'll now read it to you...")); npc.Msg(L("'Dul Brau Dairam Shanon' means 'Goddess, lend me the moonlight.'")); return HookResult.Break; }
public async Task <HookResult> AfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id) && npc.HasItem(60008, 5)) { npc.RemoveItem(60008, 5); // Cobweb npc.CompleteQuest(this.Id); npc.Msg("(Missing dialog: Appreciation for getting the cobweb)"); return(HookResult.Break); } return(HookResult.Continue); }
public async Task<HookResult> AfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id) && npc.HasItem(60008, 5)) { npc.RemoveItem(60008, 5); // Cobweb npc.CompleteQuest(this.Id); npc.Msg("(Missing dialog: Appreciation for getting the cobweb)"); return HookResult.Break; } return HookResult.Continue; }
public async Task <HookResult> AfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk") && npc.HasItem(50009, 5)) { npc.FinishQuest(this.Id, "talk"); npc.RemoveItem(50009, 5); // Eggs npc.Msg(L("Oh, thank you. That was fast.<br/>If you get hungry later on, feel free to drop by.<br/>I've got plenty of delicious food in store for you!")); return(HookResult.Break); } return(HookResult.Continue); }
public async Task <HookResult> StewartBeforeKeywords(NpcScript npc, params object[] args) { var keyword = args[0] as string; if (keyword == null || keyword != "g1_tarlach2") { return(HookResult.Continue); } if (npc.HasKeyword("g1_02")) { npc.RemoveKeyword("g1_02"); npc.GiveKeyword("g1_03"); npc.GiveItem(TarlachsLocket); npc.GiveWarpScroll(63009, "Alby_Dungeon"); npc.Msg(L("The three missing Warriors? The ones who are said to have gone to Tir Na Nog?")); npc.Msg(L("I see...<br/>There was a time when scholars debated back and forth regarding the validity of that legend.")); npc.Msg(L("From what I remember, there were stories of Tir Na Nog circulating via word of mouth<br/>but there weren't any written records of it.<br/>In the end, it was concluded that it was only a rumor.")); npc.Msg(L("So it's just a legend...")); npc.Msg(L("...What do I think...?<br/>I believe in the legend of three missing Warriors. Haha...<br/>I'm no fool though...")); npc.Msg(L("I'm not sure if what I just gave you will be of any help.<br/>It's a locket. You know, an accessory that you put pictures in."), npc.Image("G1_Ch04_locket01")); npc.Msg(L("...Don't be surprised...<br/>This is actually a memento that belonged to<br/>Tarlach, the mighty Wizard, one of the<br/>three missing Warriors."), npc.Image("G1_Ch04_locket02")); npc.Msg(L("Yes, the picture of the boy in the locket is Tarlach.<br/>This was probably from when he was young.<br/>Judging from how old she is, the pretty girl next to him is probably his sister."), npc.Image("G1_Ch04_locket02")); npc.Msg(L("That's not all, though...<br/>This locket...it's a type of a Memorial item that allows you<br/>to experience the life of the person who used to own it.")); npc.Msg(L("Tarlach spent his entire life trying to rescue the goddess<br/>who holds the secrets of Tir Na Nog.<br/>His desires and memories remain in this locket.")); npc.Msg(L("Try placing this on the altar to the goddess inside Alby Dungeon.")); npc.Msg(L("Drop the locket on the Alby Dungeon altar.<br/>And get two more friends to go with you.")); return(HookResult.Break); } else if (npc.HasKeyword("g1_03")) { // Give locket again if lost if (!npc.HasItem(TarlachsLocket)) { npc.GiveItem(TarlachsLocket); } npc.Msg(L("Drop the locket on the Alby Dungeon altar.<br/>And get two more friends to go with you.")); return(HookResult.Break); } else { return(HookResult.Continue); } }
public async Task <HookResult> TalkConor(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk_conor") && npc.HasItem(50707)) { npc.FinishQuest(this.Id, "talk_conor"); npc.RemoveItem(50707); // Cacao Chocolate Cake npc.Msg(Hide.Name, "You present the cake to Conor,<br/>You explain that its from Abbey."); npc.Msg("Abbey?!<br/>Really? I never knew she felt that way about me..."); npc.Msg("I'm sorry... I'm really happy.<br/>Thank you for the cake."); return(HookResult.Break); } return(HookResult.Continue); }
public async Task <HookResult> TalkConor(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk_conor") && npc.HasItem(50707)) { npc.FinishQuest(this.Id, "talk_conor"); npc.RemoveItem(50707); // Cacao Chocolate Cake npc.Msg(Hide.Name, "You present the cake to Conor,<br/>You explain that its from Abbey."); npc.Msg("Another cake?<br/>Perhaps I should return the favor one day..."); npc.Msg("Anyways, thank you for the cake."); return(HookResult.Break); } return(HookResult.Continue); }
public async Task <HookResult> TalkAbbey(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk_abbey") && npc.HasItem(50707)) { npc.FinishQuest(this.Id, "talk_abbey"); npc.RemoveItem(50707); // Cacao Chocolate Cake npc.Msg(Hide.Name, "You present the cake to Abbey,<br/>You explain that its from Conor."); npc.Msg("Another cake?<br/>That's sweet of him...<br/>I feel like I should do something for him."); npc.Msg("Anyways, thank you for the cake."); return(HookResult.Break); } return(HookResult.Continue); }
public async Task <HookResult> TalkAbbey(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk_abbey") && npc.HasItem(50707)) { npc.FinishQuest(this.Id, "talk_abbey"); npc.RemoveItem(50707); // Cacao Chocolate Cake npc.Msg(Hide.Name, "You present the cake to Abbey,<br/>You explain that its from Conor."); npc.Msg("Conor did...?<br/>Wow, I didn't realize he felt that way about me..."); npc.Msg("I'm really happy to know that.<br/>Thank you for the cake."); return(HookResult.Break); } return(HookResult.Continue); }
public async Task <HookResult> AfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id) && npc.HasItem(60008, 5)) { npc.RemoveItem(60008, 5); // Cobweb npc.CompleteQuest(this.Id); npc.Msg(L("You brought the cobwebs! Thank you.")); npc.Msg(L("Cobwebs are used to make Fine Yarn.<br/>The cobwebs dropped by the spiders in TirChonaill are sturdier than usual, so they're great for making strings.")); npc.Msg(L("If you're interested in making thread,<br/>come and talk to me with the keyword 'Skill' after gathering Cobwebs.<br/>I'll tell you about the Weaving skill.")); return(HookResult.Break); } return(HookResult.Continue); }
public async Task<HookResult> AfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id) && npc.HasItem(60008, 5)) { npc.RemoveItem(60008, 5); // Cobweb npc.CompleteQuest(this.Id); npc.Msg(L("You brought the cobwebs! Thank you.")); npc.Msg(L("Cobwebs are used to make Fine Yarn.<br/>The cobwebs dropped by the spiders in TirChonaill are sturdier than usual, so they're great for making strings.")); npc.Msg(L("If you're interested in making thread,<br/>come and talk to me with the keyword 'Skill' after gathering Cobwebs.<br/>I'll tell you about the Weaving skill.")); return HookResult.Break; } return HookResult.Continue; }
public async Task<HookResult> TarlachBeforeKeywords(NpcScript npc, params object[] args) { var keyword = args[0] as string; if (keyword == "g1_bone_of_glasgavelen" && npc.HasKeyword("g1_29")) { if (!npc.HasItem(Glasses)) npc.GiveItem(Glasses); npc.Msg(L("Go to Rabbie Dungeon and put the glasses on the altar.<br/>Then... you will know about...<br/>my anger toward the Goddess and evil spirits...")); return HookResult.Break; } return HookResult.Continue; }
public async Task<HookResult> EavanBeforeKeywords(NpcScript npc, params object[] args) { var keyword = args[0] as string; if (keyword == "g1_memorial4" && npc.HasKeyword("g1_34_1")) { if (!npc.HasItem(Torque)) npc.GiveItem(Torque); npc.Msg(L("(Missing dialog: Eavan giving you back the lost Torque.)")); return HookResult.Break; } return HookResult.Continue; }
public async Task <HookResult> GoroAfterIntro(NpcScript npc, params object[] args) { if (!npc.QuestActive(this.Id) || !npc.HasItem(GorosRing)) { return(HookResult.Continue); } npc.CompleteQuest(this.Id); npc.RemoveItem(GorosRing); npc.Msg(Hide.Name, L("(You give Goro his ring.)")); npc.Msg(L("Thank you, I'll now read it to you...")); npc.Msg(L("'Dul Brau Dairam Shanon' means 'Goddess, lend me the moonlight.'")); return(HookResult.Break); }
public async Task<HookResult> GoroBeforeKeywords(NpcScript npc, params object[] args) { var keyword = args[0] as string; if (keyword == "g1_voucher_of_priest") { if (npc.QuestActive(this.Id)) { npc.Msg(L("If you get Goro's Ring back, I'll read it to you.")); } else if (npc.HasItem(FomorMedal)) { npc.RemoveKeyword("g1_voucher_of_priest"); npc.RemoveKeyword("g1_12"); npc.GiveKeyword("g1_13"); npc.StartQuest(this.Id); npc.Msg(L("Priest's Token...? This...?<br/>This...is an amulet that belongs to a high ranking Fomor...let's see...<br/>Just what I'd thought...'Dul Brau Dairam Shanon.' It surely belongs to a Fomor. Heh."), npc.Image("g1_ch11_12_fomormedal02")); npc.Msg(L("It's been a while since I came across such Fomor writings. Heheh.")); npc.Msg(L("I learned the human language as a child<br/>so I'm a little rusty...<br/>but since Goro is smart, this is no problem.")); npc.Msg(L("As a sign of respect for your courage and<br/>since I'm such a nice goblin,<br/>I'll read it to you...")); npc.Msg(L("If you help Goro that is. Heheh.")); npc.Msg(L("I've lost a ring in Ciar Dungeon, if you get Goro's Ring back, I'll read it to you.")); } else { npc.Msg(L("Priest's Token...?")); } return HookResult.Break; } else if (keyword == "g1_dulbrau2") { npc.Msg(L("...Oh... that's what it means?<br/>Wow...I'm amazed.")); npc.Msg(L("Ha...! You truly live up to the hype as someone who's obtained the Fomor Medal...<br/>To be honest, because I was raised in the Human world since I was young,<br/>my Fomor language skills aren't that good...hehe...<br/>I hope you understand...hehe...")); npc.Msg(L("...In order to make up for this embarrassment,<br/>I'll tell you who can decipher the Fomor writing.")); npc.Msg(L("...<p/>...<p/>I'm sorry, but I can't seem to remember the name.")); npc.Msg(L("...Wait, please don't get angry now!")); npc.Msg(L("Um... right!<br/>Goro had heard this story once...The Black Roses of the dungeons,<br/>known as Succubus to Humans,<br/>said there was someone who had betrayed them...and is now living in Dunbarton...")); npc.Msg(L("They said they were waiting to get revenge on that person if they ever ran into her...<br/>Well, I mean it's just a rumor...but still... Hehe...")); npc.Msg(L("The Succubus is a Fomor also...<br/>so they might know more about the Fomor language...or that world...no?<br/>But it won't be easy to find them...ha...haha...")); return HookResult.Break; } return HookResult.Continue; }
public async Task <HookResult> GoroBeforeKeywords(NpcScript npc, params object[] args) { var keyword = args[0] as string; if (keyword == "g1_voucher_of_priest") { if (npc.QuestActive(this.Id)) { npc.Msg(L("If you get Goro's Ring back, I'll read it to you.")); } else if (npc.HasItem(FomorMedal)) { npc.RemoveKeyword("g1_voucher_of_priest"); npc.RemoveKeyword("g1_12"); npc.GiveKeyword("g1_13"); npc.StartQuest(this.Id); npc.Msg(L("Priest's Token...? This...?<br/>This...is an amulet that belongs to a high ranking Fomor...let's see...<br/>Just what I'd thought...'Dul Brau Dairam Shanon.' It surely belongs to a Fomor. Heh."), npc.Image("g1_ch11_12_fomormedal02")); npc.Msg(L("It's been a while since I came across such Fomor writings. Heheh.")); npc.Msg(L("I learned the human language as a child<br/>so I'm a little rusty...<br/>but since Goro is smart, this is no problem.")); npc.Msg(L("As a sign of respect for your courage and<br/>since I'm such a nice goblin,<br/>I'll read it to you...")); npc.Msg(L("If you help Goro that is. Heheh.")); npc.Msg(L("I've lost a ring in Ciar Dungeon, if you get Goro's Ring back, I'll read it to you.")); } else { npc.Msg(L("Priest's Token...?")); } return(HookResult.Break); } else if (keyword == "g1_dulbrau2") { npc.Msg(L("...Oh... that's what it means?<br/>Wow...I'm amazed.")); npc.Msg(L("Ha...! You truly live up to the hype as someone who's obtained the Fomor Medal...<br/>To be honest, because I was raised in the Human world since I was young,<br/>my Fomor language skills aren't that good...hehe...<br/>I hope you understand...hehe...")); npc.Msg(L("...In order to make up for this embarrassment,<br/>I'll tell you who can decipher the Fomor writing.")); npc.Msg(L("...<p/>...<p/>I'm sorry, but I can't seem to remember the name.")); npc.Msg(L("...Wait, please don't get angry now!")); npc.Msg(L("Um... right!<br/>Goro had heard this story once...The Black Roses of the dungeons,<br/>known as Succubus to Humans,<br/>said there was someone who had betrayed them...and is now living in Dunbarton...")); npc.Msg(L("They said they were waiting to get revenge on that person if they ever ran into her...<br/>Well, I mean it's just a rumor...but still... Hehe...")); npc.Msg(L("The Succubus is a Fomor also...<br/>so they might know more about the Fomor language...or that world...no?<br/>But it won't be easy to find them...ha...haha...")); return(HookResult.Break); } return(HookResult.Continue); }
public async Task <HookResult> AfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id)) { if (npc.HasItem(52003, 10)) // Large Nail { npc.FinishQuest(this.Id, "obj1"); npc.RemoveItem(52003, 10); npc.Notice(L("You have given Large Nail to Ranald.")); npc.Msg(L("Good job.<br/>Keep up the good work.")); return(HookResult.Break); } } return(HookResult.Continue); }
public async Task <HookResult> TalkFerghus(NpcScript npc, params object[] args) { if (npc.Player.QuestActive(this.Id, "talk_ferghus")) { npc.Player.FinishQuestObjective(this.Id, "talk_ferghus"); npc.Msg("<npcportrait name='ferghus_fake'/>They're gonna start calling me Ferghus the Trend King. These<br/>wings are going to change the world, But that's just a shake of<br/>the hammer for old Ferghus."); npc.Msg("<npcportrait name='ferghus_fake'/>I deserve a long night of drinking for this one."); npc.Msg("<npcportrait name='ferghus_fake'/>I call these Ferghus's Amazing Wings. I like names to be simple,<br/>you know? These things are going to be flying off the shelves.<br/>That is, if I can get the materials I need to get them made..."); npc.Msg("<npcportrait name='ferghus_fake'/>Do you think you could help an old blacksmith out? I've got my<br/>hands full here."); npc.Msg(Hide.Both, "(Ask him what he needs.)"); npc.Msg("<npcportrait name='ferghus_fake'/>Paper! Can you believe it? I swear I'd bought about 100 reams<br/>of the stuff, but I woke up a couple of days ago in a haze and I<br/>have no idea what I did with it."); npc.Msg("<npcportrait name='ferghus_fake'/>Hopefully Malcolm still has some left over at the General Store..."); npc.Msg(Hide.Both, "(You try to figure out why he would need that much paper for<br/>wings, but he interrupts your train of thought."); npc.Msg("<npcportrait name='ferghus_fake'/>Oh, I see the burning passion in your eyes, You can see that we're<br/>on the cusp of something great here! Just go get me 50 sheets<br/>of paper, and I'll make you something worth talking about."); return(HookResult.End); } else if (npc.QuestActive(this.Id, "talk_ferghus2") && npc.HasItem(64018, 50)) { npc.FinishQuest(this.Id, "talk_ferghus2"); npc.RemoveItem(64018, 50); // Paper npc.Msg("<npcportrait name='ferghus_fake'/>It's happening! My masterpiece is coming right up!"); npc.Msg(Hide.Both, "..."); npc.Msg("<npcportrait name='ferghus_fake'/>All done! Put those on!"); npc.Player.GiveItem(19208); // Ferghus's Amazing Wings (Expired after 12 hours in official) npc.Player.Notice("You received Ferghus's Amazing Wings."); return(HookResult.End); } else if (npc.QuestActive(this.Id, "talk_ferghus3") && npc.Player.HasEquipped("/action_butterfly_big_type/cloth/not_enchantable/not_dyeable/expiring/")) { npc.FinishQuest(this.Id, "talk_ferghus3"); npc.Msg(Hide.Both, "(The wings look like they'd fall apart in an instant and the<br/>harness is downright painful, Ferghus notices you shifting<br/>uncomfortably)."); npc.Msg("<npcportrait name='ferghus_fake'/>Don't you like them? It's just a prototype, you know? I know<br/>they aren't the sturdiest things in the world, but I think they<br/>have a certain charm."); npc.Msg("<npcportrait name='ferghus_fake'/>I guess I'll have to go back to the drawing board for now...<br/>Why don't you take a look around, see if there's anything you<br/>want to buy? Maybe I can do some repairs for you."); npc.Msg(Hide.Both, "(The wings seem to be simultaneously wrenching your neck out<br/>of place and compressing your spine. You'd better get out of here.)"); return(HookResult.End); } return(HookResult.Continue); }
public async Task<HookResult> KristellBeforeKeywords(NpcScript npc, params object[] args) { var keyword = args[0] as string; if (keyword != "g1_medal_of_fomor") return HookResult.Continue; npc.Msg(L("That's...a medal worn by Priests.<br/>If you look on the back, you can find a token with<br/>the date it was given and the individual's name...")); if (npc.HasItem(FomorMedal)) { npc.Msg(L("What? A Fomor had this? Impossible...")); npc.Msg(Hide.Name, L("(Kristell checked the back of the medal.)")); npc.Msg(L("...!"), npc.Image("g1_ch11_12_fomormedal02")); npc.Msg(L("Oh... it's nothing.<br/>I'm quite busy, I should get going...")); } return HookResult.Break; }
public async Task<HookResult> KristellAfterIntro(NpcScript npc, params object[] args) { if (!npc.QuestActive(this.Id) || !npc.HasItem(BookOfFomor)) return HookResult.Continue; npc.CompleteQuest(this.Id); npc.SendOwl(210004, OwlDelay); // [Book of Fomors] Translation Completed npc.RemoveItem(BookOfFomor); npc.Notice(L("You have given Book of Fomors to Kristell.")); npc.Msg(L("...Tarlach asked me...?<br/>To translate...this book for him...?")); npc.Msg(L("I see... This is definitely Tarlach's book...<br/>... ...Is he still living as a Druid...with his injured body and all...?<br/>Poor guy...")); npc.Msg(L("Okay...<br/>I will translate it...")); npc.Msg(L("I will contact you once the translation is completed.")); return HookResult.Break; }
public async Task <HookResult> EavanBeforeKeywords(NpcScript npc, params object[] args) { var keyword = args[0] as string; if (keyword == "g1_memorial4" && npc.HasKeyword("g1_34_1")) { if (!npc.HasItem(Torque)) { npc.GiveItem(Torque); } npc.Msg(L("(Missing dialog: Eavan giving you back the lost Torque.)")); return(HookResult.Break); } return(HookResult.Continue); }
public async Task <HookResult> TarlachBeforeKeywords(NpcScript npc, params object[] args) { var keyword = args[0] as string; if (keyword == "g1_bone_of_glasgavelen" && npc.HasKeyword("g1_29")) { if (!npc.HasItem(Glasses)) { npc.GiveItem(Glasses); } npc.Msg(L("Go to Rabbie Dungeon and put the glasses on the altar.<br/>Then... you will know about...<br/>my anger toward the Goddess and evil spirits...")); return(HookResult.Break); } return(HookResult.Continue); }
public async Task <HookResult> AeiraBeforeKeywords(NpcScript npc, params object[] args) { var keyword = args[0] as string; if (keyword == "g1_memo_of_parcelman") { if (npc.HasItem(WizardsNote)) { npc.GiveItem(WizardsNote); } npc.Msg(L("If you offer the note on the Altar of Ciar Dungeon, you'll be transported to where you can find the book.")); return(HookResult.Break); } return(HookResult.Continue); }
public async Task <HookResult> TalkNpc(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk_bebhinn") && npc.HasItem(52004)) { npc.FinishQuest(this.Id, "talk_bebhinn"); npc.Msg("Oh hello! Looks like you got my message."); npc.Msg("Is that a Small Green Gem for me? Thank you!<br/>Now I can finish my necklace!<br/>I found this old guide book while waiting for your<br/>arrival. It's probably better in your hands.<button title='Continue' keyword='@continue'/>"); await npc.Select(); npc.RemoveItem(52004); // Small Green Gem npc.CompleteQuest(this.Id); return(HookResult.Break); } return(HookResult.Continue); }
public async Task<HookResult> TalkNpc(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk_bebhinn") && npc.HasItem(52004)) { npc.FinishQuest(this.Id, "talk_bebhinn"); npc.Msg("Oh hello! Looks like you got my message."); npc.Msg("Is that a Small Green Gem for me? Thank you!<br/>Now I can finish my necklace!<br/>I found this old guide book while waiting for your<br/>arrival. It's probably better in your hands.<button title='Continue' keyword='@continue'/>"); await npc.Select(); npc.RemoveItem(52004); // Small Green Gem npc.CompleteQuest(this.Id); return HookResult.Break; } return HookResult.Continue; }
public async Task <HookResult> ComganBeforeKeywords(NpcScript npc, params object[] args) { var keyword = args[0] as string; if (keyword != "g1_medal_of_fomor") { return(HookResult.Continue); } if (npc.HasItem(FomorMedal)) { if (npc.HasKeyword("g1_11")) { npc.RemoveKeyword("g1_paradise"); npc.RemoveKeyword("g1_11"); npc.GiveKeyword("g1_11_1"); npc.Msg(L("Fomor... Medal? There's such a thing?<br/>Could I see it?")); npc.Msg(L("Strange... This is just a medal Priests use..."), npc.Image("g1_ch11_12_fomormedal01")); npc.Msg(L("Every Priest has one because they say it<br/>contains the principles that created this world...")); npc.Msg(L("I wonder if a Fomor found one that was lost by a Priest...<br/>Hmm...I have mine here with me...<br/>Did you speak to any of the other Priests?")); } else if (npc.HasKeyword("g1_11_2")) { npc.RemoveKeyword("g1_11_1"); npc.RemoveKeyword("g1_11_2"); npc.GiveKeyword("g1_12"); npc.RemoveKeyword("g1_medal_of_fomor"); npc.GiveKeyword("g1_voucher_of_priest"); npc.Msg(L("(Missing dialog: Talking to Comgan after talking to Meven.")); } else { npc.Msg(L("Did you speak to any of the other Priests?")); } } else { npc.Msg(L("Fomor... Medal? There's such a thing?<br/>Could I see it?")); } return(HookResult.Break); }
public async Task<HookResult> ComganBeforeKeywords(NpcScript npc, params object[] args) { var keyword = args[0] as string; if (keyword != "g1_medal_of_fomor") return HookResult.Continue; if (npc.HasItem(FomorMedal)) { if (npc.HasKeyword("g1_11")) { npc.RemoveKeyword("g1_paradise"); npc.RemoveKeyword("g1_11"); npc.GiveKeyword("g1_11_1"); npc.Msg(L("Fomor... Medal? There's such a thing?<br/>Could I see it?")); npc.Msg(L("Strange... This is just a medal Priests use..."), npc.Image("g1_ch11_12_fomormedal01")); npc.Msg(L("Every Priest has one because they say it<br/>contains the principles that created this world...")); npc.Msg(L("I wonder if a Fomor found one that was lost by a Priest...<br/>Hmm...I have mine here with me...<br/>Did you speak to any of the other Priests?")); } else if (npc.HasKeyword("g1_11_2")) { npc.RemoveKeyword("g1_11_1"); npc.RemoveKeyword("g1_11_2"); npc.GiveKeyword("g1_12"); npc.RemoveKeyword("g1_medal_of_fomor"); npc.GiveKeyword("g1_voucher_of_priest"); npc.Msg(L("(Missing dialog: Talking to Comgan after talking to Meven.")); } else { npc.Msg(L("Did you speak to any of the other Priests?")); } } else { npc.Msg(L("Fomor... Medal? There's such a thing?<br/>Could I see it?")); } return HookResult.Break; }
public async Task<HookResult> TarlachAfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "give_powder") && npc.HasItem(Powder)) { npc.CompleteQuest(this.Id); npc.RemoveKeyword("g1_28"); npc.GiveKeyword("g1_29"); npc.RemoveItem(Powder); npc.Msg(L("Oh, you found it.<br/>I will put this powder on my glasses right now.")); npc.Msg(L("This is a memory item that contains the preserved memory I had of that time."), npc.Image("g1_ch25_glasses")); npc.Msg(L("I will now cast a magic spell on the item with the magic powder of preservation.")); npc.Msg(L("...And this is the Red Wing of the Goddess<br/>which will take you to the Rabbie Dungeon...<br/>Go to Rabbie Dungeon and put these glasses on the altar.")); npc.Msg(L("Then... you will know about...<br/>my anger toward the Goddess and evil spirits...")); return HookResult.Break; } return HookResult.Continue; }
public async Task<HookResult> AfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk")) { npc.FinishQuest(this.Id, "talk"); npc.AcquireItem(40022); // Gathering Axe npc.Msg("(Missing dialog: Explanation on getting firewood"); return HookResult.Break; } else if (npc.QuestActive(this.Id, "deliver") && npc.HasItem(63002, 6)) { npc.FinishQuest(this.Id, "deliver"); npc.RemoveItem(63002, 6); npc.Msg("(Missing dialog: Appreciation for getting firewood"); return HookResult.Break; } return HookResult.Continue; }
public async Task<HookResult> LassarBeforeKeyword(NpcScript npc, params object[] args) { var keyword = args[0] as string; if (keyword == "g1_black_rose") { if (npc.HasKeyword("g1_17_2")) { npc.RemoveKeyword("g1_17_2"); npc.GiveKeyword("g1_17_3"); npc.Msg(L("Hmm. Priest Meven's favor?<br/>Why would he need something like that? Hehehe.")); npc.Msg(L("Hmm, I don't know how this will sound<br/>but I need some Holy Water of Lymilark to grow this.<br/>Priest Meven used to supply me with it up until recently.")); npc.Msg(L("I guess he got caught by Priestess Endelyon.<br/>He hasn't given me any for the past few days.")); npc.Msg(L("If you have any Holy Water of Lymilark, could you give me a bottle?"), npc.Button(L("Here."), "@yes"), npc.Button(L("No"), "@no")); if (await npc.Select() != "@yes" || !npc.HasItem(HolyWater)) { npc.Msg(L("I need some Holy Water of Lymilark to grow this, please come back once you have some.")); return HookResult.Break; } LassarFinish(npc); return HookResult.Break; } else if (npc.HasKeyword("g1_17_3")) { npc.Msg(L("Did you get a bottle of Holy Water of Lymilark?"), npc.Button(L("Here."), "@yes"), npc.Button(L("No"), "@no")); if (await npc.Select() != "@yes" || !npc.HasItem(HolyWater)) { npc.Msg(L("I need some Holy Water of Lymilark to grow this, please come back once you have some.")); return HookResult.Break; } LassarFinish(npc); return HookResult.Break; } } return HookResult.Continue; }
public async Task<HookResult> MevenBeforeKeywords(NpcScript npc, params object[] args) { var keyword = args[0] as string; if (keyword != "g1_medal_of_fomor") return HookResult.Continue; if (npc.HasItem(FomorMedal)) { if (npc.HasKeyword("g1_11")) { npc.RemoveKeyword("g1_paradise"); npc.RemoveKeyword("g1_11"); npc.RemoveKeyword("g1_11_1"); npc.GiveKeyword("g1_11_2"); npc.Msg(L("Medal...? Could...I see it?")); npc.Msg(L("That's a Priest's Token."), npc.Image("g1_ch11_12_fomormedal01")); npc.Msg(L("...Hmm...<br/>You got this from a Fomor?<br/>I don't believe this...")); npc.Msg(L("Wait...The material and the weight<br/>are slightly different from ones distributed by the Pontiff's Court.")); npc.Msg(L("There's some writing on the back...but I can't read it.<br/>It looks just like Fomors writing..."), npc.Image("g1_ch11_12_fomormedal02")); npc.Msg(L("There's no way humans can read this...<br/>Maybe a Fomor could...")); } else if (npc.HasKeyword("g1_11_1")) { npc.RemoveKeyword("g1_11_1"); npc.RemoveKeyword("g1_11_2"); npc.GiveKeyword("g1_12"); npc.RemoveKeyword("g1_medal_of_fomor"); npc.GiveKeyword("g1_voucher_of_priest"); npc.Msg(L("Medal...? Could...I see it?")); npc.Msg(L("That's a Priest's Token."), npc.Image("g1_ch11_12_fomormedal01")); npc.Msg(L("...Hmm...<br/>You got this from a Fomor?<br/>I don't believe this...")); npc.Msg(L("Wait...The material and the weight<br/>are slightly different from ones distributed by the Pontiff's Court.")); npc.Msg(L("There's some writing on the back...but I can't read it.<br/>It looks just like Fomors writing..."), npc.Image("g1_ch11_12_fomormedal02")); npc.Msg(L("There's no way humans can read this...<br/>Maybe a Fomor could...")); } else { npc.Msg(L("There's no way humans can read this...<br/>Maybe a Fomor could...")); } } else { npc.Msg(L("Medal...? Could...I see it?")); } return HookResult.Break; }
public async Task<HookResult> KristellBeforeKeywords(NpcScript npc, params object[] args) { var keyword = args[0] as string; if (keyword == "g1_dulbrau2") { if (npc.HasKeyword("g1_14")) { npc.RemoveKeyword("g1_14"); npc.GiveKeyword("g1_15"); npc.GiveItem(TarlachsGlassesPouch); npc.GiveWarpScroll(63009, "Rabbie_Dungeon"); npc.Msg(L("...How... how did you interpret...it...<br/>It means that the Goddess is sending Fomors here?<br/>Where did you hear that...?<br/>What...? The wizard...you heard from a Druid?")); npc.Msg(L("...Named Tarlach...?")); npc.Msg(L("Ahh, I see...<br/>I understand... So Tarlach is still alive after all.")); npc.Msg(Hide.Name, L("(Kristell closes her eyes and smiles.)")); npc.Msg(L("Dul Brau Dairam Shanon.<br/>Truth is, I was the<br/>one who taught Tarlach the meaning of those words.")); npc.Msg(L("Yes...I am Bondi Gordisse.<br/>I'm what you people call Fomor. A monster...")); npc.Msg(L("I don't look it, eh?<br/>I have become a human with the blessings of the gods...")); npc.Msg(L("Ah... But I've rambled on too much...<br/>I apologize.")); npc.Msg(L("The words on that medal...<br/>It's true that it means to seek out the power of Morrighan.")); npc.Msg(L("But...the the goddess isn't the one sending the Fomors.<br/>I can swear on my honor as a priestess.<br/>Tarlach misunderstood that part.<br/>The Goddess has always been looking after mankind, even as a statue.")); npc.Msg(L("That's only an amulet for Fomors<br/>There's no meaning behind those words anymore...")); npc.Msg(L("...<br/>Can you tell me where Tarlach is...?")); npc.Msg(L("...You don't seem to trust me either.<br/>Is this because I told you I was a Fomor?")); npc.Msg(L("I see...<br/>Well, then...")); npc.Msg(L("What I just gave you is the only item I've ever received from Tarlach...<br/>It's an item that holds his memory."), npc.Image("g1_ch14_glassespocket")); npc.Msg(L("If you go to Rabbi dungeon alone and offer this on the altar of the Goddess...<br/>You will be able to trust me.<br/>I'll give you a Red Wing of the Goddess<br/>so you can get to Rabbie Dungeon easily."), npc.Image("g1_ch14_glassespocket")); npc.Msg(Hide.None, L("(You receive Tarlach's Spectacle Pouch from Kristell.)")); } else if (npc.HasKeyword("g1_15")) { if (!npc.HasItem(TarlachsGlassesPouch)) npc.GiveItem(TarlachsGlassesPouch); npc.Msg(L("If you go to Rabbi dungeon alone and offer the pouch on the altar of the Goddess...<br/>You will be able to trust me.")); } return HookResult.Break; } else if (keyword == "g1_succubus") { npc.RemoveKeyword("g1_16"); npc.GiveKeyword("g1_17"); npc.RemoveKeyword("g1_succubus"); npc.GiveKeyword("g1_message_of_kristell"); npc.Msg(L("...<p/>Hello, I see you're back...<br/>Do you believe me now...?")); npc.Msg(L("I'm not trying to hurt Tarlach or anything.<br/>I only want to know how he's doing.")); npc.Msg(L("You still seem reluctant...<br/>Well then...I have a favor to ask.")); npc.Msg(L("Tell Tarlach how I am doing<br/>and let him know that I really want to meet him...<br/>That I have something I want to tell him...<br/>...that should be okay...right?")); npc.Msg(L("...If you understand how hard it is for a woman to<br/>reveal her true intentions and her past...")); npc.Msg(L("...Please do this favor for me...")); return HookResult.Break; } else if (keyword == "g1_message_of_kristell") { npc.Msg(L("Tell Tarlach how I am doing<br/>...Please do this favor for me...")); return HookResult.Break; } return HookResult.Continue; }
public async Task<HookResult> AfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id)) { if (npc.HasItem(52003, 10)) // Large Nail { npc.FinishQuest(this.Id, "obj1"); npc.RemoveItem(52003, 10); npc.Notice(L("You have given Large Nail to Ranald.")); npc.Msg(L("Good job.<br/>Keep up the good work.")); return HookResult.Break; } } return HookResult.Continue; }
public async Task<HookResult> TarlachBeforeKeywords(NpcScript npc, params object[] args) { var keyword = args[0] as string; if (keyword == "g1_dulbrau1") { if (npc.HasItem(FomorMedal)) { if (npc.HasKeyword("g1_13")) { npc.RemoveKeyword("g1_13"); npc.GiveKeyword("g1_14"); npc.Msg(L("'Goddess, lend me the moonlight...'<br/>That's what Goro said it means?<br/>The line 'Dul Brau Dairam Shanon?'")); npc.Msg(L("I can't say for sure that's it's a wrong interpretation but...<br/>it's slightly different from what I remember.")); } npc.Msg(L("Could I take a look at this medal?"), npc.Button(L("Yes"), "@yes"), npc.Button(L("No"), "@no")); if (await npc.Select() != "@yes") { npc.Msg(L("I won't be able to teach you the meaning of this line without seeing the medal.")); return HookResult.Break; } npc.RemoveItem(FomorMedal); npc.RemoveKeyword("g1_dulbrau1"); npc.GiveKeyword("g1_dulbrau2"); npc.Msg(L("Thank you, let's take a look.<br/>Hm... I see.")); npc.Msg(L("The reason I am human during the night,<br/>is because of Eweca's moonlight and its magic power...")); npc.Msg(L("'Dul Brau Dairam Shanon' means,<br/>'Oh, Goddess. Please bestow me with your powers.'")); npc.Msg(L("This story...<br/>is straight from a Fomor who was practicing magic,<br/>so I am sure of it.<br/>...")); npc.Msg(L("Anyway, now you should know what this means.<br/>Fomors are coming to Erinn with the help of the Goddess.<br/>Yes, with the very power of the Goddess.")); npc.Msg(L("Morrighan is assisting Fomors with their infiltration.<br/>Which is an unforgivable act.<br/>If you don't believe me, why don't you go ask Goro again?")); } else { npc.Msg(L("'Goddess, lend me the moonlight...'<br/>That's what Goro said it means?<br/>The line 'Dul Brau Dairam Shanon?'")); npc.Msg(L("I can't say for sure that's it's a wrong interpretation but...<br/>it's slightly different from what I remember.")); } return HookResult.Break; } else if (keyword == "g1_dulbrau2") { npc.Msg(L("If you don't believe me, why don't you go ask Goro again?")); return HookResult.Break; } return HookResult.Continue; }
public async Task<HookResult> TarlachBeforeKeywords(NpcScript npc, params object[] args) { var keyword = args[0] as string; if (keyword != "g1_paradise") return HookResult.Continue; if (npc.HasKeyword("g1_09")) { npc.RemoveKeyword("g1_09"); npc.GiveKeyword("g1_10"); npc.GiveItem(BrownFomorPass); npc.GiveWarpScroll(63009, "Barri_Dungeon"); npc.Msg(L("...Did you actually read the book?<br/>You still want to go...?<br/>Just as I'd thought...<br/>...")); npc.Msg(L("...Honestly, I was hoping that<br/>reading the book would be enough to satisfy your curiosity and that you would forget all about it...<br/>But, you can't help that you're an adventurer...")); npc.Msg(L("...<p/>...<br/>Tir Na Nog... is not paradise.<br/>What's in that book is actually a lie.<br/>...Tir Na Nog is a real place, but it's not anything like paradise.")); npc.Msg(L("...<p/>Listen carefully... Tir Na Nog is the land of the Fomors.<br/>And... the Goddess,<br/>who seems so loving, draws zealous adventurers like yourself to manipulate and use you.")); npc.Msg(L("...<p/>...You don't believe me, do you...? Hah...<br/>The pass I just gave you is what the Fomors use to enter dungeons...<br/>It's an item they use to avoid the barriers set up by the Goddess."), npc.Image("g1_ch09_brownpass")); npc.Msg(L("If you offer that to the statue of the Goddess in Barri dungeon,<br/>you will witness everything I just told you with your own eyes.<br/>Here's a Red Wing of the Goddess, so use it if you need it...<br/>You can go there alone, but taking one or two friends with you is probably a better idea.")); npc.Msg(L("...The best thing to do would be to forget<br/>trying to go to Tir Na Nog.<p/>...Heed my warning...")); } else if (npc.HasKeyword("g1_10") || npc.HasKeyword("g1_11")) { if (!npc.HasItem(BrownFomorPass)) npc.GiveItem(BrownFomorPass); npc.Msg(L("...The best thing to do would be to forget<br/>trying to go to Tir Na Nog.<p/>...Heed my warning...")); } return HookResult.Break; }
public async Task<HookResult> StewartBeforeKeywords(NpcScript npc, params object[] args) { var keyword = args[0] as string; if (keyword == null || keyword != "g1_tarlach2") return HookResult.Continue; if (npc.HasKeyword("g1_02")) { npc.RemoveKeyword("g1_02"); npc.GiveKeyword("g1_03"); npc.GiveItem(TarlachsLocket); npc.GiveWarpScroll(63009, "Alby_Dungeon"); npc.Msg(L("The three missing Warriors? The ones who are said to have gone to Tir Na Nog?")); npc.Msg(L("I see...<br/>There was a time when scholars debated back and forth regarding the validity of that legend.")); npc.Msg(L("From what I remember, there were stories of Tir Na Nog circulating via word of mouth<br/>but there weren't any written records of it.<br/>In the end, it was concluded that it was only a rumor.")); npc.Msg(L("So it's just a legend...")); npc.Msg(L("...What do I think...?<br/>I believe in the legend of three missing Warriors. Haha...<br/>I'm no fool though...")); npc.Msg(L("I'm not sure if what I just gave you will be of any help.<br/>It's a locket. You know, an accessory that you put pictures in."), npc.Image("G1_Ch04_locket01")); npc.Msg(L("...Don't be surprised...<br/>This is actually a memento that belonged to<br/>Tarlach, the mighty Wizard, one of the<br/>three missing Warriors."), npc.Image("G1_Ch04_locket02")); npc.Msg(L("Yes, the picture of the boy in the locket is Tarlach.<br/>This was probably from when he was young.<br/>Judging from how old she is, the pretty girl next to him is probably his sister."), npc.Image("G1_Ch04_locket02")); npc.Msg(L("That's not all, though...<br/>This locket...it's a type of a Memorial item that allows you<br/>to experience the life of the person who used to own it.")); npc.Msg(L("Tarlach spent his entire life trying to rescue the goddess<br/>who holds the secrets of Tir Na Nog.<br/>His desires and memories remain in this locket.")); npc.Msg(L("Try placing this on the altar to the goddess inside Alby Dungeon.")); npc.Msg(L("Drop the locket on the Alby Dungeon altar.<br/>And get two more friends to go with you.")); return HookResult.Break; } else if (npc.HasKeyword("g1_03")) { // Give locket again if lost if (!npc.HasItem(TarlachsLocket)) npc.GiveItem(TarlachsLocket); npc.Msg(L("Drop the locket on the Alby Dungeon altar.<br/>And get two more friends to go with you.")); return HookResult.Break; } else { return HookResult.Continue; } }
public async Task<HookResult> AeiraBeforeKeywords(NpcScript npc, params object[] args) { var keyword = args[0] as string; if (keyword == "g1_memo_of_parcelman") { if (npc.HasItem(WizardsNote)) npc.GiveItem(WizardsNote); npc.Msg(L("If you offer the note on the Altar of Ciar Dungeon, you'll be transported to where you can find the book.")); return HookResult.Break; } return HookResult.Continue; }
// Dialog pieced together from vague translations // and snippets of official dialog. public async Task<HookResult> KristellBeforeKeywords(NpcScript npc, params object[] args) { var keyword = args[0] as string; if (keyword == "g1_cichol") { npc.Msg(L("He's amongst one of the evil Gods that lead the Fomors.<br/>Yes, Fomors do worship Gods.")); npc.Msg(L("I don't particularly feel up to talking about him.<br/>But, I'll tell you now, you should hurry if you think Cichol<br/>is somehow involved with GOddess Morrighan.")); npc.Msg(L("He is cunning and meticulous, so he will<br/>be very difficult to stop by ourselves.")); } else if (keyword == "g1_way_to_tirnanog1") { if (npc.Player.Level < 25) { npc.Msg(L("...<p/>I have heard people call your name...<br/>And I know what kind of person you are.")); npc.Msg(L("...But, <username/>... Tir Na Nog is a bad place to be.<br/>In that place even your connection<br/>to the Soul Stream won't help you...")); npc.Msg(L("You don't have the experience to survive there.")); npc.Msg(L("You should at least reach level 25...<br/>Otherwise, going there would be suicide.")); return HookResult.Break; } var hasSlayerTitle = (npc.Title == 79 || npc.Title == 80 || npc.Title == 81 || npc.Title == 82 || npc.Title == 83 || npc.Title == 85 || npc.Title == 53); if (!hasSlayerTitle) { npc.Msg(L("...<br/>If...<br/>If Tir Na Nog is...")); npc.Msg(L("If it really is the land of the Fomors, like Tarlach said...")); npc.Msg(L("I've already betrayed the Fomors. I supposed it doesn't hurt to tell you.<br/>The land of the Fomors is a dangerous place.<br/>There are no friendly faces or safe places...<br/>You have no one but yourself and your party members to rely on.")); npc.Msg(L("Do you... think you have the strength to bear the pain...?")); npc.Msg(L("I can tell you how to reach Tir Na Nog.")); npc.Msg(L("But... please show me that you're capable<br/>of fighting Erinn's powerful monsters.")); npc.Msg(L("I can't tell you how to reach Tir Na Nog before that.")); return HookResult.Break; } if (npc.HasKeyword("g1_33")) { if (!npc.HasQuest(this.Id)) npc.StartQuest(this.Id); npc.Msg(L("That title above your head<br/>tells me that you're confident<br/>with your strength.")); npc.Msg(L("If you're so strong,<br/>could I ask you for one favor?")); npc.Msg(L("I've betrayed the Fomors to become a Human.<br/>Fomors are always waiting for the chance to hurt me.")); npc.Msg(L("Ever since I translated the book for Tarlach,<br/>I sensed someone stalking me.")); npc.Msg(L("I'm really insecure because I feel the Fomors looking for me.<br/>I saw the Fomor Command Scroll and think I'm supposed to be the target.<br/>Can you help me so they can't come anywhere near here?")); npc.Msg(L("If you do that,<br/>I'll feel a bit more at ease.")); } else { if (!npc.HasItem(BlackFomorPass)) { npc.GiveItem(BlackFomorPass); npc.Msg(L("This is a Fomor Pass used only by high ranking Fomors.<br/>I pray that you won't lose it.")); } else { npc.Msg(L("Yes, offer the pass I gave you in Barri Dungeon.<br/>...<br/>Please be careful.")); } } return HookResult.Break; } return HookResult.Continue; }
public async Task<HookResult> DougalBeforeKeywords(NpcScript npc, params object[] args) { var keyword = args[0] as string; if (keyword == "g1_revive_of_glasgavelen") { if (npc.HasKeyword("g1_37")) { npc.RemoveKeyword("g1_37"); npc.GiveKeyword("g1_37_2"); npc.Msg(L("There's a sudden change in the sky.<br/>What's happened?")); npc.Msg(L("...<p/>You finally rescued the Goddess.<br/>Congratulations.")); npc.Msg(Hide.Name, L("(You tell Dougal what you heard from the Goddess.)")); npc.Msg(L("...<p/>The Goddess told you that?<br/>But why are you telling me this?<p/>...<p/>...<p/>Ahh. I see.<p/>Heh. Hahaha.<p/>This explains quite a few things.")); npc.Msg(L("I didn't realize that the 'Added Soul Effect'<br/>that I had told you in order to make you stay here<br/>could have the same effect on me.")); npc.Msg(L("But you already seem to have guessed it.<br/>No, you must already know about it since that is essentially why you came here,<br/>to tell me this, right?")); npc.Msg(L("Right...<br/>I'm also a soul from another world just like yourself.<br/>I'm probably known to<br/>your people as Glas Ghaibhleann.")); npc.Msg(L("I came here to reclaim my body<br/>that was summoned by the people<br/>of this world against my will,")); npc.Msg(L("but I ended up in the body<br/>of the last remaining human in this world.<br/>My host body is weak.<br/>I cannot even walk properly in this weak Human form.")); npc.Msg(L("Now that you have learned all about me,<br/>I will proceed to pursue my original goal.<br/>The Goddess probably sent you to me fully<br/>aware of what my intentions are.")); npc.Msg(L("My goal?<br/>It's obvious, isn't it? I wish to reclaim the freedom of my real body.<br/>I need to free my body into the world I originally belonged to<br/>by breaking away from these shackles.")); npc.Msg(L("The Goddess Pendant is a key into another world.<br/>If you want, I can inscribe the pattern into<br/>the pendant so it will move you to my body, which is calling me.")); npc.Msg(L("However, my body that's being<br/>controlled by the summoner would be powerful enough to blow away mere humans.<br/>I'm not sure if I should trust you with this task.")); npc.Msg(L("Can you make me a promise?<br/>Can you promise you will defeat my body?<br/>And return it to where it belongs?"), npc.Button(L("Yes"), "@yes"), npc.Button(L("No"), "@no")); } else if (npc.HasKeyword("g1_37_2")) { npc.Msg(L("Can you promise you will defeat my body?<br/>And return it to where it belongs?"), npc.Button(L("Yes"), "@yes"), npc.Button(L("No"), "@no")); } else if (npc.HasKeyword("g1_38")) { if (!npc.HasItem(PendantOfTheGoddessBind)) npc.GiveItem(PendantOfTheGoddessBind); npc.Msg(L("Go to Albey Dungeon and offer the pendant there.<br/>If you succeed,<br/>it will only be a matter time before I free myself from being an Added Soul.")); return HookResult.Break; } else { return HookResult.Continue; } if (await npc.Select() != "@yes") { npc.Msg(L("Oh...")); return HookResult.Break; } else if (!npc.HasItem(PendantOfTheGoddess)) { npc.Msg(L("You don't have the pendant on you?")); return HookResult.Break; } npc.RemoveKeyword("g1_37"); npc.RemoveKeyword("g1_37_2"); npc.GiveKeyword("g1_38"); npc.RemoveItem(PendantOfTheGoddess); npc.GiveItem(PendantOfTheGoddessBind); npc.GiveItem(Item.CreateWarpScroll(63009, "TirNaNog_Dungeon")); npc.Msg(L("Okay, I'll trust you.<br/>I guess it might not be a bad idea to trust you since<br/>you rescued the Goddess.")); npc.Msg(L("Go to Albey Dungeon and offer this pendant there.<br/>You know how to use the Red Wings of a Goddess, right?<br/>If you succeed,<br/>it will only be a matter time before I free myself from being an Added Soul.")); } return HookResult.Continue; }