示例#1
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;
	}
示例#2
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;
	}
示例#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);
    }
示例#4
0
    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);
    }
示例#5
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);
    }
示例#6
0
	public async Task<HookResult> TalkMalcolm(NpcScript npc, params object[] args)
	{
		if (npc.QuestActive(this.Id, "talk_malcolm1"))
		{
			npc.FinishQuest(this.Id, "talk_malcolm1");
			
			npc.Msg("So, you received the quest I sent through the Owl.<br/>Thanks for coming.<br/>I think I lost my ring in Alby Dungeon,<br/>but I can't leave, because I have no one to take care of the General Shop.");
			npc.Msg("I know it's a lot to ask, but can you go find the ring for me?<br/>The dungeon is very dangerous so I suggest talking to Trefor first about the Counterattack skill.<br/><br/>Take this pass to enter the dungeon, and please find my ring.");
			npc.GiveItem(63181); // Malcolm's Pass
			npc.GiveKeyword("skill_counter_attack");

			return HookResult.End;
		}
		else if (npc.QuestActive(this.Id, "talk_malcolm2"))
		{
			npc.FinishQuest(this.Id, "talk_malcolm2");
			npc.GiveKeyword("Clear_Tutorial_Malcolm_Ring");
			npc.RemoveItem(75058); // Malcolm's Ring

			npc.Msg("You found my Ring!<br/>You have my thanks.");

			return HookResult.Break;
		}
		
		return HookResult.Continue;
	}
示例#7
0
    public async Task <HookResult> TalkMalcolm(NpcScript npc, params object[] args)
    {
        if (npc.QuestActive(this.Id, "talk_malcolm1"))
        {
            npc.FinishQuest(this.Id, "talk_malcolm1");

            npc.Msg("So, you received the quest I sent through the Owl.<br/>Thanks for coming.<br/>I think I lost my ring in Alby Dungeon,<br/>but I can't leave, because I have no one to take care of the General Shop.");
            npc.Msg("I know it's a lot to ask, but can you go find the ring for me?<br/>The dungeon is very dangerous so I suggest talking to Trefor first about the Counterattack skill.<br/><br/>Take this pass to enter the dungeon, and please find my ring.");
            npc.GiveItem(63181);             // Malcolm's Pass
            npc.GiveKeyword("skill_counter_attack");

            return(HookResult.End);
        }
        else if (npc.QuestActive(this.Id, "kill_spider") && !npc.HasItem(63181))
        {
            npc.Msg("Have you lost the pass?<br/>Take this one to enter the dungeon, and please find my ring.");
            npc.GiveItem(63181);             // Malcolm's Pass

            return(HookResult.Break);
        }
        else if (npc.QuestActive(this.Id, "talk_malcolm2"))
        {
            npc.FinishQuest(this.Id, "talk_malcolm2");
            npc.GiveKeyword("Clear_Tutorial_Malcolm_Ring");
            npc.RemoveItem(75058);             // Malcolm's Ring

            npc.Msg("You found my Ring!<br/>You have my thanks.");

            return(HookResult.Break);
        }

        return(HookResult.Continue);
    }
	public async Task<HookResult> 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);
    }
