public async Task <HookResult> AfterIntro(NpcScript npc, params object[] args) { // Handle receiving of Anthology from some of her PTJ quests int id; if (npc.QuestActive(id = 501405, "ptj3") || npc.QuestActive(id = 501435, "ptj3") || npc.QuestActive(id = 501465, "ptj3")) { if (!npc.Player.Inventory.Has(Anthology)) { return(HookResult.Continue); } npc.Player.Inventory.Remove(Anthology, 1); npc.FinishQuest(id, "ptj3"); npc.Notice(L("You have given Anthology to be Delivered to Caitin.")); } // Call PTJ method after intro if it's time to report if (npc.DoingPtjForNpc() && npc.ErinnHour(Report, Deadline)) { await AboutArbeit(npc); return(HookResult.Break); } return(HookResult.Continue); }
public async Task<HookResult> AfterIntro(NpcScript npc, params object[] args) { // Handle delivery of Iron Ore from some of his PTJ quests int id, itemCount = -1; if (npc.QuestActive(id = 514602, "ptj2")) itemCount = 5; else if (npc.QuestActive(id = 514632, "ptj2")) itemCount = 7; else if (npc.QuestActive(id = 514662, "ptj2")) itemCount = 10; if (itemCount != -1) { if (!npc.Player.Inventory.Has(64002, itemCount)) // Iron Ore return HookResult.Continue; npc.FinishQuest(id, "ptj2"); npc.Player.Inventory.Remove(64002, itemCount); npc.Notice(L("You have given Iron Ore to Sion.")); npc.Msg(string.Format(LN("(Gave Sion {0} Iron Ore)", "(Gave Sion {0} Iron Ore)", itemCount), itemCount)); } // Call PTJ method after intro if it's time to report if (npc.DoingPtjForNpc() && npc.ErinnHour(Report, Deadline)) { await AboutArbeit(npc); 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> 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> TalkDuncan(NpcScript npc, params object[] args) { if(npc.QuestActive(this.Id, "talk_duncan")) { npc.FinishQuest(this.Id, "talk_duncan"); Send.Effect(npc.NPC, Effect.ScreenFlash, 3000, 0); // Remove Eiry var eiry = npc.Player.Inventory.Items.FirstOrDefault(item => item.EgoInfo.Race == EgoRace.EirySword); if(eiry != null) npc.Player.Inventory.Remove(eiry); // Give sword npc.GiveItem(40015); npc.Notice("Received Fluted Short Sword from Duncan."); npc.Msg("Welcome to Tir Chonaill."); npc.Msg("Oh, you are finally here, <username/>.<br/>I've heard a lot about you from the villagers.<br/>You've leveled up quite a lot."); npc.Msg("This may be a small town,<br/>but Tir Chonaill has long boasted a tradition<br/>of growing resolute and sturdy warriors<br/>that don't have to worry about the kingdom's control."); npc.Msg("You have now completed all our missions<br/>and have earned the right to join the rank of Tir Chonaill's warriors.<br/>Well done, and congratulations."); npc.Msg("Wherever you go, don't forget who you are and what you have become.<br/>Since you have become strong enough to survive alone,<br/>your ego guide must have already parted ways with you.<br/>There is no one to look after you now, so befriend as many people as you can."); npc.Msg("If you have anything else to ask, let me know."); await npc.Conversation(); npc.Close2(); Cutscene.Play("etc_event_ego_goodbye", npc.Player); 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> 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> 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> 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); }
private void LassarFinish(NpcScript npc) { npc.RemoveKeyword("g1_black_rose"); npc.RemoveKeyword("g1_17_3"); npc.RemoveKeyword("g1_17_4"); npc.GiveKeyword("g1_17_5"); npc.RemoveItem(HolyWater); npc.Notice(L("You have given Holy Water of Lymilark to Lassar.")); npc.SendOwl(210023, OwlDelay); // Receive the Requested Object npc.Msg(L("Yes, this should be enough.<br/>It's almost ready. Once it forms the proper shape, I'll let you know via an owl. Hahaha.<br/>Owls don't fly into buildings so<br/>don't forget to check the sky outside.")); npc.Msg(L("Now, will you excuse me?")); }
public async Task <HookResult> SeumasAfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk_seumas")) { npc.FinishQuest(this.Id, "talk_seumas"); npc.GiveItem(BookOfRevenge3); npc.Notice(L("You have received The Book of Revenge, Vol. III from Seumas.")); npc.Msg(L("Oh, that was fast, <username/>...<br/>Did Sion like it? Hah... Thank you...<br/>Here...is the...book...<br/>Hope it would be helpful...")); return(HookResult.Break); } return(HookResult.Continue); }
public async Task <HookResult> SionAfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk_sion")) { npc.FinishQuest(this.Id, "talk_sion"); npc.RemoveItem(FathersGift); npc.Notice(L("You have given Father's Gift to Sion.")); npc.Msg(L("... What's this?<br/>Eh, a present from dad?<br/>Wow, thank you!")); return(HookResult.Break); } return(HookResult.Continue); }
public async Task <HookResult> ClientAfterIntro(NpcScript npc, params object[] args) { if (!npc.QuestActive(this.Id, "ptj1")) { return(HookResult.Continue); } npc.FinishQuest(this.Id, "ptj1"); npc.Player.GiveItem(ItemId); npc.Notice(LReceivedNotice); ClientAfterIntroDialogue(npc); 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.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> 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); }
private async Task <HookResult> RecipientAfterIntro(NpcScript npc, params object[] args) { if (!npc.QuestActive(this.Id, "ptj2")) { return(HookResult.Continue); } npc.FinishQuest(this.Id, "ptj2"); npc.Player.RemoveItem(ItemId, 1); npc.Notice(LItemNotice); npc.Msg(L("Whose bread is that?<br/>Ah Aeira's, is it?<br/>It looks very appetizing. Thank you very much for bringing this.")); npc.Msg(Hide.Name, L("(Delivered a Fresh-baked Bread to Stewart.)")); return(HookResult.Break); }
private async Task <HookResult> RecipientAfterIntro(NpcScript npc, params object[] args) { if (!npc.QuestActive(this.Id, "ptj2")) { return(HookResult.Continue); } npc.FinishQuest(this.Id, "ptj2"); npc.Player.RemoveItem(ItemId, 1); npc.Notice(L("You have given Fresh-baked Bread to be Delivered to Stewart.")); npc.Msg(L("Bread from Glenis?<br/>Thank you very much.")); npc.Msg(Hide.Name, L("(Delivered a Fresh-baked Bread to Stewart.)")); 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> 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> AfterIntro(NpcScript npc, params object[] args) { // Handle delivery of Iron Ore from some of his PTJ quests int id, itemCount = -1; if (npc.QuestActive(id = 514602, "ptj2")) { itemCount = 5; } else if (npc.QuestActive(id = 514632, "ptj2")) { itemCount = 7; } else if (npc.QuestActive(id = 514662, "ptj2")) { itemCount = 10; } if (itemCount != -1) { if (!npc.Player.Inventory.Has(64002, itemCount)) // Iron Ore { return(HookResult.Continue); } npc.FinishQuest(id, "ptj2"); npc.Player.Inventory.Remove(64002, itemCount); npc.Notice(L("You have given Iron Ore to Sion.")); npc.Msg(string.Format(LN("(Gave Sion {0} Iron Ore)", "(Gave Sion {0} Iron Ore)", itemCount), itemCount)); } // Call PTJ method after intro if it's time to report if (npc.DoingPtjForNpc() && npc.ErinnHour(Report, Deadline)) { await AboutArbeit(npc); 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> TarlachAfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "get_book")) { npc.FinishQuest(this.Id, "get_book"); npc.GiveItem(BookOfRevenge); npc.Notice(L("You have received the Book of Revenge from Tarlach.")); npc.Msg(L("Thank you for sharing the story of my mentor with me, <username/>...")); npc.Msg(L("...<p/>Um... are you telling me that Chief Duncan of Tir Chonaill<br/>wants to...borrow the master's book...?")); npc.Msg(L("...I guess it should be okay.")); npc.Msg(L("He is a wise old man who has been through a lot, and<br/>he may be able to catch some things that we may have missed...")); npc.Msg(L("Please give this copy to the Chief for me...")); 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> TarlachAfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "get_book")) { npc.FinishQuest(this.Id, "get_book"); npc.GiveItem(BookOfRevenge); npc.Notice(L("You have received the Book of Revenge from Tarlach.")); npc.Msg(L("Thank you for sharing the story of my mentor with me, <username/>...")); npc.Msg(L("...<p/>Um... are you telling me that Chief Duncan of Tir Chonaill<br/>wants to...borrow the master's book...?")); npc.Msg(L("...I guess it should be okay.")); npc.Msg(L("He is a wise old man who has been through a lot, and<br/>he may be able to catch some things that we may have missed...")); npc.Msg(L("Please give this copy to the Chief for me...")); return(HookResult.Break); } return(HookResult.Continue); }
public async Task <HookResult> AfterIntro(NpcScript npc, params object[] args) { if (!npc.QuestActive(this.Id, "ptj")) { return(HookResult.Continue); } if (!npc.Player.Inventory.Has(ItemId)) { return(HookResult.Continue); } npc.Player.Inventory.Remove(ItemId, 1); npc.Notice(LGivenNotice); npc.FinishQuest(this.Id, "ptj"); await this.OnFinish(npc); 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; }
/// <summary>Precondition: All protected array properties declared in this class has a size greater than 1.</summary> /// <exception cref="System.IndexOutOfRangeException">Thrown if precondition is not met.</exception> public async Task <HookResult> RecipientAfterIntro(NpcScript npc, params object[] args) { if (!npc.QuestActive(this.Id, "ptj2")) { return(HookResult.Continue); } if (!npc.Player.Inventory.Has(ItemId)) { return(HookResult.Continue); } npc.FinishQuest(this.Id, "ptj2"); npc.Player.RemoveItem(ItemId, 1); npc.Notice(LItemNotice[1]); AfterIntroDialogue[1](npc); return(HookResult.Break); }
public async Task <HookResult> TalkDuncan(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk_duncan")) { npc.FinishQuest(this.Id, "talk_duncan"); Send.Effect(npc.NPC, Effect.ScreenFlash, 3000, 0); // Remove Eiry var eiry = npc.Player.Inventory.Items.FirstOrDefault(item => item.EgoInfo.Race == EgoRace.EirySword); if (eiry != null) { npc.Player.Inventory.Remove(eiry); } // Give sword npc.GiveItem(40015); npc.Notice("Received Fluted Short Sword from Duncan."); npc.Msg("Welcome to Tir Chonaill."); npc.Msg("Oh, you are finally here, <username/>.<br/>I've heard a lot about you from the villagers.<br/>You've leveled up quite a lot."); npc.Msg("This may be a small town,<br/>but Tir Chonaill has long boasted a tradition<br/>of growing resolute and sturdy warriors<br/>that don't have to worry about the kingdom's control."); npc.Msg("You have now completed all our missions<br/>and have earned the right to join the rank of Tir Chonaill's warriors.<br/>Well done, and congratulations."); npc.Msg("Wherever you go, don't forget who you are and what you have become.<br/>Since you have become strong enough to survive alone,<br/>your ego guide must have already parted ways with you.<br/>There is no one to look after you now, so befriend as many people as you can."); npc.Msg("If you have anything else to ask, let me know."); await npc.Conversation(); npc.Close2(); var cutscene = new Cutscene("etc_event_ego_goodbye", npc.Player); cutscene.AddActor("me", npc.Player); cutscene.Play(); return(HookResult.Break); } return(HookResult.Continue); }
public async Task <HookResult> ClientAfterIntro(NpcScript npc, params object[] args) { if (!npc.QuestActive(this.Id, "ptj1")) { return(HookResult.Continue); } npc.FinishQuest(this.Id, "ptj1"); if (!IsTwoPart) { npc.Player.RemoveItem(ItemId, 1); } else { npc.Player.GiveItem(ItemId); } npc.Notice(LItemNotice[0]); AfterIntroDialogue[0](npc); return(HookResult.Break); }
public async Task <HookResult> DuncanAfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "give_book")) { npc.FinishQuest(this.Id, "give_book"); npc.RemoveItem(BookOfRevenge); npc.Notice(L("You have given the Book of Revenge to Duncan.")); npc.Msg(L("So this is the Book of Revenge that Mores wrote...<br/>Let me take a look at it.")); npc.Msg(L("Hmm...interesting.<br/>I see. Hmm.<br/>Mmm...")); npc.Msg(L("...? Is this the end...?<br/>That can't be...")); npc.Msg(L("<username/>, it doesn't seem like the book ends here.<br/>Judging by the book's writing style and structure, it seems like there should be more to it.<br/>Looking at the introduction of the book, it seems like a 3 part series...")); npc.Msg(L("It's hard to comment on the Goddess's intentions<br/>just from this part of the book.<br/>Could you find out if there is another book...?")); npc.Msg(L("If we can get a hold of the other volumes,<br/>we will be able to figure out how to best respond to Mores and the Goddess,<br/>and what exactly to say to the King of Aliech.")); npc.Msg(L("I am sure you are aware of this, as well...<br/>that it's difficult to get the attention of the King and the lords<br/>with something as vague as this...")); npc.Msg(L("I don't know where you found the translation of this book...<br/>but please inquire about the existence of the next volume. Thank you.")); return(HookResult.Break); } return(HookResult.Continue); }
public async Task<HookResult> AfterIntro(NpcScript npc, params object[] args) { // Handle receiving of Anthology from some of her PTJ quests int id; if (npc.QuestActive(id = 501405, "ptj3") || npc.QuestActive(id = 501435, "ptj3") || npc.QuestActive(id = 501465, "ptj3")) { if (!npc.Player.Inventory.Has(Anthology)) return HookResult.Continue; npc.Player.Inventory.Remove(Anthology, 1); npc.FinishQuest(id, "ptj3"); npc.Notice(L("You have given Anthology to be Delivered to Caitin.")); } // Call PTJ method after intro if it's time to report if (npc.DoingPtjForNpc() && npc.ErinnHour(Report, Deadline)) { await AboutArbeit(npc); return HookResult.Break; } return HookResult.Continue; }
public async Task <HookResult> DuncanAfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "give_book")) { npc.FinishQuest(this.Id, "give_book"); npc.RemoveItem(BookOfRevenge2Translated); npc.Notice(L("You have given the Book of Revenge, Vol. 2 (Translated) to Duncan.")); npc.Msg(L("Good job.<br/>You not only found the book but even got it translated...<br/>Here, let me see it.")); npc.Msg(Hide.Name, L("(Duncan starts reading the book.)")); npc.Msg(L("Hmm... Hah...")); npc.Msg(L("So, it's true.<br/>So that's why the Fomor Scroll was made.")); npc.Msg(L("The Fomors...recognized that humans and nature<br/>were becoming separated...")); npc.Msg(L("At this point, I think you'll have to find the last volume of the book.<br/>If what I think is true, all of their plans will be in that book.<br/>Ever since the Mag Tuireadh war,<br/>Fomors have been preparing for another war.")); npc.Msg(L("We don't know anything for sure yet, but<br/>if we don't find their plan and prevent it,<br/>Erinn might be destroyed...")); npc.Msg(L("We have to find the 3rd volume.<br/>Please... You have to find the last book of the Fomors.")); npc.Msg(L("And don't forget that<br/>you must not tell anyone<br/>about these things regarding the Goddess.")); return(HookResult.Break); } return(HookResult.Continue); }
public async Task<HookResult> DuncanAfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "give_book")) { npc.FinishQuest(this.Id, "give_book"); npc.RemoveItem(BookOfRevenge2Translated); npc.Notice(L("You have given the Book of Revenge, Vol. 2 (Translated) to Duncan.")); npc.Msg(L("Good job.<br/>You not only found the book but even got it translated...<br/>Here, let me see it.")); npc.Msg(Hide.Name, L("(Duncan starts reading the book.)")); npc.Msg(L("Hmm... Hah...")); npc.Msg(L("So, it's true.<br/>So that's why the Fomor Scroll was made.")); npc.Msg(L("The Fomors...recognized that humans and nature<br/>were becoming separated...")); npc.Msg(L("At this point, I think you'll have to find the last volume of the book.<br/>If what I think is true, all of their plans will be in that book.<br/>Ever since the Mag Tuireadh war,<br/>Fomors have been preparing for another war.")); npc.Msg(L("We don't know anything for sure yet, but<br/>if we don't find their plan and prevent it,<br/>Erinn might be destroyed...")); npc.Msg(L("We have to find the 3rd volume.<br/>Please... You have to find the last book of the Fomors.")); npc.Msg(L("And don't forget that<br/>you must not tell anyone<br/>about these things regarding the Goddess.")); return HookResult.Break; } return HookResult.Continue; }
private async Task<HookResult> RecipientAfterIntro(NpcScript npc, params object[] args) { if (!npc.QuestActive(this.Id, "ptj2")) return HookResult.Continue; npc.FinishQuest(this.Id, "ptj2"); npc.Player.RemoveItem(ItemId, 1); npc.Notice(LItemNotice); npc.Msg(L("Whose bread is that?<br/>Ah Aeira's, is it?<br/>It looks very appetizing. Thank you very much for bringing this.")); npc.Msg(Hide.Name, L("(Delivered a Fresh-baked Bread to Stewart.)")); return HookResult.Break; }
public async Task<HookResult> GetAfterIntro(NpcScript npc, params object[] args) { if (!npc.QuestActive(this.Id, "ptj1")) return HookResult.Continue; npc.Player.GiveItem(ItemId); npc.FinishQuest(this.Id, "ptj1"); npc.Notice(LGetItemNotice); await this.GetOnFinish(npc); return HookResult.Break; }
private async Task<HookResult> RecipientAfterIntro(NpcScript npc, params object[] args) { if (!npc.QuestActive(this.Id, "ptj2")) return HookResult.Continue; npc.FinishQuest(this.Id, "ptj2"); npc.Player.RemoveItem(ItemId, 1); npc.Notice(L("You have given Fresh-baked Bread to be Delivered to Stewart.")); npc.Msg(L("Bread from Glenis?<br/>Thank you very much.")); npc.Msg(Hide.Name, L("(Delivered a Fresh-baked Bread to Stewart.)")); return HookResult.Break; }
public async Task<HookResult> DuncanAfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "give_book")) { npc.FinishQuest(this.Id, "give_book"); npc.RemoveItem(BookOfRevenge); npc.Notice(L("You have given the Book of Revenge to Duncan.")); npc.Msg(L("So this is the Book of Revenge that Mores wrote...<br/>Let me take a look at it.")); npc.Msg(L("Hmm...interesting.<br/>I see. Hmm.<br/>Mmm...")); npc.Msg(L("...? Is this the end...?<br/>That can't be...")); npc.Msg(L("<username/>, it doesn't seem like the book ends here.<br/>Judging by the book's writing style and structure, it seems like there should be more to it.<br/>Looking at the introduction of the book, it seems like a 3 part series...")); npc.Msg(L("It's hard to comment on the Goddess's intentions<br/>just from this part of the book.<br/>Could you find out if there is another book...?")); npc.Msg(L("If we can get a hold of the other volumes,<br/>we will be able to figure out how to best respond to Mores and the Goddess,<br/>and what exactly to say to the King of Aliech.")); npc.Msg(L("I am sure you are aware of this, as well...<br/>that it's difficult to get the attention of the King and the lords<br/>with something as vague as this...")); npc.Msg(L("I don't know where you found the translation of this book...<br/>but please inquire about the existence of the next volume. Thank you.")); 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> BebhinnAfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "ptj1")) { if (!npc.Player.Inventory.Has(Garment)) return HookResult.Continue; npc.FinishQuest(this.Id, "ptj1"); npc.Player.RemoveItem(Garment, 1); npc.Notice(L("You have given Garment to be Delivered to Bebhinn.")); npc.Msg(L("Wow, so the clothes I ordered have finally arrived.<br/>Thank you so much! Wow, I really like this style!")); npc.Msg(Hide.Name, L("(Delivered the clothes to Bebhinn.)")); npc.Msg(L("Yes? Payment?<br/>What? 1500G???!!!!!<br/>So, Malcolm's done it again. That guy always relies on others to do his dirty work!<p/>Anyway, I can't pay you. I don't have it! It's the bank that has money, not the banker!<br/>Tell him to come get it himself!")); npc.Msg(Hide.Name, L("(Intimidated by Bebhinn's rant, you failed to receive any payment for the clothes.)")); return HookResult.Break; } else if (npc.QuestActive(this.Id, "ptj2")) { npc.FinishQuest(this.Id, "ptj2"); npc.Player.GiveItem(Flowerpot, 1); npc.Notice(L("You have received Flowerpot to be Delivered from Bebhinn.")); npc.Msg(L("Oh, give me a break! Go tell Malcolm to put it on my bill and I'll pay him later.")); npc.Msg(Hide.Name, L("(Keep asking Bebhinn for payment, saying you won't be able to get a reward otherwise.)")); npc.Msg(L("OK, OK, I know it's not your fault after all.<br/>Stupid Malcolm, he should have come himself.<p/>But, I don't have the money with me now.<br/>So, can you take this to him instead and make sure to tell him this?<br/>I'll definitely pay the bill later.")); npc.Msg(Hide.Name, L("(Received a small Flowerpot from Bebhinn.)")); return HookResult.Break; } else 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> 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; }
private void LassarFinish(NpcScript npc) { npc.RemoveKeyword("g1_black_rose"); npc.RemoveKeyword("g1_17_3"); npc.RemoveKeyword("g1_17_4"); npc.GiveKeyword("g1_17_5"); npc.RemoveItem(HolyWater); npc.Notice(L("You have given Holy Water of Lymilark to Lassar.")); npc.SendOwl(210023, OwlDelay); // Receive the Requested Object npc.Msg(L("Yes, this should be enough.<br/>It's almost ready. Once it forms the proper shape, I'll let you know via an owl. Hahaha.<br/>Owls don't fly into buildings so<br/>don't forget to check the sky outside.")); npc.Msg(L("Now, will you excuse me?")); }
public virtual async Task<HookResult> ClientAfterIntro(NpcScript npc, params object[] args) { if (!npc.QuestActive(this.Id, "ptj1")) return HookResult.Continue; npc.FinishQuest(this.Id, "ptj1"); npc.Player.RemoveItem(ItemId, 1); npc.Notice(LItemNotice); AfterIntroDialogue(npc); return HookResult.Break; }
public async Task<HookResult> SionAfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk_sion")) { npc.FinishQuest(this.Id, "talk_sion"); npc.RemoveItem(FathersGift); npc.Notice(L("You have given Father's Gift to Sion.")); npc.Msg(L("... What's this?<br/>Eh, a present from dad?<br/>Wow, thank you!")); return HookResult.Break; } return HookResult.Continue; }
/// <summary>Precondition: All protected array properties declared in this class has a size greater than 1.</summary> /// <exception cref="System.IndexOutOfRangeException">Thrown if precondition is not met.</exception> public async Task<HookResult> RecipientAfterIntro(NpcScript npc, params object[] args) { if (!npc.QuestActive(this.Id, "ptj2")) return HookResult.Continue; if (!npc.Player.Inventory.Has(ItemId)) return HookResult.Continue; npc.FinishQuest(this.Id, "ptj2"); npc.Player.RemoveItem(ItemId, 1); npc.Notice(LItemNotice[1]); AfterIntroDialogue[1](npc); return HookResult.Break; }
public async Task<HookResult> SeumasAfterIntro(NpcScript npc, params object[] args) { if (npc.QuestActive(this.Id, "talk_seumas")) { npc.FinishQuest(this.Id, "talk_seumas"); npc.GiveItem(BookOfRevenge3); npc.Notice(L("You have received The Book of Revenge, Vol. III from Seumas.")); npc.Msg(L("Oh, that was fast, <username/>...<br/>Did Sion like it? Hah... Thank you...<br/>Here...is the...book...<br/>Hope it would be helpful...")); 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> AfterIntro(NpcScript npc, params object[] args) { if (!npc.QuestActive(this.Id, "ptj")) return HookResult.Continue; if (!npc.Player.Inventory.Has(ItemId)) return HookResult.Continue; npc.Player.Inventory.Remove(ItemId, 1); npc.Notice(LGivenNotice); npc.FinishQuest(this.Id, "ptj"); await this.OnFinish(npc); return HookResult.Break; }
public async Task<HookResult> AfterIntro(NpcScript npc, params object[] args) { // Handle receiving of Flowerpot from Bebhinn const int Flowerpot = 70010; int id; if (npc.QuestActive(id = 508405, "ptj3") || npc.QuestActive(id = 508435, "ptj3") || npc.QuestActive(id = 508465, "ptj3")) { if (!npc.Player.Inventory.Has(Flowerpot)) return HookResult.Continue; npc.Player.Inventory.Remove(Flowerpot, 1); npc.FinishQuest(id, "ptj3"); npc.Notice(L("You have given Flowerpot to be Delivered to Malcolm.")); npc.Msg(L("Oh, no.<br/>That Flowerpot, did Bebhinn give it to you instead of the money for the clothes?")); npc.Msg(Hide.Name, L("(Delivered the small Flowerpot to Malcolm.)")); npc.Msg(L("I have no idea why everyone brings me flowerpots instead of paying me in cash.<br/>Anyway, thank you.<br/>Hmm, it's weird, but I think I kind of like this flowerpot.")); npc.Msg(Hide.Name, L("(Another Flowerpot is added to Malcolm's collection.)")); } // Call PTJ method after intro if it's time to report if (npc.DoingPtjForNpc() && npc.ErinnHour(GetPersonalReportTime(npc.Player), Deadline)) { await AboutArbeit(npc); return HookResult.Break; } return HookResult.Continue; }