コード例 #1
0
ファイル: grocery_caitin.cs プロジェクト: xKamuna/aura-1
    public async Task <HookResult> AfterIntro(NpcScript npc, params object[] args)
    {
        // Handle receiving of Anthology from some of her PTJ quests
        int id;

        if (npc.QuestActive(id = 501405, "ptj3") || npc.QuestActive(id = 501435, "ptj3") || npc.QuestActive(id = 501465, "ptj3"))
        {
            if (!npc.Player.Inventory.Has(Anthology))
            {
                return(HookResult.Continue);
            }

            npc.Player.Inventory.Remove(Anthology, 1);
            npc.FinishQuest(id, "ptj3");

            npc.Notice(L("You have given Anthology to be Delivered to Caitin."));
        }

        // Call PTJ method after intro if it's time to report
        if (npc.DoingPtjForNpc() && npc.ErinnHour(Report, Deadline))
        {
            await AboutArbeit(npc);

            return(HookResult.Break);
        }

        return(HookResult.Continue);
    }
コード例 #2
0
ファイル: stope_sion.cs プロジェクト: aura-project/aura
	public async Task<HookResult> AfterIntro(NpcScript npc, params object[] args)
	{
		// Handle delivery of Iron Ore from some of his PTJ quests
		int id, itemCount = -1;
		if (npc.QuestActive(id = 514602, "ptj2"))
			itemCount = 5;
		else if (npc.QuestActive(id = 514632, "ptj2"))
			itemCount = 7;
		else if (npc.QuestActive(id = 514662, "ptj2"))
			itemCount = 10;

		if (itemCount != -1)
		{
			if (!npc.Player.Inventory.Has(64002, itemCount)) // Iron Ore
				return HookResult.Continue;

			npc.FinishQuest(id, "ptj2");

			npc.Player.Inventory.Remove(64002, itemCount);
			npc.Notice(L("You have given Iron Ore to Sion."));
			npc.Msg(string.Format(LN("(Gave Sion {0} Iron Ore)", "(Gave Sion {0} Iron Ore)", itemCount), itemCount));
		}

		// Call PTJ method after intro if it's time to report
		if (npc.DoingPtjForNpc() && npc.ErinnHour(Report, Deadline))
		{
			await AboutArbeit(npc);
			return HookResult.Break;
		}

		return HookResult.Continue;
	}
コード例 #3
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;
	}
コード例 #4
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);
    }
コード例 #5
0
	public async Task<HookResult> TalkDuncan(NpcScript npc, params object[] args)
	{
		if(npc.QuestActive(this.Id, "talk_duncan"))
		{
			npc.FinishQuest(this.Id, "talk_duncan");
			
			Send.Effect(npc.NPC, Effect.ScreenFlash, 3000, 0);
			
			// Remove Eiry
			var eiry = npc.Player.Inventory.Items.FirstOrDefault(item => item.EgoInfo.Race == EgoRace.EirySword);
			if(eiry != null)
				npc.Player.Inventory.Remove(eiry);
			
			// Give sword
			npc.GiveItem(40015);
			npc.Notice("Received Fluted Short Sword from Duncan.");
			
			npc.Msg("Welcome to Tir Chonaill.");
			npc.Msg("Oh, you are finally here, <username/>.<br/>I've heard a lot about you from the villagers.<br/>You've leveled up quite a lot.");
			npc.Msg("This may be a small town,<br/>but Tir Chonaill has long boasted a tradition<br/>of growing resolute and sturdy warriors<br/>that don't have to worry about the kingdom's control.");
			npc.Msg("You have now completed all our missions<br/>and have earned the right to join the rank of Tir Chonaill's warriors.<br/>Well done, and congratulations.");
			npc.Msg("Wherever you go, don't forget who you are and what you have become.<br/>Since you have become strong enough to survive alone,<br/>your ego guide must have already parted ways with you.<br/>There is no one to look after you now, so befriend as many people as you can.");
			npc.Msg("If you have anything else to ask, let me know.");
			await npc.Conversation();
			
			npc.Close2();
			
			Cutscene.Play("etc_event_ego_goodbye", npc.Player);
			
			return HookResult.Break;
		}
		
		return HookResult.Continue;
	}
