예제 #1
0
    protected override async Task Talk()
    {
        // Unofficial
        Msg("My hero! How can I ever repay you for this... How about a reward?", Button("Some gold maybe?", "@gold"), Button("An item!", "@item"));
        var reward = await Select();

        if (!HasKeyword("TirChonaill_Tutorial_Judging") && !HasKeyword("TirChonaill_Tutorial_Perceiving"))
        {
            if (reward == "@gold")
            {
                Msg("Some money? Of course, here you go.");
                GiveGold(1000);
                GiveKeyword("TirChonaill_Tutorial_Judging");
            }
            else if (reward == "@item")
            {
                Msg("Please take this, may it bring you luck.");
                GiveItem(16009);
                GiveKeyword("TirChonaill_Tutorial_Perceiving");
            }
        }

        GiveKeyword("Clear_Tutorial_Alby_Dungeon");
        Msg("Thank you so much, now let's leave this horrible place...", Button("End Conversation"));
        await Select();

        Close2();

        var cutscene = new Cutscene("tuto_result", Player);

        cutscene.AddActor("me", Player);
        cutscene.AddActor("#lostresident", 1002);
        cutscene.Play(_ => WarpToRewardRoom());
    }
예제 #2
0
	protected override async Task Talk()
	{
		// Unofficial
		Msg("My hero! How can I ever repay you for this... How about a reward?", Button("Some gold maybe?", "@gold"), Button("An item!", "@item"));
		var reward = await Select();

		if (!HasKeyword("TirChonaill_Tutorial_Judging") && !HasKeyword("TirChonaill_Tutorial_Perceiving"))
		{
			if (reward == "@gold")
			{
				Msg("Some money? Of course, here you go.");
				GiveGold(1000);
				GiveKeyword("TirChonaill_Tutorial_Judging");
			}
			else if (reward == "@item")
			{
				Msg("Please take this, may it bring you luck.");
				GiveItem(16009);
				GiveKeyword("TirChonaill_Tutorial_Perceiving");
			}
		}

		GiveKeyword("Clear_Tutorial_Alby_Dungeon");
		Msg("Thank you so much, now let's leave this horrible place...", Button("End Conversation"));
		await Select();
		Close2();

		var cutscene = new Cutscene("tuto_result", Player);
		cutscene.AddActor("me", Player);
		cutscene.AddActor("#lostresident", 1002);
		cutscene.Play(_ => WarpToRewardRoom());
	}
예제 #3
0
    public override void LoadEvents()
    {
        // "Altar" near Tin
        OnClientEvent(0x00B0007D0001009C, SignalType.Enter, (creature, eventData) =>
        {
            // Only do this once.
            if (creature.Vars.Perm["TinCutscene"] != null) return;

            if (!creature.Quests.Has(1000001))
                creature.Quests.Start(1000001); // Nao's Letter of Introduction

            var cutscene = new Cutscene("tuto_meet_tin", creature);
            cutscene.AddActor("me", creature);
            cutscene.AddActor("#tin", creature.Region.GetCreature("_tin"));
            cutscene.Play((scene) =>
            {
                // Give first weapon
                if(creature.RightHand == null)
                    creature.Inventory.Add(40005, Pocket.RightHand1); // Short Sword

                // Set as soon as the player got everything
                creature.Vars.Perm["TinCutscene"] = true;

                // Required to remove the fade effect.
                scene.Leader.Warp(125, 22930, 75423);
            });
        });
    }
예제 #4
0
    public override void OnBoss(Dungeon dungeon)
    {
        dungeon.AddBoss(20201, 3);         // Hellhound

        foreach (var member in dungeon.Party)
        {
            var cutscene = new Cutscene("bossroom_HellHound", member);
            cutscene.AddActor("me", member);
            cutscene.AddActor("#hellhound", 20201);
            cutscene.Play();
        }
    }
	public override void OnBoss(Dungeon dungeon)
	{
		dungeon.AddBoss(30802, 1); // Giant Golden Spiderling

		foreach (var member in dungeon.Party)
		{
			var cutscene = new Cutscene("bossroom_tutorial_giantgoldenspiderkid", member);
			cutscene.AddActor("player0", member);
			cutscene.AddActor("#giantgoldenspiderkid", 30802);
			cutscene.Play();
		}
	}
    public override void OnBoss(Dungeon dungeon)
    {
        dungeon.AddBoss(10602, 3);         // Giant Imp

        foreach (var member in dungeon.Party)
        {
            var cutscene = new Cutscene("bossroom_imp", member);
            cutscene.AddActor("player0", member);
            cutscene.AddActor("#imp", 10601);
            cutscene.Play();
        }
    }