示例#11
0
    public async Task <HookResult> TarlachBeforeKeywords(NpcScript npc, params object[] args)
    {
        var keyword = args[0] as string;

        if (keyword == "g1_dulbrau1")
        {
            if (npc.HasItem(FomorMedal))
            {
                if (npc.HasKeyword("g1_13"))
                {
                    npc.RemoveKeyword("g1_13");
                    npc.GiveKeyword("g1_14");

                    npc.Msg(L("'Goddess, lend me the moonlight...'<br/>That's what Goro said it means?<br/>The line 'Dul Brau Dairam Shanon?'"));
                    npc.Msg(L("I can't say for sure that's it's a wrong interpretation but...<br/>it's slightly different from what I remember."));
                }

                npc.Msg(L("Could I take a look at this medal?"), npc.Button(L("Yes"), "@yes"), npc.Button(L("No"), "@no"));
                if (await npc.Select() != "@yes")
                {
                    npc.Msg(L("I won't be able to teach you the meaning of this line without seeing the medal."));
                    return(HookResult.Break);
                }

                npc.RemoveItem(FomorMedal);
                npc.RemoveKeyword("g1_dulbrau1");
                npc.GiveKeyword("g1_dulbrau2");

                npc.Msg(L("Thank you, let's take a look.<br/>Hm... I see."));
                npc.Msg(L("The reason I am human during the night,<br/>is because of Eweca's moonlight and its magic power..."));
                npc.Msg(L("'Dul Brau Dairam Shanon' means,<br/>'Oh, Goddess. Please bestow me with your powers.'"));
                npc.Msg(L("This story...<br/>is straight from a Fomor who was practicing magic,<br/>so I am sure of it.<br/>..."));
                npc.Msg(L("Anyway, now you should know what this means.<br/>Fomors are coming to Erinn with the help of the Goddess.<br/>Yes, with the very power of the Goddess."));
                npc.Msg(L("Morrighan is assisting Fomors with their infiltration.<br/>Which is an unforgivable act.<br/>If you don't believe me, why don't you go ask Goro again?"));
            }
            else
            {
                npc.Msg(L("'Goddess, lend me the moonlight...'<br/>That's what Goro said it means?<br/>The line 'Dul Brau Dairam Shanon?'"));
                npc.Msg(L("I can't say for sure that's it's a wrong interpretation but...<br/>it's slightly different from what I remember."));
            }

            return(HookResult.Break);
        }
        else if (keyword == "g1_dulbrau2")
        {
            npc.Msg(L("If you don't believe me, why don't you go ask Goro again?"));

            return(HookResult.Break);
        }

        return(HookResult.Continue);
    }
示例#12
0
    public async Task <HookResult> AfterIntro(NpcScript npc, params object[] args)
    {
        if (npc.QuestActive(this.Id, "talk") && npc.HasItem(64002, 5))
        {
            npc.FinishQuest(this.Id, "talk");
            npc.RemoveItem(64002, 5);             // Iron Ore
            npc.Msg("(Missing dialog: Mine Lumps of Iron Ore)");

            return(HookResult.Break);
        }

        return(HookResult.Continue);
    }
	public async Task<HookResult> AfterIntro(NpcScript npc, params object[] args)
	{
		if (npc.QuestActive(this.Id, "talk") && npc.HasItem(64002, 5))
		{
			npc.FinishQuest(this.Id, "talk");
			npc.RemoveItem(64002, 5); // Iron Ore
			npc.Msg("(Missing dialog: Mine Lumps of Iron Ore)");

			return HookResult.Break;
		}

		return HookResult.Continue;
	}
	public async Task<HookResult> AfterIntro(NpcScript npc, params object[] args)
	{
		if (npc.QuestActive(this.Id, "talk") && npc.HasItem(64002, 10))
		{
			npc.FinishQuest(this.Id, "talk");
			npc.RemoveItem(64002, 10); // Iron Ore
			npc.Msg(L("(I give the ore to Elen)<p/>Thank you~, was it difficult to get this?<p/>Because of all the Fomors recently, nobody's going into the dungeon.<br/>Comgan's been asking people to dig here...<br/>It'll be very worrying if this situation continues.<p/>I'd appreciate someone digging on a regular basis...<br/>Ah! Don't mind my musing!"));

			return HookResult.Break;
		}

		return HookResult.Continue;
	}
示例#15
0
    public async Task <HookResult> AfterIntro(NpcScript npc, params object[] args)
    {
        if (npc.QuestActive(this.Id, "talk") && npc.HasItem(64002, 10))
        {
            npc.FinishQuest(this.Id, "talk");
            npc.RemoveItem(64002, 10);             // Iron Ore
            npc.Msg(L("(I give the ore to Elen)<p/>Thank you~, was it difficult to get this?<p/>Because of all the Fomors recently, nobody's going into the dungeon.<br/>Comgan's been asking people to dig here...<br/>It'll be very worrying if this situation continues.<p/>I'd appreciate someone digging on a regular basis...<br/>Ah! Don't mind my musing!"));

            return(HookResult.Break);
        }

        return(HookResult.Continue);
    }
