public override void Execute(Npc npc, Character character)
        {
            NpcDialog npcDialog = new NpcDialog(character, npc);

            npcDialog.Open();
            npcDialog.ChangeMessage(this.Message);
        }
        public static bool Execute(Player player, int npcId, byte control, string input)
        {
            try
            {
                switch (control)
                {
                case 0:
                {
                    using (var yi = new NpcDialog(32))
                    {
                        yi
                        .Text("Do you want to get teleported to TwinCity?")
                        .Link("Yes, please.", 1)
                        .Link("No, thank you.", 255)
                        .Finish();

                        player.Send(yi);
                    }
                    break;
                }

                case 1:
                {
                    player.Teleport(400, 400, 1002);
                    break;
                }
                }
            }
            catch
            {
                return(false);
            }
            return(true);
        }
Example #3
0
    static IEnumerator ShowList(NpcDialog dia, IList <string> text, System.Action cb)
    {
        bool next = false;

        dia.ShowNext = delegate()
        {
            next = true;
        };

        foreach (var t in text)
        {
            //dia.ShowText(string.Format(t, ObjectManager.objectManager.GetMyName()));
            dia.ShowText(t);
            while (!next)
            {
                yield return(new WaitForSeconds(0.1f));
            }
            next = false;
        }
        WindowMng.windowMng.PopView();
        if (cb != null)
        {
            cb();
        }
    }
Example #4
0
        public static bool Execute(Player player, int npcId, byte control, string input)
        {
            try
            {
                switch (control)
                {
                case 0:
                {
                    using (var yi = new NpcDialog(20))
                    {
                        yi
                        .Text("Welcome to Twin City Furniture Store. Currently, you have limited selection but more furniture will come in soon.")
                        .Link("I want to have a look.", 1)
                        .Link("I am not interested.", 255)
                        .Finish();

                        player.Send(yi);
                    }
                    break;
                }

                case 1:
                {
                    player.Teleport(42, 42, 1511);
                    break;
                }
                }
                return(true);
            }
            catch
            {
                return(false);
            }
        }
Example #5
0
        public static bool Execute(Player player, int npcId, byte control, string input)
        {
            try
            {
                switch (control)
                {
                case 0:
                {
                    using (var yi = new NpcDialog(7))
                    {
                        yi
                        .Text("This is the way to the Desert City. Although you are excellent, it is dangerous to go ahead.")
                        .Link("I want to go.", 1)
                        .Link("I think I will stay here.", 255)
                        .Finish();

                        player.Send(yi);
                    }
                    break;
                }

                case 1:
                {
                    player.Teleport(971, 666, 1000);
                    break;
                }
                }
            }
            catch
            {
                return(false);
            }
            return(true);
        }
Example #6
0
        public static bool Execute(Player player, int npcId, byte control, string input)
        {
            try
            {
                switch (control)
                {
                case 0:
                {
                    using (var yi = new NpcDialog(9))
                    {
                        yi
                        .Text("Hello, I am the assistant of the mine union. If you want to enter the mine cave, I can send you.")
                        .Link("Yes, please.", 1)
                        .Link("Just passing by.", 255)
                        .Finish();

                        player.Send(yi);
                    }
                    break;
                }

                case 1:
                {
                    player.Teleport(155, 94, 1028);
                    break;
                }
                }
            }
            catch
            {
                return(false);
            }
            return(true);
        }
Example #7
0
        public static bool Execute(Player player, int npcId, byte control, string input)
        {
            try
            {
                switch (control)
                {
                case 0:
                {
                    using (var yi = new NpcDialog(79))
                    {
                        yi
                        .Text("Would you like to get teleported to StoneCity?")
                        .Link("Yes, please", 1)
                        .Link("No, thanks.", 255)
                        .Finish();

                        player.Send(yi);
                    }
                    break;
                }

                case 1:
                {
                    player.Teleport(435, 337, 1077);
                    break;
                }
                }
            }
            catch
            {
                return(false);
            }
            return(true);
        }