예제 #7
0
    public override void OnBoss(Dungeon dungeon)
    {
        dungeon.AddBoss(30802, 1);         // Giant Golden Spiderling

        foreach (var member in dungeon.Party)
        {
            var cutscene = new Cutscene("bossroom_tutorial_giantgoldenspiderkid", member);
            cutscene.AddActor("player0", member);
            cutscene.AddActor("#giantgoldenspiderkid", 30802);
            cutscene.Play();
        }
    }
예제 #8
0
	public override void OnBoss(Dungeon dungeon)
	{
		dungeon.AddBoss(20201, 3); // Hellhound

		foreach (var member in dungeon.Party)
		{
			var cutscene = new Cutscene("bossroom_HellHound", member);
			cutscene.AddActor("me", member);
			cutscene.AddActor("#hellhound", 20201);
			cutscene.Play();
		}
	}
    public override void OnBoss(Dungeon dungeon)
    {
        dungeon.AddBoss(130014, 1);         // Small Golem

        foreach (var member in dungeon.Party)
        {
            var cutscene = new Cutscene("bossroom_small_golem_Ciar", member);
            cutscene.AddActor("me", member);
            cutscene.AddActor("#small_golem2", 130014);
            cutscene.Play();
        }
    }
예제 #10
0
	public override void OnBoss(Dungeon dungeon)
	{
		dungeon.AddBoss(10602, 3); // Giant Imp

		foreach (var member in dungeon.Party)
		{
			var cutscene = new Cutscene("bossroom_imp", member);
			cutscene.AddActor("player0", member);
			cutscene.AddActor("#imp", 10601);
			cutscene.Play();
		}
	}
예제 #11
0
    public async Task <HookResult> TalkTrefor(NpcScript npc, params object[] args)
    {
        if (npc.QuestActive(this.Id, "talk_trefor"))
        {
            npc.FinishQuest(this.Id, "talk_trefor");

            npc.Player.Skills.Give(SkillId.Smash, SkillRank.Novice);

            npc.Msg("Welcome, I am Trefor, the guard.<br/>Someone from the town went into Alby Dungeon a while ago, but hasn't returned yet.<br/>I wish I could go there myself, but I can't leave my post. I'd really appreciate it if you can go and look for in Alby Dungeon.");
            npc.Msg("Since the dungeon is a dangerous place to be in, I'll teach you a skill that will help you in an emergency situation.<br/>It's called the Smash skill. If you use it, you can knock down a monster with a single blow!<br/>It is also highly effective when you sneak up on a target and deliver the blow without warning.");
            npc.Msg("Against monsters that are using the Defense skill,<br/>Smash will be the only way to penetrate that skill and deliver a killer blow.");
            npc.Msg("However... looking at the way you're holding your sword, I'm not sure if you are up to the task.<br/>Let me test your skills first. Do you see those brown foxes wandering in front of me?<br/>They're quite a nuisance, praying on those roosters in town.<br/>I want you to go and hunt 5 Young Brown Foxes right now.");
            npc.Msg("Foxes use the Defense Skill a lot, and as I told you before, regular attacks do not work against defending targets.<br/>That's then the Smash skill comes in handy.<br/><br/>Watch how I do it, and try picking up the important parts so you can use it too.<br/>You don't need to overstrain yourself by going for the Brown Foxes. Young Brown Foxes will do just fine.", npc.Movie("skillbar_guide_us.wmv", 500, 300), npc.Button("Continue"));
            await npc.Select();

            npc.Close2();

            var scene = new Cutscene("tuto_smash", npc.Player);
            scene.AddActor("me", npc.Player);
            scene.AddActor("#trefor", npc.NPC);
            scene.AddActor("#brownfox", 50001);
            scene.Play();

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

            npc.Msg("Good, I see that you're getting the hang of it.<br/>Well, I was able to do that when I was 8, but whatever...<br/>It is now time for you to go and search for the missing Villager.");
            npc.Msg("Follow the road up and turn right and you'll find the Alby Dungeon.<br/>You can enter the dungeon by dropping this item on the altar.<br/>If you either lose it or fail to rescue her, come back to me so I can give you another one. Please be careful.", npc.Image("dungeonpass", 128, 128));

            npc.GiveItem(63180, 1);

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

            npc.Msg("You did it! Good job.<br/>Good thing I asked for your help.<br/>For your great work, I will now teach you how to properly use the Smash skill.<br/>If you open your Skill window and press the 'LEARN' button, you will be able to use a more powerful Smash skill.<br/>I can always use some help here, so drop by often, okay?");

            if (npc.Player.Skills.Is(SkillId.Smash, SkillRank.Novice))
            {
                npc.Player.Skills.Train(SkillId.Smash, 1);
            }

            return(HookResult.Break);
        }

        return(HookResult.Continue);
    }