示例#16
0
    public async Task <HookResult> AfterIntro(NpcScript npc, params object[] args)
    {
        if (npc.QuestActive(this.Id, "talk") && npc.HasItem(50010, 5))
        {
            npc.FinishQuest(this.Id, "talk");
            npc.RemoveItem(50010, 5);             // Potatoes
            npc.Msg("(Missing dialog: Harvest Potato)");

            return(HookResult.Break);
        }

        return(HookResult.Continue);
    }
示例#17
0
	public async Task<HookResult> AfterIntro(NpcScript npc, params object[] args)
	{
		if (npc.QuestActive(this.Id, "talk") && npc.HasItem(50009, 5))
		{
			npc.FinishQuest(this.Id, "talk");
			npc.RemoveItem(50009, 5); // Eggs
			npc.Msg("(Missing dialog: Gather Eggs)");

			return HookResult.Break;
		}

		return HookResult.Continue;
	}
示例#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("(Missing dialog: Appreciation for getting the cobweb)");

            return(HookResult.Break);
        }

        return(HookResult.Continue);
    }
示例#19
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;
	}
示例#20
0
	public async Task<HookResult> AfterIntro(NpcScript npc, params object[] args)
	{
		if (npc.QuestActive(this.Id, "talk") && npc.HasItem(50009, 5))
		{
			npc.FinishQuest(this.Id, "talk");
			npc.RemoveItem(50009, 5); // Eggs

			npc.Msg(L("Oh, thank you. That was fast.<br/>If you get hungry later on, feel free to drop by.<br/>I've got plenty of delicious food in store for you!"));

			return HookResult.Break;
		}

		return HookResult.Continue;
	}
示例#21
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;
	}
示例#22
0
    public async Task <HookResult> AfterIntro(NpcScript npc, params object[] args)
    {
        if (npc.QuestActive(this.Id, "talk") && npc.HasItem(50009, 5))
        {
            npc.FinishQuest(this.Id, "talk");
            npc.RemoveItem(50009, 5);             // Eggs

            npc.Msg(L("Oh, thank you. That was fast.<br/>If you get hungry later on, feel free to drop by.<br/>I've got plenty of delicious food in store for you!"));

            return(HookResult.Break);
        }

        return(HookResult.Continue);
    }
示例#23
0
    public async Task <HookResult> TalkConor(NpcScript npc, params object[] args)
    {
        if (npc.QuestActive(this.Id, "talk_conor") && npc.HasItem(50707))
        {
            npc.FinishQuest(this.Id, "talk_conor");

            npc.RemoveItem(50707);             // Cacao Chocolate Cake
            npc.Msg(Hide.Name, "You present the cake to Conor,<br/>You explain that its from Abbey.");
            npc.Msg("Another cake?<br/>Perhaps I should return the favor one day...");
            npc.Msg("Anyways, thank you for the cake.");

            return(HookResult.Break);
        }
        return(HookResult.Continue);
    }
示例#24
0
    public async Task <HookResult> TalkAbbey(NpcScript npc, params object[] args)
    {
        if (npc.QuestActive(this.Id, "talk_abbey") && npc.HasItem(50707))
        {
            npc.FinishQuest(this.Id, "talk_abbey");

            npc.RemoveItem(50707);             // Cacao Chocolate Cake
            npc.Msg(Hide.Name, "You present the cake to Abbey,<br/>You explain that its from Conor.");
            npc.Msg("Another cake?<br/>That's sweet of him...<br/>I feel like I should do something for him.");
            npc.Msg("Anyways, thank you for the cake.");

            return(HookResult.Break);
        }
        return(HookResult.Continue);
    }
示例#25
0
    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?"));
    }
示例#26
0
    public async Task <HookResult> TalkAbbey(NpcScript npc, params object[] args)
    {
        if (npc.QuestActive(this.Id, "talk_abbey") && npc.HasItem(50707))
        {
            npc.FinishQuest(this.Id, "talk_abbey");

            npc.RemoveItem(50707);             // Cacao Chocolate Cake
            npc.Msg(Hide.Name, "You present the cake to Abbey,<br/>You explain that its from Conor.");
            npc.Msg("Conor did...?<br/>Wow, I didn't realize he felt that way about me...");
            npc.Msg("I'm really happy to know that.<br/>Thank you for the cake.");

            return(HookResult.Break);
        }
        return(HookResult.Continue);
    }
