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> 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> DuncanAfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk")) { npc.CompleteQuest(this.Id); npc.GiveKeyword("g1_memorial4"); npc.GiveKeyword("g1_34_1"); npc.GiveItem(Torque); npc.Notice(L("You have received Broken Torque from Duncan.")); npc.Msg(L("Welcome, <username/>. I'm glad you came...<br/>First, let me give you this.<br/>I found it while I was cleaning the house.")); npc.Msg(L("Yes... This is the reason I called you<br/>Do you remember...? How I told you I raised Mari...")); npc.Msg(L("When Mari first came to me...<br/>She was delivered by a pair of white and brown deer, wrapped tightly in a blanket..."), npc.Image("g1_ch31_baby")); npc.Msg(L("Inside the blanket, there was a letter from Shiela,<br/>asking me to watch over Mari, and the item I just gave you..."), npc.Image("g1_ch31_baby")); npc.Msg(L("This is what the letter said...<br/>When Mari becomes an adult...<br/>give her this memento so she can find her past...<br/>and...tell her go to Math Dungeon..."), npc.Image("g1_ch31_baby")); npc.Msg(L("Shiela said...when she dies<br/>she'll attach her memories to this item...")); npc.Msg(L("...<br/>But...now...since Mari...<br/>doesn't need it anymore...<br/>...I'm giving it to you.")); npc.Msg(L("It seems like an item related to Mores...<br/>I hope it will be helpful in some way<br/>in your search to find Tir Na Nog...")); npc.Msg(L("I'm giving you a Red Wing of the Goddess as well...<br/>so hurry up and go to Math Dungeon.<br/>I wish you the best of luck.")); return(HookResult.Break); } return(HookResult.Continue); }
public async Task <HookResult> DougalAfterIntro(NpcScript npc, params object[] args) { if (!npc.HasQuest(this.Id) && !npc.HasKeyword("g1_37_1")) { npc.SendOwl(this.Id, OwlDelay); npc.GiveKeyword("g1_37_1"); npc.Msg(L("You're quite brave to come to a place like this. I'm Dougal.<br/>I'm here... alone.")); npc.Msg(L("I see that you're not from around here.<br/>I'm Dougal, the last remaining human here.<br/>I was pretty lonely. It's been a while since I've seen anyone.")); npc.Msg(L("Why am I left here alone?<br/>It's complicated, but I didn't stay behind<br/>because I wanted to.")); npc.Msg(L("...")); npc.Msg(L("What?<br/>This is Tir Na Nog?<br/>You mean the legendary paradise, Tir Na Nog?")); npc.Msg(L("Hah!<br/>Hahaha. I didn't expect to hear such a foolish statement from you.")); npc.Msg(L("Look, if this truly is Tir Na Nog, the world where sickness and death don't exist,<br/>why would I have a leg like this?")); npc.Msg(L("Also, this town has turned into a wasteland<br/>after being invaded by the Fomors.")); npc.Msg(L("You probably heard a false rumor somewhere.<br/>I'm sorry but this isn't the place you think it is.")); npc.Msg(L("This is just another world that has become a land of the Fomors.")); npc.Msg(L("But since you're here, take a look<br/>around as much as you want.<br/>Who knows?<br/>You might find this place similar to a place<br/>you are familiar with. Haha.")); return(HookResult.Break); } else if (npc.QuestActive(this.Id, "talk1")) { npc.FinishQuest(this.Id, "talk1"); npc.Msg(L("You've come... I was waiting for you.<br/>Because you're not from around here,<br/>I thought that losing the freedom of your body<br/>might end up getting you into big trouble.")); npc.Msg(L("...True... Nobody but your party can help you<br/>in here.<br/>Even if your life ends and you pass away...")); npc.Msg(L("When you can't move...<br/>You return to your world.<br/>I do think you have to endure that fact, only because you are a human of another world...")); npc.Msg(L("...I've called you because a good plan has come up.")); npc.Msg(L("Do you...know about the added soul phenomenon?<br/>It is the phenomenon where the spirit doesn't go away from one's body...<br/>I thought maybe if you were to use this trick<br/>you could let your spirit stay near here.")); npc.Msg(L("Yes... If your spirit does not go away from your fallen body and stays near it<br/>there wouldn't be such a thing as having to resurrect back from the world you were in<br/>even if you were to lose the freedom of your body.")); npc.Msg(L("But... dealing with spirits is also a dangerous thing...<br/>With the slightest provocation you can turn into one of those zombies behind the graveyard...")); npc.Msg(L("...So, I'll have to see if my thoughts are correct.<br/>If you knock down the spiritless zombies<br/>I will measure the added soul phenomenon that happens around the zombies<br/>and see if you can resurrect in this place.")); npc.Msg(L("What do you think? Would you like to give it a try?")); return(HookResult.Break); } else if (npc.QuestActive(this.Id, "talk2")) { npc.CompleteQuest(this.Id); npc.RemoveKeyword("g1_37_1"); npc.GiveKeyword("g1_bind"); npc.Msg(L("It's just as I'd thought. We can use the added soul phenomenon<br/>and have your spirit stay here.<br/>If you believe me, from now on,<br/>you won't ever be an undead even if you collapse here.")); npc.Msg(L("...Yes. My body and soul<br/>are exchanging with you the amount of strength<br/>you need to resurrect here...")); npc.Msg(L("Oh no... Are you uncomfortable about exchanging such things with me?<br/>Ha ha, no need to act calm.<br/>But...")); npc.Msg(L("Even when you can't move<br/>you can come near me.<br/>You will make it through this world with more ease if you remember this.")); return(HookResult.Break); } return(HookResult.Continue); }
public async Task<HookResult> DougalAfterIntro(NpcScript npc, params object[] args) { if (!npc.HasQuest(this.Id) && !npc.HasKeyword("g1_37_1")) { npc.SendOwl(this.Id, OwlDelay); npc.GiveKeyword("g1_37_1"); npc.Msg(L("You're quite brave to come to a place like this. I'm Dougal.<br/>I'm here... alone.")); npc.Msg(L("I see that you're not from around here.<br/>I'm Dougal, the last remaining human here.<br/>I was pretty lonely. It's been a while since I've seen anyone.")); npc.Msg(L("Why am I left here alone?<br/>It's complicated, but I didn't stay behind<br/>because I wanted to.")); npc.Msg(L("...")); npc.Msg(L("What?<br/>This is Tir Na Nog?<br/>You mean the legendary paradise, Tir Na Nog?")); npc.Msg(L("Hah!<br/>Hahaha. I didn't expect to hear such a foolish statement from you.")); npc.Msg(L("Look, if this truly is Tir Na Nog, the world where sickness and death don't exist,<br/>why would I have a leg like this?")); npc.Msg(L("Also, this town has turned into a wasteland<br/>after being invaded by the Fomors.")); npc.Msg(L("You probably heard a false rumor somewhere.<br/>I'm sorry but this isn't the place you think it is.")); npc.Msg(L("This is just another world that has become a land of the Fomors.")); npc.Msg(L("But since you're here, take a look<br/>around as much as you want.<br/>Who knows?<br/>You might find this place similar to a place<br/>you are familiar with. Haha.")); return HookResult.Break; } else if (npc.QuestActive(this.Id, "talk1")) { npc.FinishQuest(this.Id, "talk1"); npc.Msg(L("You've come... I was waiting for you.<br/>Because you're not from around here,<br/>I thought that losing the freedom of your body<br/>might end up getting you into big trouble.")); npc.Msg(L("...True... Nobody but your party can help you<br/>in here.<br/>Even if your life ends and you pass away...")); npc.Msg(L("When you can't move...<br/>You return to your world.<br/>I do think you have to endure that fact, only because you are a human of another world...")); npc.Msg(L("...I've called you because a good plan has come up.")); npc.Msg(L("Do you...know about the added soul phenomenon?<br/>It is the phenomenon where the spirit doesn't go away from one's body...<br/>I thought maybe if you were to use this trick<br/>you could let your spirit stay near here.")); npc.Msg(L("Yes... If your spirit does not go away from your fallen body and stays near it<br/>there wouldn't be such a thing as having to resurrect back from the world you were in<br/>even if you were to lose the freedom of your body.")); npc.Msg(L("But... dealing with spirits is also a dangerous thing...<br/>With the slightest provocation you can turn into one of those zombies behind the graveyard...")); npc.Msg(L("...So, I'll have to see if my thoughts are correct.<br/>If you knock down the spiritless zombies<br/>I will measure the added soul phenomenon that happens around the zombies<br/>and see if you can resurrect in this place.")); npc.Msg(L("What do you think? Would you like to give it a try?")); return HookResult.Break; } else if (npc.QuestActive(this.Id, "talk2")) { npc.CompleteQuest(this.Id); npc.RemoveKeyword("g1_37_1"); npc.GiveKeyword("g1_bind"); npc.Msg(L("It's just as I'd thought. We can use the added soul phenomenon<br/>and have your spirit stay here.<br/>If you believe me, from now on,<br/>you won't ever be an undead even if you collapse here.")); npc.Msg(L("...Yes. My body and soul<br/>are exchanging with you the amount of strength<br/>you need to resurrect here...")); npc.Msg(L("Oh no... Are you uncomfortable about exchanging such things with me?<br/>Ha ha, no need to act calm.<br/>But...")); npc.Msg(L("Even when you can't move<br/>you can come near me.<br/>You will make it through this world with more ease if you remember this.")); return HookResult.Break; } return HookResult.Continue; }
public async Task<HookResult> LearnDefense(NpcScript npc) { npc.Msg("It seems you are seeking a warrior's advice from me.<br/>Let's see, first, just lunging at your enemy is not everything.<br/>Defend your opponent's attack to break its flow<br/>and win a chance to strike back. It's really a critical part in a fight. <p/>That's the Defense skill.<br/>Hmm... If you haven't learned it yet, can you do me a favor?<br/>I'll let you know what it is so you can practice by yourself."); npc.Notice("Received Defense Guidebook from Ranald."); if(!npc.QuestActive(this.Id)) npc.StartQuest(this.Id); npc.CompleteQuest(this.Id); npc.Msg("How to use the Defense skill is described in this book.<br/>Read it well and practice hard. That's the only efficient way you can defend yourself."); 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> 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> ElenIntro(NpcScript npc, params object[] args) { if (!npc.QuestActive(this.Id)) return HookResult.Continue; if (!npc.Player.Inventory.Has(64002, 5)) // 5 Iron Ore return HookResult.Continue; Send.Notice(npc.Player, "You have given Iron Ore to Elen."); npc.Player.Inventory.Remove(64002, 5); // 5 Iron Ore npc.CompleteQuest(this.Id); return HookResult.Break; }
public async Task <HookResult> LearnDefense(NpcScript npc) { npc.Msg("It seems you are seeking a warrior's advice from me.<br/>Let's see, first, just lunging at your enemy is not everything.<br/>Defend your opponent's attack to break its flow<br/>and win a chance to strike back. It's really a critical part in a fight. <p/>That's the Defense skill.<br/>Hmm... If you haven't learned it yet, can you do me a favor?<br/>I'll let you know what it is so you can practice by yourself."); npc.Notice("Received Defense Guidebook from Ranald."); if (!npc.QuestActive(this.Id)) { npc.StartQuest(this.Id); } npc.CompleteQuest(this.Id); npc.Msg("How to use the Defense skill is described in this book.<br/>Read it well and practice hard. That's the only efficient way you can defend yourself."); return(HookResult.Break); }
public async Task <HookResult> TalkMless(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk_mless")) { npc.FinishQuest(this.Id, "talk_mless"); npc.CompleteQuest(this.Id); npc.Msg("Ah... it's you, <username/>. Now that was a worthy combat...<br/>As promised, I will bestow upon you now the power of Dark Knight."); npc.Msg("Continue to hone your strength through the power of your transformation..."); npc.End(); return(HookResult.End); } return(HookResult.Continue); }
public async Task <HookResult> AeiraAfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk_aeira")) { npc.CompleteQuest(this.Id); npc.SendOwl(210008, OwlDelay2); // Find the Book of Revenge, Vol. III npc.Msg(L("Since you're looking for volume 3, I'm guessing you already<br/>found volume 2? I'm afraid I haven't heard anything about volume 3 just yet.")); npc.Msg(L("It's turning out to be a lot harder to find the last volume.<br/>My distributor has been absolutely useless, and Eavan says<br/>she hasn't come across such a book. Even Leslie says she<br/>doesn't know anything. Same with Stewart.")); npc.Msg(L("I've asked everywhere, but I don't know how long it will take.<br/>I'm afraid you're going to have to be patient. But even if<br/>you're patient, I just don't have any confidence that I'll<br/>be able to find it...")); 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> 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(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> KristellAfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk_kristell")) { npc.CompleteQuest(this.Id); npc.GiveItem(BookOfRevenge3Translated); npc.Notice(L("You have received The Book of Revenge, Vol. III (Translated) from Kristell.")); npc.Msg(L("Here is the translated copy you've been waiting for.<br/>With that, I've finished translating all three volumes of the Book of Revenge.")); npc.Msg(L("...<br/>I must warn you...<br/>This last volume contains some...disturbing passages.")); return(HookResult.Break); } return(HookResult.Continue); }
public async Task <HookResult> KristellAfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk_kristell")) { npc.CompleteQuest(this.Id); npc.SendOwl(210009, OwlDelay); // Receive the Book of Revenge, Vol. III. npc.RemoveItem(BookOfRevenge3); npc.Notice(L("You have given the Book of Revenge, Vol. III to Kristell.")); npc.Msg(L("You really did bring the Book of Fomors...<br/>Volume 3 is indeed the last in the series.")); npc.Msg(L("I knew you could get the job done.<br/>I'll let you know when my translation is complete.")); return(HookResult.Break); } return(HookResult.Continue); }
public async Task <HookResult> ElenIntro(NpcScript npc, params object[] args) { if (!npc.QuestActive(this.Id)) { return(HookResult.Continue); } if (!npc.Player.Inventory.Has(64002, 5)) // 5 Iron Ore { return(HookResult.Continue); } Send.Notice(npc.Player, "You have given Iron Ore to Elen."); npc.Player.Inventory.Remove(64002, 5); // 5 Iron Ore npc.CompleteQuest(this.Id); return(HookResult.Break); }
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> TalkRanald(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk_ranald")) { npc.FinishQuest(this.Id, "talk_ranald"); npc.CompleteQuest(this.Id); // Unofficial npc.Msg("Thank you, <username/>. Now that that's out of the way, let me teach you all about the Windmill skill."); npc.Msg(Hide.Name, "... ... ..."); // He should probably say something about Windmill... npc.Msg("And that's it! Never stop training."); npc.End(); return(HookResult.End); } return(HookResult.Continue); }
public async Task<HookResult> TalkRanald(NpcScript npc, params object[] args) { if(npc.QuestActive(this.Id, "talk_ranald")) { npc.FinishQuest(this.Id, "talk_ranald"); npc.CompleteQuest(this.Id); // Unofficial npc.Msg("Thank you, <username/>. Now that that's out of the way, let me teach you all about the Windmill skill."); npc.Msg(Hide.Name, "... ... ..."); // He should probably say something about Windmill... npc.Msg("And that's it! Never stop training."); npc.End(); return HookResult.End; } 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> 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> AeiraAfterIntro(NpcScript npc, params object[] args) { if (!npc.QuestActive(this.Id, "get_book")) return HookResult.Continue; npc.CompleteQuest(this.Id); npc.GiveItem(Book); npc.RemoveKeyword("g1_06"); npc.RemoveKeyword("g1_07"); npc.RemoveKeyword("g1_08"); npc.GiveKeyword("g1_09"); npc.Msg(L("Hey~! You came, <username/>.<br/>Here it is. The book you have been looking for.")); npc.Msg(L("Sorry it took so long~<br/>To make it up to you, I'll give you the book for free~")); npc.Msg(L("Instead, just come and visit often, okay?")); return HookResult.Break; }
public async Task <HookResult> AfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "deliver") && npc.HasItem(Earring)) { npc.RemoveItem(Earring); npc.CompleteQuest(this.Id); npc.Msg(Hide.Name, L("(You have given Lost Earring to Duncan.)")); npc.Msg(L("Ahh, that's the earring. Well done.<br/>I don't suppose it was... stuck in a snowman, was it?<br/>Ha, I figured as much. This isn't my earring, you see.")); npc.Msg(L("A... friend lost it, making all those snowmen.<br/>They mark the passing of an important druid, you know.")); npc.Msg(L("You saw this structure up there, right?<br/>My friend knows much about it.<br/>It leads to a magical place, if he's to be believed."), npc.Image("G1_Ch01_sidhesnechta")); npc.Msg(L("There's a story about that druid who vanished.<br/>It is said he became a bear, and hid in a magical place.<br/>If you can traverse that gateway, perhaps you can find him.")); npc.Msg(L("They say the bear loves Mana Herbs.<br/>Best take some with you if you go.<br/>You can find them in dungeons."), npc.Image("G1_Ch01_manaherb")); return(HookResult.Break); } return(HookResult.Continue); }
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> SeumasAfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk_seumas")) { npc.CompleteQuest(this.Id); npc.StartQuest(210012); npc.GiveItem(FathersGift); npc.Notice(L("You have received Father's Gift from Seumas.")); npc.Msg(L("(He gasps for breath as he speaks.)<br/>Ah... I suppose you're the one Lassar mentioned...?<br/>You need the...book of Fomors...?")); npc.Msg(L("Not too long ago...I asked Lassar...<br/>to translate it<br/>but she said she couldn't do it...")); npc.Msg(L("I probably won't be able to figure it out myself anyway...")); npc.Msg(L("Could you do me a little favor... before I give it to you?<br/>I can't leave here right now,<br/>Please deliver this present to my son Sion in Bangor.")); return HookResult.Break; } return HookResult.Continue; }
public async Task <HookResult> AeiraAfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk_aeira")) { npc.CompleteQuest(this.Id); npc.SendOwl(210006, OwlDelay); // The Book of Revenge, Volume II npc.RemoveKeyword("g1_23"); npc.GiveKeyword("g1_24"); npc.Msg(L("'The Book of Revenge...?'<br/>I don't think we have a book by that title.<br/>I'm certain our distributor doesn't carry it, either.<br/>Trust me, I know all the books we carry here...")); npc.Msg(L("It's a 3-volume set? If you've already got the first<br/>volume, then I can't sell it to you as a set, either...<br/>I doubt they'll let me order each volume separately.")); npc.Msg(L("It's written in the Fomor language?!<br/>I'm afraid you'll have to look elsewhere for that.<br/>It's going to be hard for a human bookseller to get such<br/>a book, don't you think?")); npc.Msg(L("<username/>, was it? You have quite the unique taste in books...<br/>I'll tell you what. You've piqued my interest, and I know<br/>a number of explorers and scholars. I'll ask around.<br/>If I hear anything, I'll get in touch with you.")); return(HookResult.Break); } return(HookResult.Continue); }
public async Task <HookResult> SeumasAfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk_seumas")) { npc.CompleteQuest(this.Id); npc.StartQuest(210012); npc.GiveItem(FathersGift); npc.Notice(L("You have received Father's Gift from Seumas.")); npc.Msg(L("(He gasps for breath as he speaks.)<br/>Ah... I suppose you're the one Lassar mentioned...?<br/>You need the...book of Fomors...?")); npc.Msg(L("Not too long ago...I asked Lassar...<br/>to translate it<br/>but she said she couldn't do it...")); npc.Msg(L("I probably won't be able to figure it out myself anyway...")); npc.Msg(L("Could you do me a little favor... before I give it to you?<br/>I can't leave here right now,<br/>Please deliver this present to my son Sion in Bangor.")); return(HookResult.Break); } return(HookResult.Continue); }
public async Task <HookResult> KristellAfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk")) { npc.CompleteQuest(this.Id); npc.RemoveKeyword("g1_33"); npc.GiveKeyword("g1_34"); npc.Msg(L("Thank you for your help, I feel much safer now.<br/>I'll tell you how to get to the place Tarlach mentioned.<br/>This Fomor Pass is used by high-ranking Fomors to travel there.<br/>This wing will take you to the dungeon. I pray that you don't lose it.")); // Newer versions of G1 place the third Morrighan cutscene after // she gave the pass to the player, possibly because of g1_34 // becoming active. return(HookResult.Break); } return(HookResult.Continue); }
public async Task <HookResult> AeiraAfterIntro(NpcScript npc, params object[] args) { if (!npc.QuestActive(this.Id, "get_book")) { return(HookResult.Continue); } npc.CompleteQuest(this.Id); npc.GiveItem(Book); npc.RemoveKeyword("g1_06"); npc.RemoveKeyword("g1_07"); npc.RemoveKeyword("g1_08"); npc.GiveKeyword("g1_09"); npc.Msg(L("Hey~! You came, <username/>.<br/>Here it is. The book you have been looking for.")); npc.Msg(L("Sorry it took so long~<br/>To make it up to you, I'll give you the book for free~")); npc.Msg(L("Instead, just come and visit often, okay?")); return(HookResult.Break); }
public async Task <HookResult> AeiraAfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk_aeira")) { npc.CompleteQuest(this.Id); npc.RemoveKeyword("g1_24"); npc.GiveKeyword("g1_25"); npc.GiveKeyword("g1_memo_of_parcelman"); npc.GiveWarpScroll(63009, "Ciar_Dungeon"); npc.Msg(L("Ah! <username/>! Welcome. Do you remember the book I gave you before, 'Land of Eternity, Tir Na Nog?'<br/>The author of that book, Leslie, called.<br/>You see, Leslie is a famous historian and an avide explorer.")); npc.Msg(L("She sent me this note.<br/>It says that she once found 'The Book of Revenge' inside Ciar dungeon, written in Fomor language.<br/>She said if you offer this note on the Altar of Ciar Dungeon, you'll be transported to where you can find the book.<br/>...Apparently this note has some kind of magic on it or something..."), npc.Image("g1_ch21_memo")); npc.Msg(L("And...here, this is Aeira's special gift to you, The Red Wing of the Goddess!<br/>I will give you the note and the Red Wing of the Goddess!<br/>I wish you the best of luck.")); return(HookResult.Break); } return(HookResult.Continue); }
public async Task<HookResult> KristellAfterIntro(NpcScript npc, params object[] args) { if (!npc.QuestActive(this.Id, "deliver_item")) return HookResult.Continue; npc.CompleteQuest(this.Id); npc.RemoveKeyword("g1_17_5"); npc.GiveKeyword("g1_18"); npc.Msg(L("This is!")); npc.Msg(L("Tarlach......")); npc.Msg(Hide.Name, L("(Tears flow from Kristell's eyes.)")); npc.Msg(L("Tarlach...")); npc.Msg(L("He still remembers the song...<br/>The song of the black rose... the song I sang for him...<br/>Does this mean all this time, Tarlach had been struggling just like me?")); npc.Msg(L("Thank you. <username/>...<br/>...Thank you...")); npc.Msg(L("If it weren't for you,<br/>I'd still be wondering why Tarlach would be like that...")); npc.Msg(L("Here is the translated book... <username/>...<br/>I apologize for my rudeness...")); npc.Msg(L("There were some Fomor text writting in the back of the book which<br/>seems like it has no connection to the contents of the book...<br/>But I translated it just in case.")); npc.Msg(L("I hope this helps...")); 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> MevenAfterIntro(NpcScript npc, params object[] args) { if (!npc.QuestActive(this.Id, "talk_meven")) { return(HookResult.Continue); } npc.CompleteQuest(this.Id); npc.RemoveKeyword("g1_17_1"); npc.GiveKeyword("g1_17_2"); npc.GiveKeyword("g1_black_rose"); npc.Msg(L("Oh, it's you <username/>... Welcome.")); npc.Msg(Hide.Name, L("(Told priest Meven about the item Tarlach left with him.)")); npc.Msg(L("...He...wants that...back?<br/>Nonsense...!<br/>Do you know how long it's been? What, was he expecting it<br/>to be preserved by magic or something?")); npc.Msg(L("... Hmm...I'm afraid that's not possible.<br/>Granted it's the magic of a Druid...<br/>but...the best thing to do will be to grow it again.")); npc.Msg(L("I'll let Lassar know,<br/>so would you go talk to her about it...?<br/>Lassar is quite the expert on that field.")); npc.Msg(L("Go see her and tell her that I sent you...")); npc.Msg(L("...Anyway...Tarlach still must have not forgotten about her...<br/>if he's asking for that item back...It's a shame...")); 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> KristellAfterIntro(NpcScript npc, params object[] args) { if (!npc.QuestActive(this.Id, "deliver_item")) { return(HookResult.Continue); } npc.CompleteQuest(this.Id); npc.RemoveKeyword("g1_17_5"); npc.GiveKeyword("g1_18"); npc.Msg(L("This is!")); npc.Msg(L("Tarlach......")); npc.Msg(Hide.Name, L("(Tears flow from Kristell's eyes.)")); npc.Msg(L("Tarlach...")); npc.Msg(L("He still remembers the song...<br/>The song of the black rose... the song I sang for him...<br/>Does this mean all this time, Tarlach had been struggling just like me?")); npc.Msg(L("Thank you. <username/>...<br/>...Thank you...")); npc.Msg(L("If it weren't for you,<br/>I'd still be wondering why Tarlach would be like that...")); npc.Msg(L("Here is the translated book... <username/>...<br/>I apologize for my rudeness...")); npc.Msg(L("There were some Fomor text writting in the back of the book which<br/>seems like it has no connection to the contents of the book...<br/>But I translated it just in case.")); npc.Msg(L("I hope this helps...")); return(HookResult.Break); }
public async Task<HookResult> KristellAfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk_kristell")) { npc.CompleteQuest(this.Id); npc.SendOwl(210009, OwlDelay); // Receive the Book of Revenge, Vol. III. npc.RemoveItem(BookOfRevenge3); npc.Notice(L("You have given the Book of Revenge, Vol. III to Kristell.")); npc.Msg(L("You really did bring the Book of Fomors...<br/>Volume 3 is indeed the last in the series.")); npc.Msg(L("I knew you could get the job done.<br/>I'll let you know when my translation is complete.")); return HookResult.Break; } return HookResult.Continue; }
public async Task<HookResult> MevenAfterIntro(NpcScript npc, params object[] args) { if (!npc.QuestActive(this.Id, "talk_meven")) return HookResult.Continue; npc.CompleteQuest(this.Id); npc.RemoveKeyword("g1_17_1"); npc.GiveKeyword("g1_17_2"); npc.GiveKeyword("g1_black_rose"); npc.Msg(L("Oh, it's you <username/>... Welcome.")); npc.Msg(Hide.Name, L("(Told priest Meven about the item Tarlach left with him.)")); npc.Msg(L("...He...wants that...back?<br/>Nonsense...!<br/>Do you know how long it's been? What, was he expecting it<br/>to be preserved by magic or something?")); npc.Msg(L("... Hmm...I'm afraid that's not possible.<br/>Granted it's the magic of a Druid...<br/>but...the best thing to do will be to grow it again.")); npc.Msg(L("I'll let Lassar know,<br/>so would you go talk to her about it...?<br/>Lassar is quite the expert on that field.")); npc.Msg(L("Go see her and tell her that I sent you...")); npc.Msg(L("...Anyway...Tarlach still must have not forgotten about her...<br/>if he's asking for that item back...It's a shame...")); return HookResult.Break; }
public async Task<HookResult> AeiraAfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk_aeira")) { npc.CompleteQuest(this.Id); npc.SendOwl(210008, OwlDelay2); // Find the Book of Revenge, Vol. III npc.Msg(L("Since you're looking for volume 3, I'm guessing you already<br/>found volume 2? I'm afraid I haven't heard anything about volume 3 just yet.")); npc.Msg(L("It's turning out to be a lot harder to find the last volume.<br/>My distributor has been absolutely useless, and Eavan says<br/>she hasn't come across such a book. Even Leslie says she<br/>doesn't know anything. Same with Stewart.")); npc.Msg(L("I've asked everywhere, but I don't know how long it will take.<br/>I'm afraid you're going to have to be patient. But even if<br/>you're patient, I just don't have any confidence that I'll<br/>be able to find it...")); return HookResult.Break; } return HookResult.Continue; }
public async Task<HookResult> DuncanAfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk")) { npc.CompleteQuest(this.Id); npc.GiveKeyword("g1_memorial4"); npc.GiveKeyword("g1_34_1"); npc.GiveItem(Torque); npc.Notice(L("You have received Broken Torque from Duncan.")); npc.Msg(L("Welcome, <username/>. I'm glad you came...<br/>First, let me give you this.<br/>I found it while I was cleaning the house.")); npc.Msg(L("Yes... This is the reason I called you<br/>Do you remember...? How I told you I raised Mari...")); npc.Msg(L("When Mari first came to me...<br/>She was delivered by a pair of white and brown deer, wrapped tightly in a blanket..."), npc.Image("g1_ch31_baby")); npc.Msg(L("Inside the blanket, there was a letter from Shiela,<br/>asking me to watch over Mari, and the item I just gave you..."), npc.Image("g1_ch31_baby")); npc.Msg(L("This is what the letter said...<br/>When Mari becomes an adult...<br/>give her this memento so she can find her past...<br/>and...tell her go to Math Dungeon..."), npc.Image("g1_ch31_baby")); npc.Msg(L("Shiela said...when she dies<br/>she'll attach her memories to this item...")); npc.Msg(L("...<br/>But...now...since Mari...<br/>doesn't need it anymore...<br/>...I'm giving it to you.")); npc.Msg(L("It seems like an item related to Mores...<br/>I hope it will be helpful in some way<br/>in your search to find Tir Na Nog...")); npc.Msg(L("I'm giving you a Red Wing of the Goddess as well...<br/>so hurry up and go to Math Dungeon.<br/>I wish you the best of luck.")); return HookResult.Break; } return HookResult.Continue; }
public async Task<HookResult> AeiraAfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk_aeira")) { npc.CompleteQuest(this.Id); npc.SendOwl(210006, OwlDelay); // The Book of Revenge, Volume II npc.RemoveKeyword("g1_23"); npc.GiveKeyword("g1_24"); npc.Msg(L("'The Book of Revenge...?'<br/>I don't think we have a book by that title.<br/>I'm certain our distributor doesn't carry it, either.<br/>Trust me, I know all the books we carry here...")); npc.Msg(L("It's a 3-volume set? If you've already got the first<br/>volume, then I can't sell it to you as a set, either...<br/>I doubt they'll let me order each volume separately.")); npc.Msg(L("It's written in the Fomor language?!<br/>I'm afraid you'll have to look elsewhere for that.<br/>It's going to be hard for a human bookseller to get such<br/>a book, don't you think?")); npc.Msg(L("<username/>, was it? You have quite the unique taste in books...<br/>I'll tell you what. You've piqued my interest, and I know<br/>a number of explorers and scholars. I'll ask around.<br/>If I hear anything, I'll get in touch with you.")); return HookResult.Break; } return HookResult.Continue; }
public async Task<HookResult> AeiraAfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk_aeira")) { npc.CompleteQuest(this.Id); npc.RemoveKeyword("g1_24"); npc.GiveKeyword("g1_25"); npc.GiveKeyword("g1_memo_of_parcelman"); npc.GiveWarpScroll(63009, "Ciar_Dungeon"); npc.Msg(L("Ah! <username/>! Welcome. Do you remember the book I gave you before, 'Land of Eternity, Tir Na Nog?'<br/>The author of that book, Leslie, called.<br/>You see, Leslie is a famous historian and an avide explorer.")); npc.Msg(L("She sent me this note.<br/>It says that she once found 'The Book of Revenge' inside Ciar dungeon, written in Fomor language.<br/>She said if you offer this note on the Altar of Ciar Dungeon, you'll be transported to where you can find the book.<br/>...Apparently this note has some kind of magic on it or something..."), npc.Image("g1_ch21_memo")); npc.Msg(L("And...here, this is Aeira's special gift to you, The Red Wing of the Goddess!<br/>I will give you the note and the Red Wing of the Goddess!<br/>I wish you the best of luck.")); return HookResult.Break; } return HookResult.Continue; }
public async Task<HookResult> KristellAfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk_kristell")) { npc.CompleteQuest(this.Id); npc.GiveItem(BookOfRevenge3Translated); npc.Notice(L("You have received The Book of Revenge, Vol. III (Translated) from Kristell.")); npc.Msg(L("Here is the translated copy you've been waiting for.<br/>With that, I've finished translating all three volumes of the Book of Revenge.")); npc.Msg(L("...<br/>I must warn you...<br/>This last volume contains some...disturbing passages.")); return HookResult.Break; } return HookResult.Continue; }
public async Task<HookResult> KristellAfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk")) { npc.CompleteQuest(this.Id); npc.RemoveKeyword("g1_33"); npc.GiveKeyword("g1_34"); npc.Msg(L("Thank you for your help, I feel much safer now.<br/>I'll tell you how to get to the place Tarlach mentioned.<br/>This Fomor Pass is used by high-ranking Fomors to travel there.<br/>This wing will take you to the dungeon. I pray that you don't lose it.")); // Newer versions of G1 place the third Morrighan cutscene after // she gave the pass to the player, possibly because of g1_34 // becoming active. return HookResult.Break; } return HookResult.Continue; }