예제 #12
0
	public override void OnBoss(Dungeon dungeon)
	{
		dungeon.AddBoss(380001, 3); // Rabbit

		foreach (var member in dungeon.Party)
		{
			var cutscene = new Cutscene("bossroom_GiantSpider_kid", member);
			cutscene.AddActor("player0", member);
			cutscene.AddActor("#giant_spider_kid", 380001);
			cutscene.AddActor("#red_spider_kid", 380001);
			cutscene.Play();
		}
	}
예제 #13
0
    public override void OnBoss(Dungeon dungeon)
    {
        dungeon.AddBoss(380001, 3);         // Rabbit

        foreach (var member in dungeon.Party)
        {
            var cutscene = new Cutscene("bossroom_GiantSpider_kid", member);
            cutscene.AddActor("player0", member);
            cutscene.AddActor("#giant_spider_kid", 380001);
            cutscene.AddActor("#red_spider_kid", 380001);
            cutscene.Play();
        }
    }
예제 #14
0
	public async Task<HookResult> TalkTrefor(NpcScript npc, params object[] args)
	{
		if(npc.QuestActive(this.Id, "talk_trefor"))
		{
			npc.FinishQuest(this.Id, "talk_trefor");
			
			if(!npc.Player.Skills.Has(SkillId.Smash, SkillRank.Novice))
				npc.Player.Skills.Give(SkillId.Smash, SkillRank.Novice);
			
			npc.Msg("Welcome, I am Trefor, the guard.<br/>Someone from the town went into Alby Dungeon a while ago, but hasn't returned yet.<br/>I wish I could go there myself, but I can't leave my post. I'd really appreciate it if you can go and look for in Alby Dungeon.");
			npc.Msg("Since the dungeon is a dangerous place to be in, I'll teach you a skill that will help you in an emergency situation.<br/>It's called the Smash skill. If you use it, you can knock down a monster with a single blow!<br/>It is also highly effective when you sneak up on a target and deliver the blow without warning.");
			npc.Msg("Against monsters that are using the Defense skill,<br/>Smash will be the only way to penetrate that skill and deliver a killer blow.");
			npc.Msg("However... looking at the way you're holding your sword, I'm not sure if you are up to the task.<br/>Let me test your skills first. Do you see those brown foxes wandering in front of me?<br/>They're quite a nuisance, praying on those roosters in town.<br/>I want you to go and hunt 5 Young Brown Foxes right now.");
			npc.Msg("Foxes use the Defense Skill a lot, and as I told you before, regular attacks do not work against defending targets.<br/>That's then the Smash skill comes in handy.<br/><br/>Watch how I do it, and try picking up the important parts so you can use it too.<br/>You don't need to overstrain yourself by going for the Brown Foxes. Young Brown Foxes will do just fine.", npc.Movie("skillbar_guide_us.wmv", 500, 300), npc.Button("Continue"));
			await npc.Select();
			npc.Close2();

			var scene = new Cutscene("tuto_smash", npc.Player);
			scene.AddActor("me", npc.Player);
			scene.AddActor("#trefor", npc.NPC);
			scene.AddActor("#brownfox", 50001);
			scene.Play();
			
			return HookResult.End;
		}
		else if(npc.QuestActive(this.Id, "talk_trefor2"))
		{
			npc.FinishQuest(this.Id, "talk_trefor2");
			
			npc.Msg("Good, I see that you're getting the hang of it.<br/>Well, I was able to do that when I was 8, but whatever...<br/>It is now time for you to go and search for the missing Villager.");
			npc.Msg("Follow the road up and turn right and you'll find the Alby Dungeon.<br/>You can enter the dungeon by dropping this item on the altar.<br/>If you either lose it or fail to rescue her, come back to me so I can give you another one. Please be careful.", npc.Image("dungeonpass", 128, 128));

			npc.GiveItem(63180, 1);
			
			return HookResult.Break;
		}
		else if(npc.QuestActive(this.Id, "talk_trefor3"))
		{
			npc.FinishQuest(this.Id, "talk_trefor3");
			
			npc.Msg("You did it! Good job.<br/>Good thing I asked for your help.<br/>For your great work, I will now teach you how to properly use the Smash skill.<br/>If you open your Skill window and press the 'LEARN' button, you will be able to use a more powerful Smash skill.<br/>I can always use some help here, so drop by often, okay?");
			
			if(npc.Player.Skills.Is(SkillId.Smash, SkillRank.Novice))
				npc.Player.Skills.Train(SkillId.Smash, 1);
			
			return HookResult.Break;
		}
		
		return HookResult.Continue;
	}