示例#27
0
    public async Task <HookResult> TalkConor(NpcScript npc, params object[] args)
    {
        if (npc.QuestActive(this.Id, "talk_conor") && npc.HasItem(50707))
        {
            npc.FinishQuest(this.Id, "talk_conor");

            npc.RemoveItem(50707);             // Cacao Chocolate Cake
            npc.Msg(Hide.Name, "You present the cake to Conor,<br/>You explain that its from Abbey.");
            npc.Msg("Abbey?!<br/>Really? I never knew she felt that way about me...");
            npc.Msg("I'm sorry... I'm really happy.<br/>Thank you for the cake.");

            return(HookResult.Break);
        }
        return(HookResult.Continue);
    }
示例#28
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> 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);
    }
示例#30
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;
	}
示例#31
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);
    }
示例#32
0
    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);
    }
示例#33
0
    public async Task <HookResult> TalkFerghus(NpcScript npc, params object[] args)
    {
        if (npc.Player.QuestActive(this.Id, "talk_ferghus"))
        {
            npc.Player.FinishQuestObjective(this.Id, "talk_ferghus");

            npc.Msg("<npcportrait name='ferghus_fake'/>They're gonna start calling me Ferghus the Trend King. These<br/>wings are going to change the world, But that's just a shake of<br/>the hammer for old Ferghus.");
            npc.Msg("<npcportrait name='ferghus_fake'/>I deserve a long night of drinking for this one.");
            npc.Msg("<npcportrait name='ferghus_fake'/>I call these Ferghus's Amazing Wings. I like names to be simple,<br/>you know? These things are going to be flying off the shelves.<br/>That is, if I can get the materials I need to get them made...");
            npc.Msg("<npcportrait name='ferghus_fake'/>Do you think you could help an old blacksmith out? I've got my<br/>hands full here.");
            npc.Msg(Hide.Both, "(Ask him what he needs.)");
            npc.Msg("<npcportrait name='ferghus_fake'/>Paper! Can you believe it? I swear I'd bought about 100 reams<br/>of the stuff, but I woke up a couple of days ago in a haze and I<br/>have no idea what I did with it.");
            npc.Msg("<npcportrait name='ferghus_fake'/>Hopefully Malcolm still has some left over at the General Store...");
            npc.Msg(Hide.Both, "(You try to figure out why he would need that much paper for<br/>wings, but he interrupts your train of thought.");
            npc.Msg("<npcportrait name='ferghus_fake'/>Oh, I see the burning passion in your eyes, You can see that we're<br/>on the cusp of something great here! Just go get me 50 sheets<br/>of paper, and I'll make you something worth talking about.");

            return(HookResult.End);
        }

        else if (npc.QuestActive(this.Id, "talk_ferghus2") && npc.HasItem(64018, 50))
        {
            npc.FinishQuest(this.Id, "talk_ferghus2");
            npc.RemoveItem(64018, 50);             // Paper
            npc.Msg("<npcportrait name='ferghus_fake'/>It's happening! My masterpiece is coming right up!");
            npc.Msg(Hide.Both, "...");
            npc.Msg("<npcportrait name='ferghus_fake'/>All done! Put those on!");

            npc.Player.GiveItem(19208);             // Ferghus's Amazing Wings (Expired after 12 hours in official)
            npc.Player.Notice("You received Ferghus's Amazing Wings.");

            return(HookResult.End);
        }

        else if (npc.QuestActive(this.Id, "talk_ferghus3") && npc.Player.HasEquipped("/action_butterfly_big_type/cloth/not_enchantable/not_dyeable/expiring/"))
        {
            npc.FinishQuest(this.Id, "talk_ferghus3");
            npc.Msg(Hide.Both, "(The wings look like they'd fall apart in an instant and the<br/>harness is downright painful, Ferghus notices you shifting<br/>uncomfortably).");
            npc.Msg("<npcportrait name='ferghus_fake'/>Don't you like them? It's just a prototype, you know? I know<br/>they aren't the sturdiest things in the world, but I think they<br/>have a certain charm.");
            npc.Msg("<npcportrait name='ferghus_fake'/>I guess I'll have to go back to the drawing board for now...<br/>Why don't you take a look around, see if there's anything you<br/>want to buy? Maybe I can do some repairs for you.");
            npc.Msg(Hide.Both, "(The wings seem to be simultaneously wrenching your neck out<br/>of place and compressing your spine. You'd better get out of here.)");

            return(HookResult.End);
        }

        return(HookResult.Continue);
    }
    public async Task <HookResult> 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);
    }