コード例 #6
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);
    }
コード例 #7
0
	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;
	}
コード例 #8
0
    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);
    }
コード例 #9
0
ファイル: 200007_go_to_school.cs プロジェクト: hzdlive/aura-1
	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;
	}
コード例 #10
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);
    }
コード例 #11
0
ファイル: 010_book_of_evil_1.cs プロジェクト: xKamuna/aura-1
    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?"));
    }
コード例 #12
0
    public async Task <HookResult> SeumasAfterIntro(NpcScript npc, params object[] args)
    {
        if (npc.QuestActive(this.Id, "talk_seumas"))
        {
            npc.FinishQuest(this.Id, "talk_seumas");

            npc.GiveItem(BookOfRevenge3);
            npc.Notice(L("You have received The Book of Revenge, Vol. III from Seumas."));

            npc.Msg(L("Oh, that was fast, <username/>...<br/>Did Sion like it? Hah... Thank you...<br/>Here...is the...book...<br/>Hope it would be helpful..."));

            return(HookResult.Break);
        }

        return(HookResult.Continue);
    }
コード例 #13
0
    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);
    }
コード例 #14
0
ファイル: adventurerassn_eavan.cs プロジェクト: trueever/aura
    public async Task <HookResult> ClientAfterIntro(NpcScript npc, params object[] args)
    {
        if (!npc.QuestActive(this.Id, "ptj1"))
        {
            return(HookResult.Continue);
        }

        npc.FinishQuest(this.Id, "ptj1");

        npc.Player.GiveItem(ItemId);
        npc.Notice(LReceivedNotice);

        ClientAfterIntroDialogue(npc);

        return(HookResult.Break);
    }
コード例 #15
0
    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);
    }
コード例 #16
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);
    }
コード例 #17
0
ファイル: grocery_glenis.cs プロジェクト: xKamuna/aura-1
    private async Task <HookResult> RecipientAfterIntro(NpcScript npc, params object[] args)
    {
        if (!npc.QuestActive(this.Id, "ptj2"))
        {
            return(HookResult.Continue);
        }

        npc.FinishQuest(this.Id, "ptj2");

        npc.Player.RemoveItem(ItemId, 1);
        npc.Notice(LItemNotice);

        npc.Msg(L("Whose bread is that?<br/>Ah Aeira's, is it?<br/>It looks very appetizing. Thank you very much for bringing this."));
        npc.Msg(Hide.Name, L("(Delivered a Fresh-baked Bread to Stewart.)"));

        return(HookResult.Break);
    }
コード例 #18
0
ファイル: grocery_glenis.cs プロジェクト: xKamuna/aura-1
    private async Task <HookResult> RecipientAfterIntro(NpcScript npc, params object[] args)
    {
        if (!npc.QuestActive(this.Id, "ptj2"))
        {
            return(HookResult.Continue);
        }

        npc.FinishQuest(this.Id, "ptj2");

        npc.Player.RemoveItem(ItemId, 1);
        npc.Notice(L("You have given Fresh-baked Bread to be Delivered to Stewart."));

        npc.Msg(L("Bread from Glenis?<br/>Thank you very much."));
        npc.Msg(Hide.Name, L("(Delivered a Fresh-baked Bread to Stewart.)"));

        return(HookResult.Break);
    }
コード例 #19
0
    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);
    }
コード例 #20
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;
	}
コード例 #21
0
ファイル: stope_sion.cs プロジェクト: xKamuna/aura-1
    public async Task <HookResult> AfterIntro(NpcScript npc, params object[] args)
    {
        // Handle delivery of Iron Ore from some of his PTJ quests
        int id, itemCount = -1;

        if (npc.QuestActive(id = 514602, "ptj2"))
        {
            itemCount = 5;
        }
        else if (npc.QuestActive(id = 514632, "ptj2"))
        {
            itemCount = 7;
        }
        else if (npc.QuestActive(id = 514662, "ptj2"))
        {
            itemCount = 10;
        }

        if (itemCount != -1)
        {
            if (!npc.Player.Inventory.Has(64002, itemCount))             // Iron Ore
            {
                return(HookResult.Continue);
            }

            npc.FinishQuest(id, "ptj2");

            npc.Player.Inventory.Remove(64002, itemCount);
            npc.Notice(L("You have given Iron Ore to Sion."));
            npc.Msg(string.Format(LN("(Gave Sion {0} Iron Ore)", "(Gave Sion {0} Iron Ore)", itemCount), itemCount));
        }

        // Call PTJ method after intro if it's time to report
        if (npc.DoingPtjForNpc() && npc.ErinnHour(Report, Deadline))
        {
            await AboutArbeit(npc);

            return(HookResult.Break);
        }

        return(HookResult.Continue);
    }