예제 #15
0
    public override void OnBoss(Dungeon dungeon)
    {
        dungeon.AddBoss(30007, 1);         // Giant Red Spider
        dungeon.AddBoss(30013, 6);         // Dark Blue Spider

        foreach (var member in dungeon.Party)
        {
            var cutscene = new Cutscene("bossroom_Albi_GiantSpider_DarkBlueSpider", member);
            cutscene.AddActor("player0", member);
            cutscene.AddActor("#giant_spider", 30007);
            cutscene.AddActor("#darkblue_spider", 30013);
            cutscene.Play();
        }
    }
예제 #16
0
    public override void OnBoss(Dungeon dungeon)
    {
        dungeon.AddBoss(170201, 5);         // Werewolf
        dungeon.AddBoss(160101, 5);         // Gray Gremlin

        foreach (var member in dungeon.Party)
        {
            var cutscene = new Cutscene("bossroom_WereWolf", member);
            cutscene.AddActor("me", member);
            cutscene.AddActor("#werewolf", 170201);
            cutscene.AddActor("#gray_gremlin", 160101);
            cutscene.Play();
        }
    }
예제 #17
0
	public override void OnBoss(Dungeon dungeon)
	{
		dungeon.AddBoss(130001, 1); // Golem
		dungeon.AddBoss(11003, 6); // Metal Skeleton

		foreach (var member in dungeon.Party)
		{
			var cutscene = new Cutscene("bossroom_Metalskeleton_Golem", member);
			cutscene.AddActor("player0", member);
			cutscene.AddActor("#golem", 130001);
			cutscene.AddActor("#metal_skeleton", 11003);
			cutscene.Play();
		}
	}
	public override void OnBoss(Dungeon dungeon)
	{
		dungeon.AddBoss(30022, 1); // Giant Spiderling
		dungeon.AddBoss(1002, 1);  // Lost Resident

		foreach (var member in dungeon.Party)
		{
			var cutscene = new Cutscene("bossroom_tutorial_giantspider_kid", member);
			cutscene.AddActor("player0", member);
			cutscene.AddActor("#giant_spider_kid", 30022);
			cutscene.AddActor("#lostresident", 1002);
			cutscene.Play();
		}
	}
    public override void OnBoss(Dungeon dungeon)
    {
        dungeon.AddBoss(130004, 1);         // Small Golem
        dungeon.AddBoss(160102, 6);         // Green Gremlin

        foreach (var member in dungeon.Party)
        {
            var cutscene = new Cutscene("bossroom_small_golem", member);
            cutscene.AddActor("player0", member);
            cutscene.AddActor("#small_golem", 130004);
            cutscene.AddActor("#imp", 10601);
            cutscene.Play();
        }
    }