示例#35
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);
    }
	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;
	}
示例#37
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;
	}
示例#38
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);
    }
示例#39
0
    public async Task <HookResult> TarlachBeforeKeywords(NpcScript npc, params object[] args)
    {
        var keyword = args[0] as string;

        if (keyword == "g1_mores_gwydion")
        {
            if (npc.HasKeyword("g1_19"))
            {
                npc.RemoveKeyword("g1_19");
                npc.GiveKeyword("g1_20");

                npc.Msg(L("Mores Gwydion..."));
                npc.Msg(L("...Yes, he's the author of that book.<br/>He's my mentor who's taught me<br/>...And also a Wizard who'd saved the world."));
                npc.Msg(L("I had always thought that he had passed away but...<br/>he's apparently alive and has sided with the Fomors."));
                npc.Msg(L("...Anyhow, give me the translated book.<br/>I would like to take a look at it."), npc.Button(L("Sure"), "@yes"), npc.Button(L("No"), "@no"));
            }
            else if (npc.HasKeyword("g1_20"))
            {
                npc.Msg(L("Give me the translated book.<br/>I would like to take a look at it."), npc.Button(L("Sure"), "@yes"), npc.Button(L("No"), "@no"));
            }

            if (await npc.Select() != "@yes" || !npc.HasItem(BookOfRevenge))
            {
                npc.Msg(L("Don't you have it with you?"));
                return(HookResult.Break);
            }

            npc.RemoveItem(BookOfRevenge);
            npc.RemoveKeyword("g1_mores_gwydion");
            npc.GiveKeyword("g1_memo_of_lost_thing");

            npc.Msg(Hide.Name, L("(Tarlach flipped through the book.)"));
            npc.Msg(L("Just what I'd tought...<br/>Master had faked his own death<br/>for some reason and now he's helping the Fomors."));
            npc.Msg(L("This must be what Kristell was talking about."));
            npc.Msg(L("'...Okay, I admit it.<br/>Perhaps I didn't lose the token but<br/>I wanted to throw it away..."), npc.Image("g1_ch18_book"));
            npc.Msg(L("Hmm... apparently, Master was mulling over something<br/>after losing some item...<p/>I wonder what it was..."));
            npc.Msg(L("...!<p/>Dunbarton's Town Office<br/>collects lost items and returns them to their rightful owners.<br/>You might be able to find a clue if you<br/>can find what it is that Mores had lost."));

            return(HookResult.Break);
        }

        return(HookResult.Continue);
    }
示例#40
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);
    }
示例#41
0
    public async Task <HookResult> RabIntro(NpcScript npc, params object[] args)
    {
        if (npc.QuestActive(this.Id, "talk_rab") && npc.HasItem(DogFood))
        {
            var itemData = AuraData.ItemDb.Find(DogFood);
            Send.Notice(npc.Player, string.Format(L("You have given {0} to Fleta's Rab."), itemData.Name));
            npc.RemoveItem(DogFood);
            npc.Msg(Hide.Both, "(Rab seems happy)");
            npc.Msg("Bark! Bark! Bark!");
            npc.Msg(Hide.Both, "(Rab's devouring the food)");
            npc.Msg("Slurp slurp...");
            npc.Msg(Hide.Both, "(His dish is totally clearned out)");
            npc.Msg("Ruff Ruff!");
            npc.FinishQuest(this.Id, "talk_rab");

            return(HookResult.End);
        }

        return(HookResult.Continue);
    }
	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;
	}
示例#43
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);
    }
	public async Task<HookResult> AfterIntro(NpcScript npc, params object[] args)
	{
		if (npc.QuestActive(this.Id, "talk"))
		{
			npc.FinishQuest(this.Id, "talk");

			npc.AcquireItem(40022); // Gathering Axe
			npc.Msg("(Missing dialog: Explanation on getting firewood");

			return HookResult.Break;
		}
		else if (npc.QuestActive(this.Id, "deliver") && npc.HasItem(63002, 6))
		{
			npc.FinishQuest(this.Id, "deliver");

			npc.RemoveItem(63002, 6);
			npc.Msg("(Missing dialog: Appreciation for getting firewood");

			return HookResult.Break;
		}

		return HookResult.Continue;
	}