コード例 #22
0
    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);
    }
コード例 #23
0
ファイル: 014_wizards_note.cs プロジェクト: aura-project/aura
	public async Task<HookResult> TarlachAfterIntro(NpcScript npc, params object[] args)
	{
		if (npc.QuestActive(this.Id, "get_book"))
		{
			npc.FinishQuest(this.Id, "get_book");

			npc.GiveItem(BookOfRevenge);
			npc.Notice(L("You have received the Book of Revenge from Tarlach."));

			npc.Msg(L("Thank you for sharing the story of my mentor with me, <username/>..."));
			npc.Msg(L("...<p/>Um... are you telling me that Chief Duncan of Tir Chonaill<br/>wants to...borrow the master's book...?"));
			npc.Msg(L("...I guess it should be okay."));
			npc.Msg(L("He is a wise old man who has been through a lot, and<br/>he may be able to catch some things that we may have missed..."));
			npc.Msg(L("Please give this copy to the Chief for me..."));

			return HookResult.Break;
		}

		return HookResult.Continue;
	}
コード例 #24
0
ファイル: 010_book_of_evil_1.cs プロジェクト: xKamuna/aura-1
    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);
    }
コード例 #25
0
    public async Task <HookResult> TarlachAfterIntro(NpcScript npc, params object[] args)
    {
        if (npc.QuestActive(this.Id, "get_book"))
        {
            npc.FinishQuest(this.Id, "get_book");

            npc.GiveItem(BookOfRevenge);
            npc.Notice(L("You have received the Book of Revenge from Tarlach."));

            npc.Msg(L("Thank you for sharing the story of my mentor with me, <username/>..."));
            npc.Msg(L("...<p/>Um... are you telling me that Chief Duncan of Tir Chonaill<br/>wants to...borrow the master's book...?"));
            npc.Msg(L("...I guess it should be okay."));
            npc.Msg(L("He is a wise old man who has been through a lot, and<br/>he may be able to catch some things that we may have missed..."));
            npc.Msg(L("Please give this copy to the Chief for me..."));

            return(HookResult.Break);
        }

        return(HookResult.Continue);
    }
コード例 #26
0
    public async Task <HookResult> AfterIntro(NpcScript npc, params object[] args)
    {
        if (!npc.QuestActive(this.Id, "ptj"))
        {
            return(HookResult.Continue);
        }

        if (!npc.Player.Inventory.Has(ItemId))
        {
            return(HookResult.Continue);
        }

        npc.Player.Inventory.Remove(ItemId, 1);
        npc.Notice(LGivenNotice);
        npc.FinishQuest(this.Id, "ptj");

        await this.OnFinish(npc);

        return(HookResult.Break);
    }
コード例 #27
0
	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;
	}
コード例 #28
0
    /// <summary>Precondition: All protected array properties declared in this class has a size greater than 1.</summary>
    /// <exception cref="System.IndexOutOfRangeException">Thrown if precondition is not met.</exception>
    public async Task <HookResult> RecipientAfterIntro(NpcScript npc, params object[] args)
    {
        if (!npc.QuestActive(this.Id, "ptj2"))
        {
            return(HookResult.Continue);
        }

        if (!npc.Player.Inventory.Has(ItemId))
        {
            return(HookResult.Continue);
        }

        npc.FinishQuest(this.Id, "ptj2");

        npc.Player.RemoveItem(ItemId, 1);
        npc.Notice(LItemNotice[1]);

        AfterIntroDialogue[1](npc);

        return(HookResult.Break);
    }