예제 #20
0
    public override void OnBoss(Dungeon dungeon)
    {
        dungeon.AddBoss(30022, 1);         // Giant Spiderling
        dungeon.AddBoss(1002, 1);          // Lost Resident

        foreach (var member in dungeon.Party)
        {
            var cutscene = new Cutscene("bossroom_tutorial_giantspider_kid", member);
            cutscene.AddActor("player0", member);
            cutscene.AddActor("#giant_spider_kid", 30022);
            cutscene.AddActor("#lostresident", 1002);
            cutscene.Play();
        }
    }
예제 #21
0
	public override void OnBoss(Dungeon dungeon)
	{
		dungeon.AddBoss(30018, 1); // Giant Spiderling
		dungeon.AddBoss(30019, 3); // Red Spiderling

		foreach (var member in dungeon.Party)
		{
			var cutscene = new Cutscene("bossroom_GiantSpider_kid", member);
			cutscene.AddActor("player0", member);
			cutscene.AddActor("#giant_spider_kid", 30018);
			cutscene.AddActor("#red_spider_kid", 30019);
			cutscene.Play();
		}
	}
예제 #22
0
    public override void OnBoss(Dungeon dungeon)
    {
        dungeon.AddBoss(30006, 1);         // Giant Black Spider
        dungeon.AddBoss(30012, 6);         // Burgundy Spider

        foreach (var member in dungeon.Party)
        {
            var cutscene = new Cutscene("bossroom_giant_spiderB", member);
            cutscene.AddActor("player0", member);
            cutscene.AddActor("#giant_black_spider", 30006);
            cutscene.AddActor("#darkred_spider", 30012);
            cutscene.Play();
        }
    }
    public override void OnBoss(Dungeon dungeon)
    {
        dungeon.AddBoss(30018, 1);         // Giant Spiderling
        dungeon.AddBoss(30019, 3);         // Red Spiderling

        foreach (var member in dungeon.Party)
        {
            var cutscene = new Cutscene("bossroom_GiantSpider_kid", member);
            cutscene.AddActor("player0", member);
            cutscene.AddActor("#giant_spider_kid", 30018);
            cutscene.AddActor("#red_spider_kid", 30019);
            cutscene.Play();
        }
    }
예제 #24
0
	public override void OnBoss(Dungeon dungeon)
	{
		dungeon.AddBoss(130002, 1); // Small Golem
		dungeon.AddBoss(11010, 6); // Metal Skeleton

		foreach (var member in dungeon.Party)
		{
			var cutscene = new Cutscene("bossroom_MetalskeletonArmorA_Golem", member);
			cutscene.AddActor("player0", member);
			cutscene.AddActor("#golem", 130002);
			cutscene.AddActor("#metalskeleton_armora", 11010);
			cutscene.Play();
		}
	}
예제 #25
0
    public override void OnBoss(Dungeon dungeon)
    {
        dungeon.AddBoss(130002, 1);        // Small Golem
        dungeon.AddBoss(11010, 6);         // Metal Skeleton

        foreach (var member in dungeon.Party)
        {
            var cutscene = new Cutscene("bossroom_MetalskeletonArmorA_Golem", member);
            cutscene.AddActor("player0", member);
            cutscene.AddActor("#golem", 130002);
            cutscene.AddActor("#metalskeleton_armora", 11010);
            cutscene.Play();
        }
    }
예제 #26
0
    public override void OnBoss(Dungeon dungeon)
    {
        dungeon.AddBoss(30004, 1);         // Giant Spider
        dungeon.AddBoss(30003, 6);         // Red Spider

        foreach (var member in dungeon.Party)
        {
            var cutscene = new Cutscene("bossroom_GiantSpider", member);
            cutscene.AddActor("player0", member);
            cutscene.AddActor("#giant_spider", 30004);
            cutscene.AddActor("#darkred_spider", 30003);
            cutscene.Play();
        }
    }