Example #8
0
        private void NpcDialog_AnswerListChanged(object s, Dictionary <int, string> options)
        {
            SimpleChar dialogNpc = DynelManager.GetDynel((Identity)s).Cast <SimpleChar>();

            if (dialogNpc.Name == Constants.QuestGiverName)
            {
                foreach (KeyValuePair <int, string> option in options)
                {
                    if (option.Value == "Is there anything I can help you with?" ||
                        (ActiveGlobalSettings.MissionFaction == MissionFaction.Clan && option.Value == "I will defend against the Unredeemed!") ||
                        (ActiveGlobalSettings.MissionFaction == MissionFaction.Omni && option.Value == "I will defend against the Redeemed!") ||
                        (ActiveGlobalSettings.MissionFaction == MissionFaction.Neut && option.Value == "I will defend against the creatures of the brink!") ||
                        (ActiveGlobalSettings.MissionDifficulty == MissionDifficulty.Easy && option.Value == "I will deal with only the weakest aversaries") || //Brink missions have a typo
                        (ActiveGlobalSettings.MissionDifficulty == MissionDifficulty.Easy && option.Value == "I will deal with only the weakest adversaries") ||
                        (ActiveGlobalSettings.MissionDifficulty == MissionDifficulty.Medium && option.Value == "I will challenge these invaders, as long as there aren't too many") ||
                        (ActiveGlobalSettings.MissionDifficulty == MissionDifficulty.Hard && option.Value == "I will purge the temple of any and all assailants"))
                    {
                        NpcDialog.SelectAnswer(dialogNpc.Identity, option.Key);
                    }
                }
            }
            else if (dialogNpc.Name == Constants.QuestStarterName)
            {
                foreach (KeyValuePair <int, string> option in options)
                {
                    if (option.Value == "Yes, I am ready.")
                    {
                        NpcDialog.SelectAnswer(dialogNpc.Identity, option.Key);
                    }
                }
            }
        }
Example #9
0
        public override void Execute(Npc npc, Character character)
        {
            var dialog = new NpcDialog(character, npc);

            dialog.Open();
            dialog.ChangeMessage(Message);
        }
Example #10
0
        public static bool Execute(Player player, int npcId, byte control, string input)
        {
            try
            {
                switch (control)
                {
                case 0:
                {
                    using (var yi = new NpcDialog(60))
                    {
                        yi
                        .Text("Modify me.")
                        .Link("Link me.", 1)
                        .Link("F**k me.", 255)
                        .Finish();

                        player.Send(yi);
                    }
                    break;
                }

                case 1:
                {
                    break;
                }
                }
            }
            catch
            {
                return(false);
            }
            return(true);
        }
Example #11
0
 void Awake()
 {
     instance  = this;
     tween     = GetComponent <TweenScale>();
     dialog    = transform.Find("dialog").GetComponent <UILabel>();
     acceptBtn = transform.Find("accept_btn").GetComponent <UIButton>();
     closeBtn  = transform.Find("close_btn").GetComponent <UIButton>();
 }
Example #12
0
        public static bool Execute(Player player, int npcId, byte control, string input)
        {
            try
            {
                switch (control)
                {
                case 0:
                {
                    if (player.IsWaterTaoist())
                    {
                        using (var yi = new NpcDialog(60))
                        {
                            yi
                            .Text("Hello " + player.Name.TrimEnd('\0') +
                                  ", I am here to sell you a WindSpell for 100 silver, are you interested?")
                            .Link("Yes, I am.", 1)
                            .Link("No, I am not.", 255)
                            .Finish();

                            player.Send(yi);
                        }
                    }
                    break;
                }

                case 1:
                {
                    if (player.IsWaterTaoist() && player.Money >= 100)
                    {
                        player.Money -= 100;
                        var windSpell = Item.Factory.Create(ItemNames.SpaceMark3);
                        player.Inventory.AddItem(windSpell);
                    }
                    else
                    {
                        using (var yi = new NpcDialog(60))
                        {
                            yi
                            .Text("Sorry, you do not have enough silver.")
                            .Link("That is ok.", 255)
                            .Finish();

                            player.Send(yi);
                        }
                    }
                    break;
                }
                }
            }
            catch
            {
                return(false);
            }
            return(true);
        }