コード例 #29
0
    public async Task <HookResult> TalkDuncan(NpcScript npc, params object[] args)
    {
        if (npc.QuestActive(this.Id, "talk_duncan"))
        {
            npc.FinishQuest(this.Id, "talk_duncan");

            Send.Effect(npc.NPC, Effect.ScreenFlash, 3000, 0);

            // Remove Eiry
            var eiry = npc.Player.Inventory.Items.FirstOrDefault(item => item.EgoInfo.Race == EgoRace.EirySword);
            if (eiry != null)
            {
                npc.Player.Inventory.Remove(eiry);
            }

            // Give sword
            npc.GiveItem(40015);
            npc.Notice("Received Fluted Short Sword from Duncan.");

            npc.Msg("Welcome to Tir Chonaill.");
            npc.Msg("Oh, you are finally here, <username/>.<br/>I've heard a lot about you from the villagers.<br/>You've leveled up quite a lot.");
            npc.Msg("This may be a small town,<br/>but Tir Chonaill has long boasted a tradition<br/>of growing resolute and sturdy warriors<br/>that don't have to worry about the kingdom's control.");
            npc.Msg("You have now completed all our missions<br/>and have earned the right to join the rank of Tir Chonaill's warriors.<br/>Well done, and congratulations.");
            npc.Msg("Wherever you go, don't forget who you are and what you have become.<br/>Since you have become strong enough to survive alone,<br/>your ego guide must have already parted ways with you.<br/>There is no one to look after you now, so befriend as many people as you can.");
            npc.Msg("If you have anything else to ask, let me know.");
            await npc.Conversation();

            npc.Close2();

            var cutscene = new Cutscene("etc_event_ego_goodbye", npc.Player);
            cutscene.AddActor("me", npc.Player);
            cutscene.Play();

            return(HookResult.Break);
        }

        return(HookResult.Continue);
    }
コード例 #30
0
    public async Task <HookResult> ClientAfterIntro(NpcScript npc, params object[] args)
    {
        if (!npc.QuestActive(this.Id, "ptj1"))
        {
            return(HookResult.Continue);
        }

        npc.FinishQuest(this.Id, "ptj1");

        if (!IsTwoPart)
        {
            npc.Player.RemoveItem(ItemId, 1);
        }
        else
        {
            npc.Player.GiveItem(ItemId);
        }
        npc.Notice(LItemNotice[0]);

        AfterIntroDialogue[0](npc);

        return(HookResult.Break);
    }
コード例 #31
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);
    }
コード例 #32
0
ファイル: grocery_caitin.cs プロジェクト: aura-project/aura
	public async Task<HookResult> AfterIntro(NpcScript npc, params object[] args)
	{
		// Handle receiving of Anthology from some of her PTJ quests
		int id;
		if (npc.QuestActive(id = 501405, "ptj3") || npc.QuestActive(id = 501435, "ptj3") || npc.QuestActive(id = 501465, "ptj3"))
		{
			if (!npc.Player.Inventory.Has(Anthology))
				return HookResult.Continue;

			npc.Player.Inventory.Remove(Anthology, 1);
			npc.FinishQuest(id, "ptj3");

			npc.Notice(L("You have given Anthology to be Delivered to Caitin."));
		}

		// Call PTJ method after intro if it's time to report
		if (npc.DoingPtjForNpc() && npc.ErinnHour(Report, Deadline))
		{
			await AboutArbeit(npc);
			return HookResult.Break;
		}

		return HookResult.Continue;
	}
コード例 #33
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(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);
    }
コード例 #34
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(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;
	}
コード例 #35
0
ファイル: grocery_glenis.cs プロジェクト: aura-project/aura
	private async Task<HookResult> RecipientAfterIntro(NpcScript npc, params object[] args)
	{
		if (!npc.QuestActive(this.Id, "ptj2"))
			return HookResult.Continue;

		npc.FinishQuest(this.Id, "ptj2");

		npc.Player.RemoveItem(ItemId, 1);
		npc.Notice(LItemNotice);

		npc.Msg(L("Whose bread is that?<br/>Ah Aeira's, is it?<br/>It looks very appetizing. Thank you very much for bringing this."));
		npc.Msg(Hide.Name, L("(Delivered a Fresh-baked Bread to Stewart.)"));

		return HookResult.Break;
	}