예제 #27
0
    public override void OnBoss(Dungeon dungeon)
    {
        dungeon.AddBoss(130003, 1);         // Small Golem
        dungeon.AddBoss(190001, 3);         // Flying Sword

        foreach (var member in dungeon.Party)
        {
            var cutscene = new Cutscene("bossroom_SmallGolem_FlyingSword", member);
            cutscene.AddActor("me", member);
            cutscene.AddActor("#small_golem", 130003);
            cutscene.AddActor("#flying_sword", 190001);
            cutscene.Play();
        }
    }
예제 #28
0
	public override void OnBoss(Dungeon dungeon)
	{
		dungeon.AddBoss(130004, 1); // Small Golem
		dungeon.AddBoss(160102, 6); // Green Gremlin

		foreach (var member in dungeon.Party)
		{
			var cutscene = new Cutscene("bossroom_small_golem", member);
			cutscene.AddActor("player0", member);
			cutscene.AddActor("#small_golem", 130004);
			cutscene.AddActor("#imp", 10601);
			cutscene.Play();
		}
	}
예제 #29
0
	public override void OnBoss(Dungeon dungeon)
	{
		dungeon.AddBoss(130003, 1); // Small Golem
		dungeon.AddBoss(190001, 3); // Flying Sword

		foreach (var member in dungeon.Party)
		{
			var cutscene = new Cutscene("bossroom_SmallGolem_FlyingSword", member);
			cutscene.AddActor("me", member);
			cutscene.AddActor("#small_golem", 130003);
			cutscene.AddActor("#flying_sword", 190001);
			cutscene.Play();
		}
	}
예제 #30
0
	public override void OnBoss(Dungeon dungeon)
	{
		dungeon.AddBoss(30006, 1); // Giant Black Spider
		dungeon.AddBoss(30012, 6); // Burgundy Spider

		foreach (var member in dungeon.Party)
		{
			var cutscene = new Cutscene("bossroom_giant_spiderB", member);
			cutscene.AddActor("player0", member);
			cutscene.AddActor("#giant_black_spider", 30006);
			cutscene.AddActor("#darkred_spider", 30012);
			cutscene.Play();
		}
	}
예제 #31
0
    public override void OnBoss(Dungeon dungeon)
    {
        dungeon.AddBoss(130007, 1);        // Golem
        dungeon.AddBoss(11003, 6);         // Metal Skeleton

        foreach (var member in dungeon.Party)
        {
            var cutscene = new Cutscene("bossroom_Metalskeleton_Golem3", member);
            cutscene.AddActor("player0", member);
            cutscene.AddActor("#golem3", 130007);
            cutscene.AddActor("#metal_skeleton", 11003);
            cutscene.Play();
        }
    }
예제 #32
0
	public override void OnBoss(Dungeon dungeon)
	{
		dungeon.AddBoss(170107, 2); // Lycanthrope
		dungeon.AddBoss(110102, 5); // Gorgon

		foreach (var member in dungeon.Party)
		{
			var cutscene = new Cutscene("bossroom_lycan", member);
			cutscene.AddActor("leader", member);
			cutscene.AddActor("player1", member); // TODO: Party
			cutscene.AddActor("#lycan", 170107);
			cutscene.AddActor("#gorgon", 110102);
			cutscene.Play();
		}
	}
예제 #33
0
	public override void OnBoss(Dungeon dungeon)
	{
		dungeon.AddBoss(100302, 1); // Argus
		dungeon.AddBoss(100303, 1); // Argus
		dungeon.AddBoss(100304, 1); // Argus
		dungeon.AddBoss(170201, 6); // Werewolf

		foreach (var member in dungeon.Party)
		{
			var cutscene = new Cutscene("bossroom_argos", member);
			cutscene.AddActor("player0", member);
			cutscene.AddActor("#argus", 100302);
			cutscene.Play();
		}
	}