Example #13
0
 public static NpcDialog Create()
 {
     NpcDialog Dialog = new NpcDialog();
     Dialog.Size = 16;
     Dialog.Type = 0x7F0;
     Dialog.Timer = (uint)System.Environment.TickCount;
     Dialog.OptionID = 255;
     Dialog.OptionType = NpcOptionType.None;
     Dialog.DontDisplay = true;
     return Dialog;
 }
Example #14
0
        public static NpcDialog Create()
        {
            NpcDialog Dialog = new NpcDialog();

            Dialog.Size        = 16;
            Dialog.Type        = 0x7F0;
            Dialog.Timer       = (uint)System.Environment.TickCount;
            Dialog.OptionID    = 255;
            Dialog.OptionType  = NpcOptionType.None;
            Dialog.DontDisplay = true;
            return(Dialog);
        }
Example #15
0
        public static bool Execute(Player player, int npcId, byte control, string input)
        {
            try
            {
                switch (control)
                {
                case 0:
                {
                    using (var yi = new NpcDialog(9))
                    {
                        yi
                        .Text(
                            "Hello, I am the entrance to the Phoenix Castle mine. Would you like to be teleported there?")
                        .Link("Yes, please.", 1)
                        .Link("No, thanks.", 255)
                        .Finish();

                        player.Send(yi);
                    }
                    break;
                }

                case 1:
                {
                    if (player.Level >= 40)
                    {
                        player.Teleport(28, 71, 1025);
                    }
                    else
                    {
                        using (var yi = new NpcDialog(9))
                        {
                            yi
                            .Text(
                                "Sorry, you must be at least level 40 to be able to enter this mine.")
                            .Link("Sorry...", 255)
                            .Finish();

                            player.Send(yi);
                        }
                    }

                    break;
                }
                }
            }
            catch
            {
                return(false);
            }
            return(true);
        }
Example #16
0
        public static bool Execute(Player player, int npcId, byte control, string input)
        {
            try
            {
                switch (control)
                {
                case 0:
                {
                    using (var yi = new NpcDialog(37))
                    {
                        yi
                        .Text("What can I do for you?")
                        .Link("Visit the jail.", 1)
                        .Link("Just passing by.", 255)
                        .Finish();

                        player.Send(yi);
                    }
                    break;
                }

                case 1:
                {
                    if (player.Money >= 1000)
                    {
                        player.Money -= 1000;
                        player.Teleport(29, 72, 6000);
                    }
                    else
                    {
                        using (var yi = new NpcDialog(37))
                        {
                            yi
                            .Text("Sorry, you do not have 1000 silvers.")
                            .Link("I see.", 255)
                            .Finish();

                            player.Send(yi);
                        }
                    }

                    break;
                }
                }
            }
            catch
            {
                return(false);
            }
            return(true);
        }
Example #17
0
        public static bool Execute(Player player, int npcId, byte control, string input)
        {
            try
            {
                switch (control)
                {
                case 0:
                {
                    using (var yi = new NpcDialog(60))
                    {
                        yi
                        .Text(
                            "Hello my soldier, in order to proceed to the next stage you need to collect 5 SoulStones as a charge for my teleportation service.")
                        .Link("I have collected them.", 1)
                        .Link("That is ok.", 255)
                        .Finish();

                        player.Send(yi);
                    }
                    break;
                }

                case 1:
                {
                    if (player.Inventory.HasItem(ItemNames.SoulStone, 5))
                    {
                        player.Teleport(230, 330, 2022);
                        //TODO: Add the global message and stageone reward
                    }
                    else
                    {
                        using (var yi = new NpcDialog(60))
                        {
                            yi
                            .Text("Are you trying to fool me? You have NOT collected them yet.")
                            .Link("I am sorry...", 255)
                            .Finish();

                            player.Send(yi);
                        }
                    }
                    break;
                }
                }
            }
            catch
            {
                return(false);
            }
            return(true);
        }