コード例 #36
0
ファイル: general_walter.cs プロジェクト: aura-project/aura
	public async Task<HookResult> GetAfterIntro(NpcScript npc, params object[] args)
	{
		if (!npc.QuestActive(this.Id, "ptj1"))
			return HookResult.Continue;

		npc.Player.GiveItem(ItemId);
		npc.FinishQuest(this.Id, "ptj1");
		npc.Notice(LGetItemNotice);

		await this.GetOnFinish(npc);

		return HookResult.Break;
	}
コード例 #37
0
ファイル: grocery_glenis.cs プロジェクト: aura-project/aura
	private async Task<HookResult> RecipientAfterIntro(NpcScript npc, params object[] args)
	{
		if (!npc.QuestActive(this.Id, "ptj2"))
			return HookResult.Continue;

		npc.FinishQuest(this.Id, "ptj2");

		npc.Player.RemoveItem(ItemId, 1);
		npc.Notice(L("You have given Fresh-baked Bread to be Delivered to Stewart."));

		npc.Msg(L("Bread from Glenis?<br/>Thank you very much."));
		npc.Msg(Hide.Name, L("(Delivered a Fresh-baked Bread to Stewart.)"));

		return HookResult.Break;
	}
コード例 #38
0
ファイル: 014_wizards_note.cs プロジェクト: aura-project/aura
	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;
	}
コード例 #39
0
	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;
	}
コード例 #40
0
ファイル: general_malcolm.cs プロジェクト: aura-project/aura
	public async Task<HookResult> BebhinnAfterIntro(NpcScript npc, params object[] args)
	{
		if (npc.QuestActive(this.Id, "ptj1"))
		{
			if (!npc.Player.Inventory.Has(Garment))
				return HookResult.Continue;

			npc.FinishQuest(this.Id, "ptj1");

			npc.Player.RemoveItem(Garment, 1);
			npc.Notice(L("You have given Garment to be Delivered to Bebhinn."));

			npc.Msg(L("Wow, so the clothes I ordered have finally arrived.<br/>Thank you so much! Wow, I really like this style!"));
			npc.Msg(Hide.Name, L("(Delivered the clothes to Bebhinn.)"));
			npc.Msg(L("Yes? Payment?<br/>What? 1500G???!!!!!<br/>So, Malcolm's done it again. That guy always relies on others to do his dirty work!<p/>Anyway, I can't pay you. I don't have it! It's the bank that has money, not the banker!<br/>Tell him to come get it himself!"));
			npc.Msg(Hide.Name, L("(Intimidated by Bebhinn's rant, you failed to receive any payment for the clothes.)"));

			return HookResult.Break;
		}
		else if (npc.QuestActive(this.Id, "ptj2"))
		{
			npc.FinishQuest(this.Id, "ptj2");

			npc.Player.GiveItem(Flowerpot, 1);
			npc.Notice(L("You have received Flowerpot to be Delivered from Bebhinn."));

			npc.Msg(L("Oh, give me a break! Go tell Malcolm to put it on my bill and I'll pay him later."));
			npc.Msg(Hide.Name, L("(Keep asking Bebhinn for payment, saying you won't be able to get a reward otherwise.)"));
			npc.Msg(L("OK, OK, I know it's not your fault after all.<br/>Stupid Malcolm, he should have come himself.<p/>But, I don't have the money with me now.<br/>So, can you take this to him instead and make sure to tell him this?<br/>I'll definitely pay the bill later."));
			npc.Msg(Hide.Name, L("(Received a small Flowerpot from Bebhinn.)"));

			return HookResult.Break;
		}
		else return HookResult.Continue;
	}
コード例 #41
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;
	}
コード例 #42
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;
	}
コード例 #43
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?"));
	}