예제 #34
0
    public override void OnBoss(Dungeon dungeon)
    {
        dungeon.AddBoss(170107, 2);         // Lycanthrope
        dungeon.AddBoss(110102, 5);         // Gorgon

        foreach (var member in dungeon.Party)
        {
            var cutscene = new Cutscene("bossroom_lycan", member);
            cutscene.AddActor("leader", member);
            cutscene.AddActor("player1", member);             // TODO: Party
            cutscene.AddActor("#lycan", 170107);
            cutscene.AddActor("#gorgon", 110102);
            cutscene.Play();
        }
    }
    public override void OnBoss(Dungeon dungeon)
    {
        dungeon.AddBoss(100302, 1);         // Argus
        dungeon.AddBoss(100303, 1);         // Argus
        dungeon.AddBoss(100304, 1);         // Argus
        dungeon.AddBoss(170201, 6);         // Werewolf

        foreach (var member in dungeon.Party)
        {
            var cutscene = new Cutscene("bossroom_argos", member);
            cutscene.AddActor("player0", member);
            cutscene.AddActor("#argus", 100302);
            cutscene.Play();
        }
    }
예제 #36
0
	public override void OnBoss(Dungeon dungeon)
	{
		if (dungeon.CountPlayers() == 1)
		{
			dungeon.AddBoss(10302, 1); // Red Succubus
		}
		else
		{
			dungeon.AddBoss(170101, 1); // Lycanthrope
			dungeon.AddBoss(170102, 1); // Lycanthrope

			foreach (var member in dungeon.Party)
			{
				var cutscene = new Cutscene("bossroom_Lycanthrope2", member);
				cutscene.AddActor("me", member);
				cutscene.AddActor("#lycan", 170101);
				cutscene.Play();
			}
		}
	}
예제 #37
0
    public override void OnBoss(Dungeon dungeon)
    {
        if (dungeon.CountPlayers() == 1)
        {
            dungeon.AddBoss(10301, 1);             // Black Succubus
        }
        else
        {
            dungeon.AddBoss(10101, 1);             // Goblin

            foreach (var member in dungeon.Party)
            {
                var cutscene = new Cutscene("bossroom_GoldGoblin", member);
                cutscene.AddActor("me", member);
                cutscene.AddActor("#gold_goblin", 10104);
                cutscene.AddActor("#goblin_archer", 10103);
                cutscene.Play();
            }
        }
    }
예제 #38
0
    public override void OnBoss(Dungeon dungeon)
    {
        if (dungeon.CountPlayers() == 1)
        {
            dungeon.AddBoss(10302, 1);             // Red Succubus
        }
        else
        {
            dungeon.AddBoss(170101, 1);             // Lycanthrope
            dungeon.AddBoss(170102, 1);             // Lycanthrope

            foreach (var member in dungeon.Party)
            {
                var cutscene = new Cutscene("bossroom_Lycanthrope2", member);
                cutscene.AddActor("me", member);
                cutscene.AddActor("#lycan", 170101);
                cutscene.Play();
            }
        }
    }
예제 #39
0
	public override void OnBoss(Dungeon dungeon)
	{
		if (dungeon.CountPlayers() == 1)
		{
			dungeon.AddBoss(10301, 1); // Black Succubus
		}
		else
		{
			dungeon.AddBoss(10101, 1); // Goblin

			foreach (var member in dungeon.Party)
			{
				var cutscene = new Cutscene("bossroom_GoldGoblin", member);
				cutscene.AddActor("me", member);
				cutscene.AddActor("#gold_goblin", 10104);
				cutscene.AddActor("#goblin_archer", 10103);
				cutscene.Play();
			}
		}
	}
예제 #40
0
    public override void LoadEvents()
    {
        // "Altar" near Tin
        OnClientEvent(0x00B0007D0001009C, SignalType.Enter, (creature, eventData) =>
        {
            // Only do this once.
            if (creature.Keywords.Has("tin_tutorial_guide"))
            {
                return;
            }

            if (!creature.Quests.Has(202001))
            {
                creature.Quests.Start(202001, false);                 // Nao's Letter of Introduction
            }
            // TODO: Cutscene db
            var cutscene = new Cutscene("tuto_meet_tin", creature);
            cutscene.AddActor("me", creature);
            cutscene.AddActor("#tin", creature.Region.GetCreature("_tin"));
            cutscene.Play((scene) =>
            {
                // Give first weapon
                if (creature.RightHand == null)
                {
                    //if(!eiry)
                    //	creature.Inventory.Add(40005, Pocket.RightHand1); // Short Sword
                    //else
                    {
                        // Eiry Practice Short Sword
                        creature.Inventory.AddWithUpdate(Item.CreateEgo(40524, EgoRace.EirySword, "Eiry"), Pocket.RightHand1);
                    }
                }

                // Give as soon as the player got everything
                creature.Keywords.Give("tin_tutorial_guide");

                // Required to remove the fade effect.
                scene.Leader.Warp(125, 22930, 75423);
            });
        });
    }