Example #18
0
        public static bool Execute(Player player, int npcId, byte control, string input)
        {
            try
            {
                switch (control)
                {
                case 0:
                {
                    using (var yi = new NpcDialog(32))
                    {
                        yi
                        .Text("The Ancient Devil was sealed in this island. The seal's power is very weak now. The Devil is gonna wake up. Can you help us?")
                        .Link("How can I help you?", 1)
                        .Link("Just passing by.", 255)
                        .Finish();

                        player.Send(yi);
                    }
                    break;
                }

                case 1:
                {
                    using (var yi = new NpcDialog(32))
                    {
                        yi
                        .Text("First, get 5 Amulets. Each amulet is protected by a Guard of different profession. Only if you are of the same profession, you can challenge the Guard.")
                        .Text(" So you had better ask your friend for help. After you gather the 5 Amulets, click on the yellow marks on the ground to bring out the devil and ")
                        .Text("it is guards. Enable PK mode to kill them. Will you help us?")
                        .Link("Yes, I shall try.", 2)
                        .Link("Let me think it over.", 255)
                        .Finish();

                        player.Send(yi);
                    }
                    break;
                }

                case 2:
                {
                    player.Teleport(188, 232, 1082);
                    break;
                }
                }
            }
            catch
            {
                return(false);
            }
            return(true);
        }
Example #19
0
        public static bool Execute(Player player, int npcId, byte control, string input)
        {
            try
            {
                switch (control)
                {
                case 0:
                {
                    using (var yi = new NpcDialog(32))
                    {
                        yi
                        .Text("Do you want to get teleported to the next floor?")
                        .Link("Yes, please.", 1)
                        .Link("No, thank you.", 255)
                        .Finish();

                        player.Send(yi);
                    }
                    break;
                }

                case 1:
                {
                    if (player.Inventory.HasItem(ItemNames.SkyToken))
                    {
                        player.Inventory.RemoveItem(ItemNames.SkyToken);
                        player.Teleport(104, 108, 1352);
                    }
                    else
                    {
                        using (var yi = new NpcDialog(32))
                        {
                            yi
                            .Text("Sorry, you do not have a SkyToken.")
                            .Link("I am sorry.", 255)
                            .Finish();

                            player.Send(yi);
                        }
                    }
                    break;
                }
                }
            }
            catch
            {
                return(false);
            }
            return(true);
        }
Example #20
0
        public static bool Execute(Player player, int npcId, byte control, string input)
        {
            try
            {
                switch (control)
                {
                case 0:
                {
                    using (var yi = new NpcDialog(20))
                    {
                        yi
                        .Text("If you are level 20 or above, you may level up at the training grounds. it does not consume any durability, life and mana. Do you want me to teleport you there?")
                        .Link("Please teleport me there.", 1)
                        .Link("Just passing by.", 255)
                        .Finish();

                        player.Send(yi);
                    }
                    break;
                }

                case 1:
                {
                    if (player.Money >= 1000)
                    {
                        player.Money -= 1000;
                        player.Teleport(215, 217, 1039);
                    }
                    else
                    {
                        using (var yi = new NpcDialog(20))
                        {
                            yi
                            .Text("Sorry, you do not have enough gold.")
                            .Link("I see.", 255)
                            .Finish();

                            player.Send(yi);
                        }
                    }
                    break;
                }
                }
            }
            catch
            {
                return(false);
            }
            return(true);
        }
Example #21
0
        public static bool Execute(Player player, int npcId, byte control, string input)
        {
            try
            {
                switch (control)
                {
                case 0:
                {
                    using (var yi = new NpcDialog(32))
                    {
                        yi
                        .Text("Would you like to visit the BotJail?")
                        .Link("Yes, please.", 1)
                        .Link("No, thank you.", 255)
                        .Finish();

                        player.Send(yi);
                    }
                    break;
                }

                case 1:
                {
                    if (player.PkPoints <= 30)
                    {
                        player.Teleport(29, 71, 6001);
                    }
                    else
                    {
                        using (var yi = new NpcDialog(32))
                        {
                            yi
                            .Text("Sorry, your PkPoints are above 30, so that I can not let you visit the BotJail.")
                            .Link("No, thank you.", 255)
                            .Finish();

                            player.Send(yi);
                        }
                    }

                    break;
                }
                }
            }
            catch
            {
                return(false);
            }
            return(true);
        }