示例#45
0
    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);
    }
示例#46
0
    public async Task <HookResult> AfterIntro(NpcScript npc, params object[] args)
    {
        if (npc.QuestActive(this.Id, "talk"))
        {
            npc.FinishQuest(this.Id, "talk");

            npc.AcquireItem(40022);             // Gathering Axe
            npc.Msg("(Missing dialog: Explanation on getting firewood");

            return(HookResult.Break);
        }
        else if (npc.QuestActive(this.Id, "deliver") && npc.HasItem(63002, 6))
        {
            npc.FinishQuest(this.Id, "deliver");

            npc.RemoveItem(63002, 6);
            npc.Msg("(Missing dialog: Appreciation for getting firewood");

            return(HookResult.Break);
        }

        return(HookResult.Continue);
    }
	public async Task<HookResult> 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;
	}
示例#48
0
	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?"));
	}
示例#49
0
	public async Task<HookResult> TarlachBeforeKeywords(NpcScript npc, params object[] args)
	{
		var keyword = args[0] as string;

		if (keyword == "g1_dulbrau1")
		{
			if (npc.HasItem(FomorMedal))
			{
				if (npc.HasKeyword("g1_13"))
				{
					npc.RemoveKeyword("g1_13");
					npc.GiveKeyword("g1_14");

					npc.Msg(L("'Goddess, lend me the moonlight...'<br/>That's what Goro said it means?<br/>The line 'Dul Brau Dairam Shanon?'"));
					npc.Msg(L("I can't say for sure that's it's a wrong interpretation but...<br/>it's slightly different from what I remember."));
				}

				npc.Msg(L("Could I take a look at this medal?"), npc.Button(L("Yes"), "@yes"), npc.Button(L("No"), "@no"));
				if (await npc.Select() != "@yes")
				{
					npc.Msg(L("I won't be able to teach you the meaning of this line without seeing the medal."));
					return HookResult.Break;
				}

				npc.RemoveItem(FomorMedal);
				npc.RemoveKeyword("g1_dulbrau1");
				npc.GiveKeyword("g1_dulbrau2");

				npc.Msg(L("Thank you, let's take a look.<br/>Hm... I see."));
				npc.Msg(L("The reason I am human during the night,<br/>is because of Eweca's moonlight and its magic power..."));
				npc.Msg(L("'Dul Brau Dairam Shanon' means,<br/>'Oh, Goddess. Please bestow me with your powers.'"));
				npc.Msg(L("This story...<br/>is straight from a Fomor who was practicing magic,<br/>so I am sure of it.<br/>..."));
				npc.Msg(L("Anyway, now you should know what this means.<br/>Fomors are coming to Erinn with the help of the Goddess.<br/>Yes, with the very power of the Goddess."));
				npc.Msg(L("Morrighan is assisting Fomors with their infiltration.<br/>Which is an unforgivable act.<br/>If you don't believe me, why don't you go ask Goro again?"));
			}
			else
			{
				npc.Msg(L("'Goddess, lend me the moonlight...'<br/>That's what Goro said it means?<br/>The line 'Dul Brau Dairam Shanon?'"));
				npc.Msg(L("I can't say for sure that's it's a wrong interpretation but...<br/>it's slightly different from what I remember."));
			}

			return HookResult.Break;
		}
		else if (keyword == "g1_dulbrau2")
		{
			npc.Msg(L("If you don't believe me, why don't you go ask Goro again?"));

			return HookResult.Break;
		}

		return HookResult.Continue;
	}
示例#50
0
文件: school_ranald.cs 项目: Rai/aura
	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;
	}