예제 #41
0
	public override void LoadEvents()
	{
		// "Altar" near Tin
		OnClientEvent(0x00B0007D0001009C, SignalType.Enter, (creature, eventData) =>
		{
			// Only do this once.
			if (creature.Keywords.Has("tin_tutorial_guide"))
				return;

			if (!creature.Quests.Has(202001))
				creature.Quests.Start(202001, false); // Nao's Letter of Introduction

			// TODO: Cutscene db
			var cutscene = new Cutscene("tuto_meet_tin", creature);
			cutscene.AddActor("me", creature);
			cutscene.AddActor("#tin", creature.Region.GetCreature("_tin"));
			cutscene.Play((scene) =>
			{
				// Give first weapon
				if(creature.RightHand == null)
				{
					//if(!eiry)
					//	creature.Inventory.Add(40005, Pocket.RightHand1); // Short Sword
					//else
					{
						// Eiry Practice Short Sword
						creature.Inventory.AddWithUpdate(Item.CreateEgo(40524, EgoRace.EirySword, "Eiry"), Pocket.RightHand1);
					}
				}

				// Give as soon as the player got everything
				creature.Keywords.Give("tin_tutorial_guide");

				// Required to remove the fade effect.
				scene.Leader.Warp(125, 22930, 75423);
			});
		});
	}
예제 #42
0
	public override void OnBoss(Dungeon dungeon)
	{
		dungeon.AddBoss(30004, 1); // Giant Spider
		dungeon.AddBoss(30003, 6); // Red Spider

		foreach (var member in dungeon.Party)
		{
			var cutscene = new Cutscene("bossroom_GiantSpider", member);
			cutscene.AddActor("player0", member);
			cutscene.AddActor("#giant_spider", 30004);
			cutscene.AddActor("#darkred_spider", 30003);
			cutscene.Play();
		}
	}
예제 #43
0
	public override void OnBoss(Dungeon dungeon)
	{
		dungeon.AddBoss(100003, 1); // Ogre Warrior
		dungeon.AddBoss(100004, 1); // Ogre Warrior
		dungeon.AddBoss(100005, 1); // Ogre Warrior
		dungeon.AddBoss(100006, 1); // Ogre Warrior
		dungeon.AddBoss(100007, 1); // Ogre Warrior

		foreach (var member in dungeon.Party)
		{
			var cutscene = new Cutscene("bossroom_OgreBros", member);
			cutscene.AddActor("me", member);
			cutscene.AddActor("#ogrebros1", 100003);
			cutscene.AddActor("#ogrebros2", 100004);
			cutscene.AddActor("#ogrebros3", 100005);
			cutscene.AddActor("#ogrebros4", 100006);
			cutscene.AddActor("#ogrebros5", 100007);
			cutscene.AddActor("#goblin", 10101);
			cutscene.Play();
		}
	}
예제 #44
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);
    }
예제 #45
0
    public override void OnBoss(Dungeon dungeon)
    {
        dungeon.AddBoss(100003, 1);         // Ogre Warrior
        dungeon.AddBoss(100004, 1);         // Ogre Warrior
        dungeon.AddBoss(100005, 1);         // Ogre Warrior
        dungeon.AddBoss(100006, 1);         // Ogre Warrior
        dungeon.AddBoss(100007, 1);         // Ogre Warrior

        foreach (var member in dungeon.Party)
        {
            var cutscene = new Cutscene("bossroom_OgreBros", member);
            cutscene.AddActor("me", member);
            cutscene.AddActor("#ogrebros1", 100003);
            cutscene.AddActor("#ogrebros2", 100004);
            cutscene.AddActor("#ogrebros3", 100005);
            cutscene.AddActor("#ogrebros4", 100006);
            cutscene.AddActor("#ogrebros5", 100007);
            cutscene.AddActor("#goblin", 10101);
            cutscene.Play();
        }
    }
예제 #46
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;
	}