Example #22
0
        public static bool Execute(Player player, int npcId, byte control, string input)
        {
            try
            {
                switch (control)
                {
                case 0:
                {
                    using (var yi = new NpcDialog(37))
                    {
                        yi
                        .Text("You can not leave here unless you have paid for your crimes.")
                        .Link("Ok! Let me get out from here!", 1)
                        .Link("I would rather rot in hell!", 255)
                        .Finish();

                        player.Send(yi);
                    }
                    break;
                }

                case 1:
                {
                    if (player.PkPoints >= 30)
                    {
                        using (var yi = new NpcDialog(37))
                        {
                            yi
                            .Text("You must stay and think about what you've done!")
                            .Link("I shall..", 255)
                            .Finish();

                            player.Send(yi);
                        }
                    }
                    else
                    {
                        player.Teleport(517, 352, 1002);
                    }

                    break;
                }
                }
            }
            catch
            {
                return(false);
            }
            return(true);
        }
Example #23
0
        public static bool Execute(Player player, int npcId, byte control, string input)
        {
            try
            {
                switch (control)
                {
                case 0:
                {
                    if (player.Inventory.HasItem(ItemNames.CommandToken))
                    {
                        using (var yi = new NpcDialog(60))
                        {
                            yi
                            .Text("Would you like to leave this tactic?")
                            .Link("Yes, please.", 1)
                            .Link("No, thanks.", 255)
                            .Finish();

                            player.Send(yi);
                        }
                    }
                    else
                    {
                        using (var yi = new NpcDialog(60))
                        {
                            yi
                            .Text("Sorry, you do not have the token from this tactic.")
                            .Link("I am sorry...", 255)
                            .Finish();

                            player.Send(yi);
                        }
                    }
                    break;
                }

                case 1:
                {
                    player.Teleport(025, 025, 1042);
                    break;
                }
                }
            }
            catch
            {
                return(false);
            }
            return(true);
        }
Example #24
0
        public static bool Execute(Player player, int npcId, byte control, string input)
        {
            try
            {
                switch (control)
                {
                case 0:
                {
                    using (var yi = new NpcDialog(7))
                    {
                        yi
                        .Text("Our shop is famous for dyeing, you can have your equipment dyed there, you have a wide choice of colors. One Meteor will be charged before you try the colors. Would you like to try?")
                        .Link("Yes, please.", 1)
                        .Link("I am not interested.", 255)
                        .Finish();

                        player.Send(yi);
                    }
                    break;
                }

                case 1:
                {
                    if (player.Inventory.HasItem(ItemNames.Meteor))
                    {
                        player.Inventory.RemoveItem(ItemNames.Meteor);
                        player.Teleport(22, 26, 1008);
                    }
                    else
                    {
                        using (var yi = new NpcDialog(7))
                        {
                            yi
                            .Text("Sorry, you do not have a Meteor.")
                            .Link("I am sorry.", 255)
                            .Finish();
                            player.Send(yi);
                        }
                    }
                    break;
                }
                }
                return(true);
            }
            catch
            {
                return(false);
            }
        }
Example #25
0
        public static bool Execute(Player player, int npcId, byte control, string input)
        {
            try
            {
                switch (control)
                {
                case 0:
                {
                    if (!player.Reborn)
                    {
                        //   if(Player.Level >=120 && Player.ProfessionLevel == 5 || (Player.Class == 135 && Player.Level >= 110))
                        using (var yi = new NpcDialog(35))
                        {
                            yi
                            .Text("Modify me.")
                            .Link("Link me.", 1)
                            .Link("F**k me.", 255)
                            .Finish();

                            player.Send(yi);
                        }
                    }
                    else
                    {
                        using (var yi = new NpcDialog(35))
                        {
                            yi
                            .Text("You are already a reborned character, I can not help you anymore.")
                            .Link("That is ok.", 255)
                            .Finish();

                            player.Send(yi);
                        }
                    }
                    break;
                }

                case 1:
                {
                    break;
                }
                }
            }
            catch
            {
                return(false);
            }
            return(true);
        }
Example #26
0
        public void OnStateEnter()
        {
            Chat.WriteLine("StartMissionState::OnStateEnter");

            Dynel questStarter = DynelManager.Characters.FirstOrDefault(x => x.Name == QuestStarterName && !x.IsPet);

            if (questStarter == null)
            {
                //Should we just reform and try again or try to solve this situation?
                Chat.WriteLine("Unable to locate quest starter.");
                return;
            }

            NpcDialog.Open(questStarter);
        }
