Ejemplo n.º 1
0
    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);
    }
Ejemplo n.º 2
0
	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;
	}
Ejemplo n.º 3
0
	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;
	}
Ejemplo n.º 4
0
    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);
    }
Ejemplo n.º 5
0
    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);
    }
Ejemplo n.º 6
0
    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);
    }
Ejemplo n.º 7
0
	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;
	}
Ejemplo n.º 8
0
	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;
	}
Ejemplo n.º 9
0
	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;
	}
Ejemplo n.º 10
0
	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;
	}
Ejemplo n.º 11
0
    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);
    }
Ejemplo n.º 12
0
	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;
	}
Ejemplo n.º 13
0
    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);
    }
Ejemplo n.º 14
0
    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);
    }
Ejemplo n.º 15
0
    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);
    }
Ejemplo n.º 16
0
	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;
	}
Ejemplo n.º 17
0
    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);
    }
Ejemplo n.º 18
0
    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);
    }
Ejemplo n.º 21
0
    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);
    }
Ejemplo n.º 22
0
	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;
	}
Ejemplo n.º 23
0
    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);
    }
Ejemplo n.º 24
0
	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;
	}
Ejemplo n.º 25
0
    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);
    }
Ejemplo n.º 26
0
	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;
	}
Ejemplo n.º 27
0
	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;
	}
Ejemplo n.º 28
0
    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);
    }
Ejemplo n.º 29
0
    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;
	}
Ejemplo n.º 31
0
    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);
    }
Ejemplo n.º 33
0
    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);
    }
Ejemplo n.º 34
0
    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);
    }
Ejemplo n.º 35
0
    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);
    }
Ejemplo n.º 36
0
	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;
	}
Ejemplo n.º 38
0
    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);
    }
Ejemplo n.º 39
0
    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);
    }
Ejemplo n.º 40
0
    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;
	}
Ejemplo n.º 42
0
	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;
	}
Ejemplo n.º 45
0
	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;
	}
Ejemplo n.º 46
0
	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;
	}
Ejemplo n.º 48
0
	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;
	}