示例#51
0
	public async Task<HookResult> DougalBeforeKeywords(NpcScript npc, params object[] args)
	{
		var keyword = args[0] as string;

		if (keyword == "g1_revive_of_glasgavelen")
		{
			if (npc.HasKeyword("g1_37"))
			{
				npc.RemoveKeyword("g1_37");
				npc.GiveKeyword("g1_37_2");

				npc.Msg(L("There's a sudden change in the sky.<br/>What's happened?"));
				npc.Msg(L("...<p/>You finally rescued the Goddess.<br/>Congratulations."));
				npc.Msg(Hide.Name, L("(You tell Dougal what you heard from the Goddess.)"));
				npc.Msg(L("...<p/>The Goddess told you that?<br/>But why are you telling me this?<p/>...<p/>...<p/>Ahh. I see.<p/>Heh. Hahaha.<p/>This explains quite a few things."));
				npc.Msg(L("I didn't realize that the 'Added Soul Effect'<br/>that I had told you in order to make you stay here<br/>could have the same effect on me."));
				npc.Msg(L("But you already seem to have guessed it.<br/>No, you must already know about it since that is essentially why you came here,<br/>to tell me this, right?"));
				npc.Msg(L("Right...<br/>I'm also a soul from another world just like yourself.<br/>I'm probably known to<br/>your people as Glas Ghaibhleann."));
				npc.Msg(L("I came here to reclaim my body<br/>that was summoned by the people<br/>of this world against my will,"));
				npc.Msg(L("but I ended up in the body<br/>of the last remaining human in this world.<br/>My host body is weak.<br/>I cannot even walk properly in this weak Human form."));
				npc.Msg(L("Now that you have learned all about me,<br/>I will proceed to pursue my original goal.<br/>The Goddess probably sent you to me fully<br/>aware of what my intentions are."));
				npc.Msg(L("My goal?<br/>It's obvious, isn't it? I wish to reclaim the freedom of my real body.<br/>I need to free my body into the world I originally belonged to<br/>by breaking away from these shackles."));
				npc.Msg(L("The Goddess Pendant is a key into another world.<br/>If you want, I can inscribe the pattern into<br/>the pendant so it will move you to my body, which is calling me."));
				npc.Msg(L("However, my body that's being<br/>controlled by the summoner would be powerful enough to blow away mere humans.<br/>I'm not sure if I should trust you with this task."));
				npc.Msg(L("Can you make me a promise?<br/>Can you promise you will defeat my body?<br/>And return it to where it belongs?"), npc.Button(L("Yes"), "@yes"), npc.Button(L("No"), "@no"));
			}
			else if (npc.HasKeyword("g1_37_2"))
			{
				npc.Msg(L("Can you promise you will defeat my body?<br/>And return it to where it belongs?"), npc.Button(L("Yes"), "@yes"), npc.Button(L("No"), "@no"));
			}
			else if (npc.HasKeyword("g1_38"))
			{
				if (!npc.HasItem(PendantOfTheGoddessBind))
					npc.GiveItem(PendantOfTheGoddessBind);

				npc.Msg(L("Go to Albey Dungeon and offer the pendant there.<br/>If you succeed,<br/>it will only be a matter time before I free myself from being an Added Soul."));

				return HookResult.Break;
			}
			else
			{
				return HookResult.Continue;
			}

			if (await npc.Select() != "@yes")
			{
				npc.Msg(L("Oh..."));
				return HookResult.Break;
			}
			else if (!npc.HasItem(PendantOfTheGoddess))
			{
				npc.Msg(L("You don't have the pendant on you?"));
				return HookResult.Break;
			}

			npc.RemoveKeyword("g1_37");
			npc.RemoveKeyword("g1_37_2");
			npc.GiveKeyword("g1_38");

			npc.RemoveItem(PendantOfTheGoddess);
			npc.GiveItem(PendantOfTheGoddessBind);
			npc.GiveItem(Item.CreateWarpScroll(63009, "TirNaNog_Dungeon"));

			npc.Msg(L("Okay, I'll trust you.<br/>I guess it might not be a bad idea to trust you since<br/>you rescued the Goddess."));
			npc.Msg(L("Go to Albey Dungeon and offer this pendant there.<br/>You know how to use the Red Wings of a Goddess, right?<br/>If you succeed,<br/>it will only be a matter time before I free myself from being an Added Soul."));
		}

		return HookResult.Continue;
	}
	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;
	}
示例#53
0
	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.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;
	}