Example #27
0
        private static void DisplayStorages(Player player, List <Storage> storages)
        {
            using (var dialog = new NpcDialog(10))
            {
                dialog.Text("     Id                            Name                          Owner                     Access\n");
                foreach (var storage in storages.TakeUpTo(10).OrderBy(s => s.StorageId))
                {
                    dialog.Text($"{storage.ToString(player)}\n");
                }

                dialog.Input("Storage ID", 1);
                dialog.Finish();
                player.Send(dialog);
            }
        }
Example #28
0
        public static bool Execute(Player player, int npcId, byte control, string input)
        {
            try
            {
                switch (control)
                {
                case 0:
                {
                    if (player.Inventory.RemoveItem(ItemNames.SoulJade))
                    {
                        using (var banzai = new NpcDialog(20))
                        {
                            banzai
                            .Text(
                                "Thanks for helping me! I shall reward you with a MoonBox to show you my appreciation!")
                            .Link("Oh! Thanks a lot!.", 255)
                            .Finish();

                            player.Send(banzai);
                        }
                        var moonBox = Item.Factory.Create(ItemNames.Moonbox);
                        player.Inventory.AddItem(moonBox);
                        player.Teleport(025, 025, 1042);
                    }
                    else
                    {
                        using (var banzai = new NpcDialog(20))
                        {
                            banzai
                            .Text("Sorry, you do not have a SoulJade.")
                            .Link("That is ok.", 255)
                            .Finish();

                            player.Send(banzai);
                        }
                        player.Teleport(025, 025, 1042);
                    }
                    break;
                }
                }
            }
            catch
            {
                return(false);
            }
            return(true);
        }
Example #29
0
        public void OnStateEnter()
        {
            Chat.WriteLine("GrabMissionState::OnStateEnter");

            //Ignore pets because I already know you people are going to try that.
            //There should be a NPC template associated with this mob that we can use to accurately identify it but i will wait until there's a need.
            Dynel questGiver = DynelManager.Characters.FirstOrDefault(x => x.Name == Constants.QuestGiverName && !x.IsPet);

            if (questGiver == null)
            {
                //Goto MoveToQuestGiver State?
                Chat.WriteLine("Unable to locate quest giver.");
                return;
            }

            NpcDialog.Open(questGiver);
        }
Example #30
0
        public static bool Execute(Player player, int npcId, byte control, string input)
        {
            try
            {
                switch (control)
                {
                case 0:
                {
                    using (var yi = new NpcDialog(22))
                    {
                        yi
                        .Text("Hello " + player.Name.TrimEnd('\0') + ", Welcome to Yi!")
                        .Text("Please select a Face - free of charge - from the guy next to me")
                        .Link("Will do!", 1)
                        .Finish();

                        player.Send(yi);
                    }
                    break;
                }

                case 1:
                {
                    using (var yi = new NpcDialog(22))
                    {
                        yi
                        .Text("Great! See you around!")
                        .Link("Yea! See you later!", 255)
                        .Finish();

                        player.Send(yi);
                    }
                    break;
                }
                }
                return(true);
            }
            catch
            {
                return(false);
            }
        }
Example #31
0
        public static bool Execute(Player player, int npcId, byte control, string input)
        {
            try
            {
                switch (control)
                {
                case 0:
                {
                    using (var yi = new NpcDialog(20))
                    {
                        yi
                        .Text("Hello " + player.Name.TrimEnd('\0') +
                              ", would you like to enter the PK arena? Be careful you there are a lot of PKers!")
                        .Link("Yes, please.", 1)
                        .Link("Teleport me to the infinity stamina arena!", 2)
                        .Link("No, thanks.", 255)
                        .Finish();

                        player.Send(yi);
                    }
                    break;
                }

                case 1:
                {
                    player.Teleport(51, 71, 1005);
                    break;
                }

                case 2:
                {
                    // Player.Teleport(51, 71, 1005);
                    break;
                }
                }
                return(true);
            }
            catch
            {
                return(false);
            }
        }