コード例 #44
0
ファイル: grocery_glenis.cs プロジェクト: aura-project/aura
	public virtual async Task<HookResult> ClientAfterIntro(NpcScript npc, params object[] args)
	{
		if (!npc.QuestActive(this.Id, "ptj1"))
			return HookResult.Continue;

		npc.FinishQuest(this.Id, "ptj1");

		npc.Player.RemoveItem(ItemId, 1);
		npc.Notice(LItemNotice);

		AfterIntroDialogue(npc);

		return HookResult.Break;
	}
コード例 #45
0
	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;
	}
コード例 #46
0
ファイル: bookstore_aeira.cs プロジェクト: aura-project/aura
	/// <summary>Precondition: All protected array properties declared in this class has a size greater than 1.</summary>
	/// <exception cref="System.IndexOutOfRangeException">Thrown if precondition is not met.</exception>
	public async Task<HookResult> RecipientAfterIntro(NpcScript npc, params object[] args)
	{
		if (!npc.QuestActive(this.Id, "ptj2"))
			return HookResult.Continue;

		if (!npc.Player.Inventory.Has(ItemId))
			return HookResult.Continue;

		npc.FinishQuest(this.Id, "ptj2");

		npc.Player.RemoveItem(ItemId, 1);
		npc.Notice(LItemNotice[1]);

		AfterIntroDialogue[1](npc);

		return HookResult.Break;
	}
コード例 #47
0
	public async Task<HookResult> SeumasAfterIntro(NpcScript npc, params object[] args)
	{
		if (npc.QuestActive(this.Id, "talk_seumas"))
		{
			npc.FinishQuest(this.Id, "talk_seumas");

			npc.GiveItem(BookOfRevenge3);
			npc.Notice(L("You have received The Book of Revenge, Vol. III from Seumas."));

			npc.Msg(L("Oh, that was fast, <username/>...<br/>Did Sion like it? Hah... Thank you...<br/>Here...is the...book...<br/>Hope it would be helpful..."));

			return HookResult.Break;
		}

		return HookResult.Continue;
	}
コード例 #48
0
	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;
	}
コード例 #49
0
ファイル: wepshop_nerys.cs プロジェクト: aura-project/aura
	public async Task<HookResult> AfterIntro(NpcScript npc, params object[] args)
	{
		if (!npc.QuestActive(this.Id, "ptj"))
			return HookResult.Continue;

		if (!npc.Player.Inventory.Has(ItemId))
			return HookResult.Continue;

		npc.Player.Inventory.Remove(ItemId, 1);
		npc.Notice(LGivenNotice);
		npc.FinishQuest(this.Id, "ptj");

		await this.OnFinish(npc);

		return HookResult.Break;
	}
コード例 #50
0
ファイル: general_malcolm.cs プロジェクト: aura-project/aura
	public async Task<HookResult> AfterIntro(NpcScript npc, params object[] args)
	{
		// Handle receiving of Flowerpot from Bebhinn
		const int Flowerpot = 70010;
		int id;
		if (npc.QuestActive(id = 508405, "ptj3") || npc.QuestActive(id = 508435, "ptj3") || npc.QuestActive(id = 508465, "ptj3"))
		{
			if (!npc.Player.Inventory.Has(Flowerpot))
				return HookResult.Continue;

			npc.Player.Inventory.Remove(Flowerpot, 1);
			npc.FinishQuest(id, "ptj3");

			npc.Notice(L("You have given Flowerpot to be Delivered to Malcolm."));

			npc.Msg(L("Oh, no.<br/>That Flowerpot, did Bebhinn give it to you instead of the money for the clothes?"));
			npc.Msg(Hide.Name, L("(Delivered the small Flowerpot to Malcolm.)"));
			npc.Msg(L("I have no idea why everyone brings me flowerpots instead of paying me in cash.<br/>Anyway, thank you.<br/>Hmm, it's weird, but I think I kind of like this flowerpot."));
			npc.Msg(Hide.Name, L("(Another Flowerpot is added to Malcolm's collection.)"));
		}

		// Call PTJ method after intro if it's time to report
		if (npc.DoingPtjForNpc() && npc.ErinnHour(GetPersonalReportTime(npc.Player), Deadline))
		{
			await AboutArbeit(npc);
			return HookResult.Break;
		}

		return HookResult.Continue;
	}