Пример #1
0
        public override void Run(Game_Server.Player _client, ushort _linkback)
        {
            Responses = new List <NpcDialogPacket>();
            AddAvatar();
            switch (_linkback)
            {
            case 0:
                AddText("If you have more rare items then you know what to do with, I can help you pack them!");
                AddOption("Pack Meteors", 1);
                AddOption("Pack DragonBalls", 2);
                AddOption("I don't have that problem.", 255);
                break;

            case 1:
                if (!_client.HasItem(Constants.METEOR_ID, 10))
                {
                    AddText("Fool! You need 10 Meteors if you want me to help you pack them.");
                    AddOption("I'm sorry!", 255);
                }
                else
                {
                    for (var i = 0; i < 10; i++)
                    {
                        _client.DeleteItem(Constants.METEOR_ID);
                    }
                    _client.CreateItem(Constants.METEOR_SCROLL_ID);
                    AddText("It is done. Enjoy your MeteorScroll.");
                    AddOption("Wow, thanks!", 255);
                }
                break;

            case 2:
                if (!_client.HasItem(Constants.DRAGONBALL_ID, 10))
                {
                    AddText("Fool! You need 10 DragonBalls if you want me to help you pack them.");
                    AddOption("I'm sorry!", 255);
                }
                else
                {
                    for (var i = 0; i < 10; i++)
                    {
                        _client.DeleteItem(Constants.DRAGONBALL_ID);
                    }
                    _client.CreateItem(Constants.DB_SCROLL_ID);
                    AddText("It is done. Enjoy your DBScroll.");
                    AddOption("Wow, thanks!", 255);
                }
                break;
            }
            AddFinish();
            Send();
        }
Пример #2
0
        public override void Run(Game_Server.Player _client, ushort _linkback)
        {
            Responses = new List <NpcDialogPacket>();
            AddAvatar();
            switch (_linkback)
            {
            case 0:
            {
                AddText("You can exchange 1 VigorFragment for 3 ImmortalStones or 1 ImpureVigor for 3 VigorFragments");
                AddOption("VigorFragments", 1);
                AddOption("ImpureVigor", 2);
                AddOption("I will not trade anything.", 255);

                break;
            }

            case 1:
            {
                if (_client.Inventory.Count <= 39 && _client.HasItem(722728, 3))
                {
                    _client.DeleteItem(722728);
                    _client.CreateItem(722729);
                }
                else
                {
                    AddText("Seems that you don't have enough space in inventory or you dont have required materials!");
                    AddOption("I see..", 255);
                }
                break;
            }

            case 2:
            {
                if (_client.Inventory.Count <= 39 && _client.HasItem(722729, 3))
                {
                    _client.DeleteItem(722728);
                    _client.CreateItem(722730);
                    _client.Save();
                }
                else
                {
                    AddText("You don't have enough space in inventory or you dont have required materials!");
                    AddOption("I see..", 255);
                }
                break;
            }
            }
            AddFinish();
            Send();
        }
Пример #3
0
        public override void Run(Game_Server.Player _client, ushort _linkback)
        {
            Responses = new List <NpcDialogPacket>();
            AddAvatar();
            switch (_linkback)
            {
            case 0:
            {
                AddText("I can give you 1 PureVigor for 3 ImpureVigors or i give you one SquamaBead for 3 PureVigor");
                AddOption("PureVigors", 1);
                AddOption("SquamaBead", 2);
                AddOption("This is messed up..", 255);

                break;
            }

            case 1:
            {
                if (_client.Inventory.Count <= 39 && _client.HasItem(722730, 3))
                {
                    _client.DeleteItem(722730);
                    _client.CreateItem(722731);
                    _client.Save();
                }
                else
                {
                    AddText("You either do not have enough required material or inventory space!");
                    AddOption("I see..", 255);
                }
                break;
            }

            case 2:
            {
                if (_client.Inventory.Count <= 39 && _client.HasItem(722731, 3))
                {
                    _client.DeleteItem(722731);
                    _client.CreateItem(722727);
                }
                else
                {
                    AddText("You either do not have enough required material or inventory space!");
                    AddOption("I see..", 255);
                }
                break;
            }
            }
            AddFinish();
            Send();
        }
        public override void Run(Game_Server.Player _client, ushort _linkback)
        {
            Responses = new List <NpcDialogPacket>();
            AddAvatar();
            switch (_linkback)
            {
            case 0:
                AddText("Our shop is famous for dyeing. If you want to have your equipment dyed, please wear them before you enter. You");
                AddText(" have a wide choice of colors. One meteor will be charged before you try the colors. Do you want a try?");
                AddOption("Yes, here is a meteor", 1);
                //AddOption("Do you have any good wine?", 2);
                AddOption("Never mind", 255);
                break;

            case 1:
                if (!_client.HasItem(Constants.METEOR_ID))
                {
                    AddText("You do not have the Meteor I requested.");
                    AddOption("Sorry", 255);
                }
                else
                {
                    _client.DeleteItem(Constants.METEOR_ID);
                    _client.ChangeMap(1008, 24, 24);
                    AddText("You can change your equipment's color as many times as you like while here.");
                    AddText(" When ready to leave just jump through the portal.");
                    AddOption("Understood", 255);
                }
                break;

            case 2:
                AddText("I can sell you DrunkCelestial wine for 1,000 silver if you would like.");
                AddOption("Yes please", 3);
                AddOption("No thanks", 255);
                break;

            case 3:
                if (_client.Money < 1000)
                {
                    AddText("You do not have the 1,000 silver required");
                    AddOption("Sorry", 255);
                }
                if (_client.Inventory.Count >= 40)
                {
                    AddText("Please make room in your inventory for the wine.");
                    AddOption("Sorry", 255);
                }
                else
                {
                    _client.Money -= 1000;
                    _client.CreateItem(722185);
                    AddText("Enjoy the wine, it's the finest in all the land!");
                    AddOption("I will!", 255);
                }
                break;
            }
            AddFinish();
            Send();
        }
        public override void Run(Game_Server.Player _client, ushort _linkback)
        {
            Responses = new List <NpcDialogPacket>();
            AddAvatar();
            switch (_linkback)
            {
            case 0:
                if (_client.HasItem(721000))
                {
                    AddText("My sister is in Bird Island. She fell in love with Joe there. Since Joe left her with no news, she stays there to wait for him.");
                    AddOption("I see.", 255);
                }
                else
                {
                    AddText("I cannot get near you now. You have got me going crazy. Wherever you go, whatever you do, I will be right here waiting for you.");
                    AddOption("Why are you so sad?", 1);
                    AddOption("I got to go.", 255);
                }
                break;

            case 1:
                AddText("My sister taught me that song, Her lover, Joe, is a brave and kind man. All said they make a good couple, but he left her.");
                AddOption("What a pity.", 2);
                AddOption("Another old love story.", 255);
                break;

            case 2:
                AddText("My sister believes that Joe still loves her. She stays in Bird Island waiting for him. Can you take my letter to her?");
                AddOption("OK. I shall visit her.", 3);
                AddOption("Just passing by.", 255);
                break;

            case 3:
                if (_client.Inventory.Count < 40)
                {
                    _client.CreateItem(721000);
                }
                else
                {
                    AddText("Your inventory is full, please leave a slot to take this letter.");
                    AddOption("Ok.", 255);
                    break;
                }
                break;
            }
            AddFinish();
            Send();
        }
Пример #6
0
        public override void Run(Game_Server.Player _client, ushort _linkback)
        {
            Responses = new List <NpcDialogPacket>();
            AddAvatar();
            switch (_linkback)
            {
            case 0:
            {
                AddText("I always have the worst luck...");
                AddOption("Sorry to hear that.", 255);
                AddOption("Let me try my luck..", 2);
                break;
            }

            case 2:
            {
                if (_client.CP >= 27)
                {
                    AddText("Are you sure you want to go to the Lottery Land?");
                    AddOption("Yes send me please!", 3);
                    AddOption("No this is a mistake", 255);
                    break;
                }
                else
                {
                    break;
                }
            }

            case 3:
            {
                if (_client.CP >= 27)
                {
                    _client.ChangeMap(700, 50, 50);
                    _client.CreateItem(710212, 1);
                    _client.CP -= 27;
                }
                break;
            }
            }

            AddFinish();
            Send();
        }
Пример #7
0
        public override void Run(Game_Server.Player _client, ushort _linkback)
        {
            Responses = new List <NpcDialogPacket>();
            AddAvatar();
            switch (_linkback)
            {
            case 0:
                if (_client.HasItem(721072))
                {
                    AddText("Can it be? Is that... YES!!! it's a SoulJade. I thought I would never see one of those. Please free me from this prision");
                    AddText("so I can join my family. I will give you this MoonBox I acquired before I died. Will you help me?");
                    AddOption("Yes, (use SoulJade)", 1);
                    AddOption("Sorry I cannoy help you yet", 255);
                }
                else
                {
                    AddText("You cannot help us without a SoulJade. Please leave here until you get one.");
                    AddOption("I will get one at once", 255);
                }
                break;

            case 1:

                if (_client.HasItem(721072))
                {
                    //tele player out of map
                    _client.ChangeMap(1002, 417, 516);

                    //remove the SoulJade
                    _client.DeleteItem(721072);

                    //Add MoonBox
                    _client.CreateItem(Constants.MOONBOX_ID);
                }
                else
                {
                    AddText("You cannot help us without a SoulJade. Please leave here until you get one.");
                    AddOption("I will get one at once", 255);
                }
                break;
            }
            AddFinish();
            Send();
        }
Пример #8
0
        public override void Run(Game_Server.Player _client, ushort _linkback)
        {
            Responses = new List <NpcDialogPacket>();
            AddAvatar();
            switch (_linkback)
            {
            case 0:
                if (_client.ProfessionType == Enum.ProfessionType.WaterTaoist)
                {
                    AddText("Hello Traveller, I can sell you a WindSpell to help you to get around this world");
                    AddOption("Show it to me!", 1);
                    AddOption("No Thanks", 255);
                }
                else
                {
                    AddText("I am sorry i can only help Water Taoists");
                    AddOption("Okay!", 255);
                }
                break;

            case 1:
                if (_client.ProfessionType == Enum.ProfessionType.WaterTaoist)
                {
                    if (_client.Money >= 100)
                    {
                        _client.Money -= 100;
                        _client.CreateItem(1060031);
                        AddText("Take Care Traveller!");
                        AddOption("Thanks!", 255);
                    }
                    else
                    {
                        AddText("You do not have enough silver");
                        AddOption("Thanks", 255);
                    }
                }
                break;
            }
            AddFinish();
            Send();
        }
Пример #9
0
        public override void Run(Game_Server.Player _client, ushort _linkback)
        {
            Responses = new List <NpcDialogPacket>();
            AddAvatar();
            switch (_linkback)
            {
            /*case 0:
             *  AddText("The lottery system is currently under development. Please be patient!");
             *  AddOption("Okay, I'll wait.", 255);
             *  break;*/
            case 0:
                AddText("Hello! Have you heard about the lottery? We have amazing");
                AddText(" rewards waiting for you! All you need is 1 lottery ticket.");
                AddText(" Each lottery ticket only costs 215 CPs.");
                AddOption("Let me try my luck!", 2);
                AddOption("Buy 1 Lottery Ticket (215 CPs)", 1);
                AddOption("Buy 10 Lottery Tickets (2150 CPs)", 10);
                AddOption("No thanks.", 255);
                break;

            case 2:
                _client.ChangeMap(700, 40, 49);
                break;

            case 1:
            case 10:
                if (_client.CP >= _linkback * 215)
                {
                    _client.CP -= (uint)(_linkback * 215);
                    for (int i = 0; i < _linkback; i++)
                    {
                        _client.CreateItem(710212);
                    }
                }
                break;
            }
            AddFinish();
            Send();
        }
Пример #10
0
        public override void Run(Game_Server.Player client, ushort linkback)
        {
            Responses = new List <NpcDialogPacket>();
            AddAvatar();

            if (client.ProfessionType != ProfessionType.Archer)
            {
                AddText("Archers do not share their secrets of battle with others. I shall not teach you.");
                AddOption("I see.", 255);
                AddFinish();
                Send();
                return;
            }

            switch (linkback)
            {
                #region Initial Options
            case 0:
                AddText("Mercilessly fight your way to the top, my friend, because Archers are destined ");
                AddText("for greatness! Your swift mind will give you the ability to attack from afar, at a ");
                AddText("pace unmatched by any of your peers. So, what can I do for you?");

                AddOption("I want to get promoted.", 1);
                AddOption("Learn class skills.", 3);
                AddOption("Okay. I see.", 255);
                break;
                #endregion

                #region Promotion
            case 1:
                switch (client.ProfessionLevel)
                {
                case 0:
                    AddText("The single requirement of becoming an Archer is a minimum level of 15.");
                    AddText(" Would you like to proceed?");
                    AddOption("Yes, please.", 2);
                    AddOption("No.", 255);
                    break;

                case 1:
                    AddText("You may become a Eagle Archer at level 40. Do you want to continue?");
                    AddOption("Yes, I do.", 2);
                    AddOption("No.", 255);
                    break;

                case 2:
                    AddText("You may promote to Tiger Archer at level 70.");
                    AddText(" I will require one Emerald, I hear they are dropped by");
                    AddText("  monsters in the desert. Are you ready for promotion?");
                    AddOption("I'm ready!", 2);
                    AddOption("I'm not sure...", 255);
                    break;

                case 3:
                    AddText("You may promote to Dragon Archer at level 100.");
                    AddText(" I will require one Meteor. Are you ready for promotion?");
                    AddOption("I'm ready!", 2);
                    AddOption("I'm not sure...", 255);
                    break;

                case 4:
                    AddText("You may promote to Archer Master at level 110.");
                    AddText(" I will require one Moon Box. Are you ready for promotion?");
                    AddOption("I'm ready!", 2);
                    AddOption("I'm not sure...", 255);
                    break;

                case 5:
                    AddText("You are a true Archer. I cannot promote you anymore!");
                    AddOption("I see.", 255);
                    break;
                }
                break;

            case 2:
                switch (client.ProfessionLevel)
                {
                case 0:        //level 15
                    if (client.Level >= 15)
                    {
                        AddText("You have been promoted! I have taught you XP skills as a reward!");
                        client.CombatManager.LearnNewSkill(SkillID.Fly);
                        client.Character.Profession++;
                        client.Send(new UpdatePacket(client.UID, UpdateType.Profession, client.Character.Profession));
                        client.Recalculate();
                        AddOption("Thank you!", 255);
                    }
                    else
                    {
                        AddText("You are not level 15, I will not promote you yet.");
                        AddOption("I'll work harder.", 255);
                    }
                    break;

                case 1:        //level 40
                    if (client.Level >= 40 && client.Strength >= 25 && client.Agility >= 90 && client.Vitality >= 12)
                    {
                        AddText("You have been promoted!");
                        client.Character.Profession++;
                        client.Send(new UpdatePacket(client.UID, UpdateType.Profession, client.Character.Profession));
                        client.Recalculate();
                        AddOption("Thank you!", 255);
                    }
                    else
                    {
                        AddText("You must be level 40, I will not promote you yet.");
                        AddOption("I'll work harder.", 255);
                    }
                    break;

                case 2:        //level 70
                    if (client.Level >= 70 && client.HasItem(Constants.EMERALD_ID) && client.Strength >= 45 && client.Agility >= 150 && client.Vitality >= 2)
                    {
                        client.DeleteItem(Constants.EMERALD_ID);
                        client.CreateItem(Constants.METEOR_ID);
                        AddText("You have been promoted!");
                        client.Character.Profession++;
                        client.Send(new UpdatePacket(client.UID, UpdateType.Profession, client.Character.Profession));
                        client.Recalculate();
                        AddOption("Thank you!", 255);
                    }
                    else
                    {
                        AddText("You must be level 70 and bring me an Emerald in order to be promoted!");
                        AddOption("I'll work harder.", 255);
                    }
                    break;

                case 3:        //level 100
                    if (client.Level >= 100 && client.HasItem(Constants.METEOR_ID) && client.Strength >= 60 && client.Agility >= 215 && client.Vitality >= 32)
                    {
                        client.DeleteItem(Constants.METEOR_ID);
                        AddText("You have been promoted!");
                        switch (client.RebornCount)
                        {
                        case 0:
                            client.CreateItem(700031);            //normal rainbow gem
                            break;

                        default:
                            client.CreateItem(130087, 0, 0, 0, 255);            //unique 1 sock armor
                            break;
                        }
                        client.Character.Profession++;
                        client.Send(new UpdatePacket(client.UID, UpdateType.Profession, client.Character.Profession));
                        client.Recalculate();
                        AddOption("Thank you!", 255);
                    }
                    else
                    {
                        AddText("You must be level 100 and have a Meteor in order to be promoted!");
                        AddOption("I'll work harder.", 255);
                    }
                    break;

                case 4:        //level 110
                    if (client.Level >= 110 && client.HasItem(Constants.MOONBOX_ID) && client.Strength >= 68 && client.Agility >= 235 && client.Vitality >= 34)
                    {
                        client.DeleteItem(Constants.MOONBOX_ID);
                        client.CreateItem(Constants.DRAGONBALL_ID);
                        AddText("You have been promoted!");
                        client.Character.Profession++;
                        client.Send(new UpdatePacket(client.UID, UpdateType.Profession, client.Character.Profession));
                        client.Recalculate();
                        AddOption("Thank you!", 255);
                    }
                    else
                    {
                        AddText("You must be level 110 and have a Moon Box in order to be promoted!");
                        AddOption("I'll work harder.", 255);
                    }
                    break;
                }
                break;
                #endregion

                #region Learn Skills
            case 3:
                AddText("The Archer's Skills are numerous, varied and powerful. Which would you like to learn?");
                AddOption("Fly", 4);
                AddOption("Scatter", 5);
                AddOption("Rapid Fire", 6);
                AddOption("Intensify", 7);
                AddOption("Other Skills", 8);
                AddOption("Nothing.", 255);
                break;

            case 8:
                AddText("The Archer's Skills are numerous, varied and powerful. Which would you like to learn?");
                AddOption("Advanced Fly", 9);
                AddOption("Arrow Rain", 10);
                AddOption("Previous Skills", 3);
                AddOption("Nothing.", 255);
                break;

            case 4:
                if (client.Level >= 15)
                {
                    AddText("You have learned Fly successfully");
                    client.CombatManager.LearnNewSkill(SkillID.Fly);
                }
                else
                {
                    AddText("You must be at least level 15 to learn this skill!");
                }
                AddOption("Thanks", 255);
                break;

            case 5:
                if (client.Level >= 23)
                {
                    AddText("You have learned Scatter successfully");
                    client.CombatManager.LearnNewSkill(SkillID.Scatter);
                }
                else
                {
                    AddText("You must be at least level 23 to learn this skill!");
                }
                AddOption("Thanks", 255);
                break;

            case 6:
                if (client.Level >= 46)
                {
                    AddText("You have learned Rapid Fire successfully");
                    client.CombatManager.LearnNewSkill(SkillID.RapidFire);
                }
                else
                {
                    AddText("You must be at least level 46 to learn this skill!");
                }
                AddOption("Thanks", 255);
                break;

            case 7:
                if (client.Level >= 71)
                {
                    AddText("You have learned Intensify successfully");
                    client.CombatManager.LearnNewSkill(SkillID.Intensify);
                }
                else
                {
                    AddText("You must be at least level 71 to learn this skill!");
                }
                AddOption("Thanks", 255);
                break;

            case 9:
                if (client.Level >= 70)
                {
                    AddText("You have learned Advanced Fly successfully");
                    client.CombatManager.LearnNewSkill(SkillID.AdvancedFly);
                }
                else
                {
                    AddText("You must be at least level 70 to learn this skill!");
                }
                AddOption("Thanks", 255);
                break;

            case 10:
                if (client.Level >= 70)
                {
                    AddText("You have learned Arrow Rain successfully");
                    client.CombatManager.LearnNewSkill(SkillID.ArrowRain);
                }
                else
                {
                    AddText("You must be at least level 70 to learn this skill!");
                }
                AddOption("Thanks", 255);
                break;
                #endregion
            }
            AddFinish();
            Send();
        }
Пример #11
0
        public override void Run(Game_Server.Player _client, ushort _linkback)
        {
            Responses = new List <NpcDialogPacket>();
            AddAvatar();
            switch (_linkback)
            {
            case 0:
                AddText("Welcome to Requiem World, Do not Hesitate to Contact the [GM] if you have any questions ");
                AddText("Please use the /report command to tell us about bugs. Enjoy your free starter pack! ");
                AddOption("Thanks ", 2);
                AddOption("Newbie Quest ", 3);
                break;

            case 2:

                if (_client.Level <= 25)
                {
                    if (_client.Inventory.Count < 33)
                    {
                        if (_client.ProfessionType == Enum.ProfessionType.Taoist)
                        {
                            _client.CreateItem(421009);     //wep
                            _client.CreateItem(134009);     // armor
                            _client.CreateItem(114009);     // helmet
                            _client.CreateItem(152019);     // ring
                            _client.CreateItem(121009);     // necklace
                            _client.CreateItem(160019);     // boots
                            AddText("Have Fun! ");
                            AddOption("I will", 255);
                            break;
                        }
                        if (_client.ProfessionType == Enum.ProfessionType.Trojan)
                        {
                            _client.CreateItem(480019);     //wep
                            _client.CreateItem(130009);     // armor
                            _client.CreateItem(118009);     // helmet
                            _client.CreateItem(150019);     // ring
                            _client.CreateItem(120009);     // necklace
                            _client.CreateItem(160019);     // boots
                            AddText("Have Fun! ");
                            AddOption("I will", 255);
                            break;
                        }
                        if (_client.ProfessionType == Enum.ProfessionType.Warrior)
                        {
                            _client.CreateItem(561019);     //wep
                            _client.CreateItem(131009);     // armor
                            _client.CreateItem(111009);     // helmet
                            _client.CreateItem(150019);     // ring
                            _client.CreateItem(120009);     // necklace
                            _client.CreateItem(160019);     // boots
                            AddText("Have Fun! ");
                            AddOption("I will", 255);
                            break;
                        }
                        if (_client.ProfessionType == Enum.ProfessionType.Archer)
                        {
                            _client.CreateItem(500009);     //wep
                            _client.CreateItem(133009);     // armor
                            _client.CreateItem(113009);     // helmet
                            _client.CreateItem(150019);     // ring
                            _client.CreateItem(120009);     // necklace
                            _client.CreateItem(160019);     // boots
                            _client.CreateItem(1050000);    // arrows
                            AddText("Have Fun! ");
                            AddOption("I will.", 255);
                            break;
                        }

                        else
                        {
                            AddText("");
                        }
                        break;
                    }
                    else
                    {
                        _client.SendMessage("You have no space in your inventory.");
                        AddText("Free some space in you bag before you can claim Requiem gift");
                    }
                }
                else
                {
                    AddText("I am sorry i can only help new players under lvl 25. Maybe you can too!");
                    AddOption("got it!", 255);
                }
                break;

            case 3:
                AddText("Do you really want to start the newbie quest?");
                AddOption("Give it to me!", 4);
                AddOption("Not for me!", 5);

                break;

            case 4:
                AddText("So you need to kill 10 Pheasants just outside of Twin City");
                AddOption("This sounds pretty easy!", 5);
                AddOption("I dont want to make any quests", 255);

                break;

            case 5:
                if (_client.Level <= 25)
                {
                    _client.MonsterStart(1, 10);

                    break;
                }
                break;
            }

            AddFinish();
            Send();
        }
Пример #12
0
        public override void Run(Game_Server.Player client, ushort linkback)
        {
            Responses = new List <NpcDialogPacket>();
            AddAvatar();
            switch (linkback)
            {
                #region Initial Options
            case 0:
                if (client.ProfessionType == ProfessionType.Taoist && client.RebornCount == 0 || client.ProfessionType == ProfessionType.FireTaoist && client.RebornCount == 0 || client.ProfessionType == ProfessionType.WaterTaoist && client.RebornCount == 0)
                {
                    AddText("Most of the Taoists are little concerned with anything outside the pursuit of ");
                    AddText("advanced spiritual powers. You are gifted in harnessing your inner power, ");
                    AddText("but remember, the roots of success lie in thoroughness and attention to detail.");
                    AddOption("I want to get promoted.", 1);
                    AddOption("Learn basic skills.", 5); //Handles basic taoist skills
                    if (client.ProfessionLevel >= 2)     //Handles class specific skills
                    {
                        AddOption("Learn advanced skills.", 6);
                    }
                    AddOption("Okay. I see.", 255);
                }
                else if (client.ProfessionType == ProfessionType.Taoist && client.RebornCount == 0 || client.ProfessionType == ProfessionType.FireTaoist && client.RebornCount == 0 || client.ProfessionType == ProfessionType.WaterTaoist && client.RebornCount == 1)
                {
                    AddText("Most of the Taoists are little concerned with anything outside the pursuit of ");
                    AddText("advanced spiritual powers. You are gifted in harnessing your inner power, ");
                    AddText("but remember, the roots of success lie in thoroughness and attention to detail.");
                    AddOption("I want to get promoted.", 1);
                    AddOption("Learn basic skills.", 5); //Handles basic taoist skills
                    if (client.ProfessionLevel >= 2)     //Handles class specific skills
                    {
                        AddOption("Learn advanced skills.", 6);
                    }
                    AddOption("Reborn skills", 60);
                    AddOption("Okay. I see.", 255);
                }
                else if (client.ProfessionType != ProfessionType.Taoist && client.ProfessionType != ProfessionType.FireTaoist && client.ProfessionType != ProfessionType.WaterTaoist && client.RebornCount >= 1)
                {
                    AddText("I can help you learn the skills you need after you have been reborn.");
                    AddOption("Reborn skills.", 60);
                }
                else if (client.ProfessionType != ProfessionType.Taoist && client.ProfessionType != ProfessionType.FireTaoist && client.ProfessionType != ProfessionType.WaterTaoist && client.RebornCount == 0)
                {
                    AddText("The taoists` secrets are not to be trained to outsiders. Train elsewhere, master conqueror.");
                    AddOption("I see.", 255);
                }
                break;
                #endregion

                #region Promotion
            case 1:
                switch (client.ProfessionLevel)
                {
                case 0:
                    AddText("The single requirement of becoming an Taoist is a minimum level of 15.");
                    AddText(" Would you like to proceed?");
                    AddOption("Yes, please.", 2);
                    AddOption("No.", 255);
                    break;

                case 1:
                    AddText("A decision stands before you! Become an all powerful fire taoist or a merciful water taoist?");
                    AddOption("Water Taoist", 3);
                    AddOption("Fire Taoist", 4);
                    AddOption("No.", 255);
                    break;

                case 2:
                    if (client.ProfessionType == ProfessionType.FireTaoist)
                    {
                        AddText("You may promote to become a Fire Wizard at level 70.");
                    }
                    else
                    {
                        AddText("You may promote to become a Water Wizard at level 70.");
                    }
                    AddText(" I will require one Emerald, I hear they are dropped by");
                    AddText("  monsters in the desert. Are you ready for promotion?");
                    AddOption("I'm ready!", 2);
                    AddOption("I'm not sure...", 255);
                    break;

                case 3:
                    if (client.ProfessionType == ProfessionType.FireTaoist)
                    {
                        AddText("You may promote to become a Fire Master at level 100..");
                    }
                    else
                    {
                        AddText("You may promote to become a Water Master at level 100.");
                    }
                    AddText(" I will require one Meteor. Are you ready for promotion?");
                    AddOption("I'm ready!", 2);
                    AddOption("I'm not sure...", 255);
                    break;

                case 4:
                    if (client.ProfessionType == ProfessionType.FireTaoist)
                    {
                        AddText("You may promote to become a Fire Saint at level 100..");
                    }
                    else
                    {
                        AddText("You may promote to become a Water Saint at level 100.");
                    }
                    AddText(" I will require one Moon Box. Are you ready for promotion?");
                    AddOption("I'm ready!", 2);
                    AddOption("I'm not sure...", 255);
                    break;

                case 5:
                    AddText("You are a true Archer. I cannot promote you anymore!");
                    AddOption("I see.", 255);
                    break;
                }
                break;

            case 2:
                switch (client.ProfessionLevel)
                {
                case 0:        //level 15
                    if (client.Level >= 15)
                    {
                        AddText("You have been promoted! I have taught you an XP skill as a reward!");
                        client.CombatManager.AddOrUpdateSkill(SkillID.Thunder, 0);
                        client.Character.Profession++;
                        client.Send(new UpdatePacket(client.UID, UpdateType.Profession, client.Character.Profession));
                        client.Recalculate();
                        AddOption("Thank you!", 255);
                    }
                    else
                    {
                        AddText("You are not level 15, I will not promote you yet.");
                        AddOption("I'll work harder.", 255);
                    }
                    break;

                case 1:        //level 40
                    if (client.Level >= 40 && client.Agility >= 25 && client.Vitality >= 22 && client.Spirit >= 80)
                    {
                        AddText("You have been promoted!");
                        if (client.RebornCount == 1)
                        {
                            AddText("I've given you a special item to help commemorate the occasion!");
                            client.CreateItem(410077);        //poison blade - need to add stat
                        }
                        if (isFire)
                        {
                            client.Character.Profession = 142;
                        }
                        else
                        {
                            client.Character.Profession = 132;
                        }
                        client.Send(new UpdatePacket(client.UID, UpdateType.Profession, client.Character.Profession));
                        client.Recalculate();
                        AddOption("Thank you!", 255);
                    }
                    else
                    {
                        AddText("You must be level 40, I will not promote you yet.");
                        AddOption("I'll work harder.", 255);
                    }
                    break;

                case 2:        //level 70
                    if (client.Level >= 70 && client.HasItem(Constants.EMERALD_ID) && client.Agility >= 45 && client.Vitality >= 32 && client.Spirit >= 140)
                    {
                        client.DeleteItem(Constants.EMERALD_ID);
                        client.CreateItem(Constants.METEOR_ID);
                        AddText("You have been promoted!");
                        client.Character.Profession++;
                        client.Send(new UpdatePacket(client.UID, UpdateType.Profession, client.Character.Profession));
                        client.Recalculate();
                        AddOption("Thank you!", 255);
                    }
                    else
                    {
                        AddText("You must be level 70 and bring me an Emerald in order to be promoted!");
                        AddOption("I'll work harder.", 255);
                    }
                    break;

                case 3:        //level 100
                    if (client.Level >= 100 && client.HasItem(Constants.METEOR_ID) && client.Agility >= 60 && client.Vitality >= 42 && client.Spirit >= 205)
                    {
                        client.DeleteItem(Constants.METEOR_ID);
                        AddText("You have been promoted!");
                        switch (client.RebornCount)
                        {
                        case 0:
                            client.CreateItem(700031);            //normal rainbow gem
                            break;

                        default:
                            client.CreateItem(130087, 0, 0, 0, 255);            //unique 1 sock armor
                            break;
                        }
                        client.Character.Profession++;
                        client.Send(new UpdatePacket(client.UID, UpdateType.Profession, client.Character.Profession));
                        client.Recalculate();
                        AddOption("Thank you!", 255);
                    }
                    else
                    {
                        AddText("You must be level 100 and have a Meteor in order to be promoted!");
                        AddOption("I'll work harder.", 255);
                    }
                    break;

                case 4:        //level 110
                    if (client.Level >= 110 && client.HasItem(Constants.MOONBOX_ID) && client.Agility >= 65 && client.Vitality >= 47 && client.Spirit >= 225)
                    {
                        client.DeleteItem(Constants.MOONBOX_ID);
                        client.CreateItem(Constants.DRAGONBALL_ID);
                        AddText("You have been promoted!");
                        client.Character.Profession++;
                        client.Send(new UpdatePacket(client.UID, UpdateType.Profession, client.Character.Profession));
                        client.Recalculate();
                        AddOption("Thank you!", 255);
                    }
                    else
                    {
                        AddText("You must be level 110 and have a Moon Box in order to be promoted!");
                        AddOption("I'll work harder.", 255);
                    }
                    break;
                }
                break;

            case 3:
            case 4:
                isFire = linkback == 4;
                goto case 2;
                #endregion

                #region Learn Skills
            case 5:
                AddText("What skill would you like to learn?");
                AddOption("Basic Spells", 10);
                AddOption("Xp Skills", 11);
                AddOption("Fire", 12);
                AddOption("Meditation", 13);
                AddOption("Nothing.", 255);
                break;

            case 6:
                if (client.ProfessionType == ProfessionType.FireTaoist)
                {
                    AddText("What skill would you like to learn?");
                    AddOption("Fire Ring", 14);
                    AddOption("Fire Meteor", 15);
                    AddOption("Fire Circle", 16);
                    AddOption("Tornado", 17);
                }
                else if (client.ProfessionType == ProfessionType.WaterTaoist)
                {
                    AddText("What skill would you like to learn?");
                    AddOption("Healing Rain", 18);
                    AddOption("Star of Accuracy", 19);
                    AddOption("Magic Shield", 20);
                    AddOption("Stigma", 21);
                    AddOption("More skills", 30);
                }
                else
                {
                    AddText("What! You don't belong here. I can only teach these skills to advanced students.");
                }
                AddOption("Nevermind", 255);
                break;

            case 30:
                if (client.ProfessionType == ProfessionType.WaterTaoist)
                {
                    AddOption("Invisibility", 22);
                    AddOption("Pray", 23);
                    AddOption("Advanced Cure", 24);
                    AddOption("Nectar", 25);
                    AddOption("Previous skills", 6);
                }
                else
                {
                    AddText("What! You don't belong here. I can only teach these skills to advanced students.");
                }
                AddOption("Nevermind", 255);
                break;

                #region Basic Skills
            case 10:
                client.CombatManager.LearnNewSkill(SkillID.Cure);
                client.CombatManager.LearnNewSkill(SkillID.Thunder);
                AddText("Learned all basic spells.");
                AddOption("Thanks", 255);
                break;

            case 11:
                if (client.Level >= 15)
                {
                    client.CombatManager.LearnNewSkill(SkillID.Lightning);
                    if (client.Level >= 40)
                    {
                        client.CombatManager.LearnNewSkill(SkillID.Volcano);
                        if (client.ProfessionType == ProfessionType.WaterTaoist)
                        {
                            client.CombatManager.LearnNewSkill(SkillID.Revive);
                        }
                        if (client.Level >= 70)
                        {
                            client.CombatManager.LearnNewSkill(SkillID.SpeedLightning);
                        }
                    }

                    AddText("Learned all available XP skills");
                }
                else
                {
                    AddText("You must be at least level 15 to learn XP skills");
                }
                AddOption("Thanks", 255);
                break;

            case 12:
                if (client.Level >= 40 && client.CombatManager.KnowsSkillLevel(SkillID.Thunder, 4))
                {
                    client.CombatManager.LearnNewSkill(SkillID.Fire);
                    AddText("You have learned Fire successfully");
                }
                else
                {
                    AddText("You must be at least level 40 with level 4 Thunder to learn this skill");
                }
                AddOption("Thanks", 255);
                break;

            case 13:
                if (client.Level >= 44)
                {
                    client.CombatManager.LearnNewSkill(SkillID.Meditation);
                    AddText("You have learned Meditation successfully");
                }
                else
                {
                    AddText("You must be at least level 44 to learn this skill");
                }
                AddOption("Thanks", 255);
                break;
                #endregion

                #region Fire Skills
            case 14:
                if (client.Level >= 55 && client.ProfessionType == ProfessionType.FireTaoist)
                {
                    client.CombatManager.LearnNewSkill(SkillID.FireRing);
                    AddText("You have learned Fire Ring successfully");
                }
                else
                {
                    AddText("You must be at least level 55 to learn this skill");
                }
                AddOption("Thanks", 255);
                break;

            case 15:
                if (client.Level >= 52 && client.ProfessionType == ProfessionType.FireTaoist)
                {
                    client.CombatManager.LearnNewSkill(SkillID.FireMeteor);
                    AddText("You have learned Fire Meteor successfully");
                }
                else
                {
                    AddText("You must be at least level 52 to learn this skill");
                }
                AddOption("Thanks", 255);
                break;

            case 16:
                if (client.Level >= 65 && client.ProfessionType == ProfessionType.FireTaoist)
                {
                    client.CombatManager.LearnNewSkill(SkillID.FireCircle);
                    AddText("You have learned Fire Circle successfully");
                }
                else
                {
                    AddText("You must be at least level 65 to learn this skill");
                }
                AddOption("Thanks", 255);
                break;

            case 17:
                if (client.Level >= 90 && client.ProfessionType == ProfessionType.FireTaoist && client.CombatManager.KnowsSkillLevel(SkillID.Fire, 3))
                {
                    client.CombatManager.LearnNewSkill(SkillID.Tornado);
                    AddText("You have learned Tornado successfully");
                }
                else
                {
                    AddText("You must be at least level 90 with level 3 Fire to learn this skill");
                }
                AddOption("Thanks", 255);
                break;
                #endregion

                #region Water Skills
            case 18:
                if (client.Level >= 40 && client.ProfessionType == ProfessionType.WaterTaoist)
                {
                    client.CombatManager.LearnNewSkill(SkillID.HealingRain);
                    AddText("You have learned Healing Rain successfully");
                }
                else
                {
                    AddText("You must be at least level 40 to learn this skill");
                }
                AddOption("Thanks", 255);
                break;

            case 19:
                if (client.Level >= 45 && client.ProfessionType == ProfessionType.WaterTaoist)
                {
                    client.CombatManager.LearnNewSkill(SkillID.StarOfAccuracy);
                    AddText("You have learned Star of Accuracy successfully");
                }
                else
                {
                    AddText("You must be at least level 45 to learn this skill");
                }
                AddOption("Thanks", 255);
                break;

            case 20:
                if (client.Level >= 50 && client.ProfessionType == ProfessionType.WaterTaoist)
                {
                    client.CombatManager.LearnNewSkill(SkillID.MagicShield);
                    AddText("You have learned Magic Shield successfully");
                }
                else
                {
                    AddText("You must be at least level 50 to learn this skill");
                }
                AddOption("Thanks", 255);
                break;

            case 21:
                if (client.Level >= 55 && client.ProfessionType == ProfessionType.WaterTaoist)
                {
                    client.CombatManager.LearnNewSkill(SkillID.Stigma);
                    AddText("You have learned Stigma successfully");
                }
                else
                {
                    AddText("You must be at least level 55 to learn this skill");
                }
                AddOption("Thanks", 255);
                break;

            case 22:
                if (client.Level >= 60 && client.ProfessionType == ProfessionType.WaterTaoist)
                {
                    client.CombatManager.LearnNewSkill(SkillID.Invisiblity);
                    AddText("You have learned Invisibility successfully");
                }
                else
                {
                    AddText("You must be at least level 60 to learn this skill");
                }
                AddOption("Thanks", 255);
                break;

            case 23:
                if (client.Level >= 70 && client.ProfessionType == ProfessionType.WaterTaoist)
                {
                    client.CombatManager.LearnNewSkill(SkillID.Pray);
                    AddText("You have learned Pray successfully");
                }
                else
                {
                    AddText("You must be at least level 70 to learn this skill");
                }
                AddOption("Thanks", 255);
                break;

            case 24:
                if (client.Level >= 81 && client.ProfessionType == ProfessionType.WaterTaoist)
                {
                    client.CombatManager.LearnNewSkill(SkillID.AdvancedCure);
                    AddText("You have learned Advanced Cure successfully");
                }
                else
                {
                    AddText("You must be at least level 81 to learn this skill");
                }
                AddOption("Thanks", 255);
                break;

            case 25:
                if (client.Level >= 94 && client.ProfessionType == ProfessionType.WaterTaoist)
                {
                    client.CombatManager.LearnNewSkill(SkillID.Nectar);
                    AddText("You have learned Nectar successfully");
                }
                else
                {
                    AddText("You must be at least level 94 to learn this skill");
                }
                AddOption("Thanks", 255);
                break;
                #endregion

                #region Reborn Skills

                #region SummonGuard
            case 60:
                AddText("In order to learn Summon Guard, you will need to bring me a Rate 10 Gold Ore.");
                AddOption("Summon Guard", 70);
                break;

            case 70:
                if (client.RebornCount >= 1)
                {
                    if (client.HasItem(1072059))
                    {
                        if (client.CombatManager.KnowsSkill(SkillID.SummonGuard))
                        {
                            AddText("You already know Summon Guard.");
                            AddOption("I see", 255);
                        }
                        else
                        {
                            client.CombatManager.LearnNewSkill(SkillID.SummonGuard);
                            client.DeleteItem(1072059);
                            AddText("You have learned Summon Guard.");
                            AddOption("Thanks", 255);
                        }
                    }
                    else
                    {
                        AddText("Sorry, you do not have a Rate 10 Gold Ore.");
                        AddOption("I see", 255);
                    }
                }
                break;
                #endregion

                #endregion

                #endregion
            }
            AddFinish();
            Send();
        }
        public override void Run(Game_Server.Player _client, ushort _linkback)
        {
            Responses = new List <NpcDialogPacket>();
            AddAvatar();
            switch (_linkback)
            {
            case 0:
                AddText("People are pursuing greather achievement during their lives, but none can make it due to the limit of human constitution.");
                AddOption("What does it mean?", 1);
                AddOption("I don't belive it.", 255);
                break;

            case 1:
                AddText("Mortals are mundane. Only getting rid of it can help them accomplish their aims.");
                AddText("If you are high level enough, you can get reborn to learn more and stronger skills.");
                AddOption("How to get reborn?", 2);
                AddOption("I am satisfied.", 255);
                break;

            case 2:
                AddText("It is difficult.First, you should reach an certain level. Second, you need a CelestialStone.");
                AddOption("How to get CelestialStone?", 3);
                AddOption("Forget it.", 255);
                break;

            case 3:
                AddText("CelestialStone is made of 7 gems: VioletGem, KylinGem, RainbowGem, MoonGem, PhoenixGem, FuryGem, DragonGem, and CleanWater.");
                AddOption("What is CleanWater?", 4);
                AddOption("It is difficult.", 255);
                break;

            case 4:
                AddText("It is used to get rid of your mundaneness, and then you won't be affected by the environment. By the way, Clean Water comes from celestial rinsing.");
                AddOption("What are gems used for?", 5);
                break;

            case 5:
                AddText("Only seven gems can protect you during the rebirth.");
                AddOption("I will collect them now.", 6);
                AddOption("I changed my mind.", 255);
                break;

            case 6:
                AddText("It is easy to get the gems. But CleanWater...");
                AddOption("But what?", 7);
                break;

            case 7:
                AddText("The Adventure island is the headstream of CleanWater. But it is occupied by WaterEvil and he uses spell to hide the stream.");
                AddOption("What can I do?", 8);
                AddOption("I will give up.", 255);
                break;

            case 8:
                AddText("WaterEvilElder will go to get the water every certain time. If you defeat him, you may get the water. But he is very hard to deal with.");
                AddOption("I see.Thank you.", 255);
                AddOption("Anything else?", 9);
                break;

            case 9:
                if (_client.HasItem(721258) && _client.HasItem(700001) && _client.HasItem(700011) && _client.HasItem(700021) && _client.HasItem(700031) && _client.HasItem(700041) && _client.HasItem(700051) && _client.HasItem(700061))
                {
                    AddText("Are you sure you want to refine CelestialStone?");
                    AddOption("Sure.", 10);
                    AddOption("I am not sure.", 255);
                }
                else
                {
                    AddText("Come here to refine CelestialStone when you get the 7 Gems and CleanWater.");
                    AddOption("That's ok.", 255);
                }
                break;

            case 10: if (_client.HasItem(721258) && _client.HasItem(700001) && _client.HasItem(700011) && _client.HasItem(700021) && _client.HasItem(700031) && _client.HasItem(700041) && _client.HasItem(700051) && _client.HasItem(700061))
                {
                    AddText("There you go, check it in your inventory.");
                    AddOption("Thank you.", 255);
                    _client.DeleteItem(721258);
                    _client.DeleteItem(700001);
                    _client.DeleteItem(700011);
                    _client.DeleteItem(700021);
                    _client.DeleteItem(700031);
                    _client.DeleteItem(700041);
                    _client.DeleteItem(700051);
                    _client.DeleteItem(700061);
                    _client.CreateItem(721259);
                }
                else
                {
                    AddText("Come here to refine CelestialStone when you get the 7 Gems and CleanWater.");
                    AddOption("That's ok.", 255);
                }

                break;
            }
            AddFinish();
            Send();
        }
Пример #14
0
        public override void Run(Game_Server.Player _client, ushort _linkback)
        {
            Responses = new List <NpcDialogPacket>();
            AddAvatar();
            switch (_linkback)
            {
            case 0:
                if (_client.Character.Level >= 70)
                {
                    AddText("We hope all can help each other. If you power level the newbies, we may reward you with Experience, Meteors or Dragonballs.");
                    AddText("Are you interested?");
                    AddOption("Tell me more details.", 1);
                    AddOption("Check my virtue points.", 5);
                    AddOption("Claim prize.", 6);
                    AddOption("Just passing by.", 255);
                }
                else
                {
                    AddText("You must be level 70 at least or more in order to get virtue points and be able to exchange for am prize.");
                    AddOption("I see.", 255);
                }
                break;

            case 1:
                AddText("If you are above level 70 and try to power level the newbies (at least 20 levels lower than you), you may gain virtue points.");
                AddOption("What are the virtue points?", 2);
                break;

            case 2:
                AddText("The more newbies you power level, the more virtue points you gain. I shall give you a good reward for a certain virtue points.");
                AddOption("How can I gain virtue points?", 3);
                AddOption("What prize can I expect?", 4);

                break;

            case 3:
                AddText("Once the newbies are one level up, the team captain can gain virtue points accordingly.");
                AddOption("I see.", 255);

                break;

            case 4:
                AddText("I shall reward you exp. of equivalent to an ExpBall for 15,000 virtue points , a meteor for 5,000 virtue points and an Dragonball for 50,000 virtue points.");
                AddOption("I see.", 255);

                break;

            case 5:
                AddText("Your current virtue points are " + _client.VirtuePoints + "  , please try to gain more.");
                AddOption("I see.", 255);

                break;

            case 6:
                if (_client.Inventory.Count == 40)
                {
                    //Lazy sanity check to stop people accidentally wasting VP. They can still packet exploit but they'd just be wasting VP and not getting items.
                    AddText("Please make room in your inventory before trying to claim a prize!");
                    AddOption("Sorry", 255);
                }
                else
                {
                    AddText("What prize do you prefer?");
                    AddOption("Meteor", 7);
                    AddOption("Experience.", 8);
                    AddOption("Dragonball", 9);
                    AddOption("Let me think it over.", 255);
                }
                break;

            case 7:
                if (_client.VirtuePoints >= 5000)
                {
                    _client.VirtuePoints -= 5000;
                    _client.CreateItem(1088001);
                    AddText("There you go.Check out in your inventory!");
                    AddOption("Thanks!", 255);
                }
                else
                {
                    AddText("Sorry, you do not have the required virtue points.");
                    AddOption("I see.", 255);
                }
                break;

            case 8:
                if (_client.VirtuePoints >= 15000 && _client.Character.Level <= 129)
                {
                    _client.VirtuePoints -= 15000;
                    _client.GainExpBall(1200);
                    AddText("There you go!");
                    AddOption("Thanks!", 255);
                }
                else if (_client.VirtuePoints >= 15000 && _client.Character.Level >= 130)
                {
                    AddText("Only characters below level 130 can exchange the virtue points for exp.");
                    AddText("You may find Simon (Twin city 393,235) and spend 2,000 virtue points to hunt the treasure in the Labyrinth.)");
                    AddOption("Wow.So cool.", 255);
                }
                else
                {
                    AddText("Sorry, you do not have the required virtue points.");
                    AddOption("I see.", 255);
                }
                break;

            case 9:
                if (_client.VirtuePoints >= 50000)
                {
                    _client.VirtuePoints -= 50000;
                    _client.CreateItem(1088000);
                    AddText("There you go.Check out in your inventory!");
                    AddOption("Thanks!", 255);
                }
                else
                {
                    AddText("Sorry, you do not have the required virtue points.");
                    AddOption("I see.", 255);
                }
                break;
            }
            AddFinish();
            Send();
        }
Пример #15
0
        public override void Run(Game_Server.Player client, ushort linkback)
        {
            Responses = new List <NpcDialogPacket>();
            AddAvatar();

            if (client.ProfessionType != ProfessionType.Trojan)
            {
                AddText("Trojans do not share their secrets of battle with others. I shall not teach you.");
                AddOption("I see.", 255);
                AddFinish();
                Send();
                return;
            }

            switch (linkback)
            {
                #region Initial Options
            case 0:
                AddText("Trojans can wield dual weapons, and fearlessly take on anyone in melee");
                AddText(" combat! Whatever the cost, always remember that courage is the foundation");
                AddText(" of victory! So, what can I do for you?");
                AddOption("I would like to get promoted.", 1);
                AddOption("I wish to learn skills.", 3);
                AddOption("Nothing.", 255);
                break;
                #endregion

                #region Promotion
            case 1:
                switch (client.ProfessionLevel)
                {
                case 0:
                    AddText("The single requirement of becoming a Trojan is a minimum level of 15.");
                    AddText(" Would you like to proceed?");
                    AddOption("Yes, please.", 2);
                    AddOption("No.", 255);
                    break;

                case 1:
                    AddText("You may become a Veteran Trojan at level 40. Do you want to continue?");
                    AddOption("Yes, I do.", 2);
                    AddOption("No.", 255);
                    break;

                case 2:
                    AddText("You may promote to Tiger Trojan at level 70.");
                    AddText(" I will require one Emerald, I hear they are dropped by");
                    AddText("  monsters in the desert. Are you ready for promotion?");
                    AddOption("I'm ready!", 2);
                    AddOption("I'm not sure...", 255);
                    break;

                case 3:
                    AddText("You may promote to Tiger Trojan at level 100.");
                    AddText(" I will require one Meteor. Are you ready for promotion?");
                    AddOption("I'm ready!", 2);
                    AddOption("I'm not sure...", 255);
                    break;

                case 4:
                    AddText("You may promote to Tiger Trojan at level 110.");
                    AddText(" I will require one Moon Box. Are you ready for promotion?");
                    AddOption("I'm ready!", 2);
                    AddOption("I'm not sure...", 255);
                    break;

                case 5:
                    AddText("You are a true Trojan. I cannot promote you anymore!");
                    AddOption("I see.", 255);
                    break;
                }
                break;

            case 2:
                switch (client.ProfessionLevel)
                {
                case 0:        //level 15
                    if (client.Level >= 15)
                    {
                        AddText("You have been promoted! I have taught you XP skills as a reward!");
                        client.CombatManager.LearnNewSkill(SkillID.Accuracy);
                        client.CombatManager.LearnNewSkill(SkillID.Cyclone);
                        client.Character.Profession++;
                        client.Send(new UpdatePacket(client.UID, UpdateType.Profession, client.Character.Profession));
                        client.Recalculate();
                        AddOption("Thank you!", 255);
                    }
                    else
                    {
                        AddText("You are not level 15, I will not promote you yet.");
                        AddOption("I'll work harder.", 255);
                    }
                    break;

                case 1:        //level 40
                    if (client.Level >= 40 && client.Strength >= 60 && client.Agility >= 25 && client.Vitality >= 25)
                    {
                        AddText("You have been promoted!");
                        if (client.RebornCount == 1)
                        {
                            AddText("I've given you a special item to help commemorate the occasion!");
                            client.CreateItem(410077);        //poison blade - need to add stat
                        }
                        client.Character.Profession++;
                        client.Send(new UpdatePacket(client.UID, UpdateType.Profession, client.Character.Profession));
                        client.Recalculate();
                        AddOption("Thank you!", 255);
                    }
                    else
                    {
                        if (client.Level >= 40)
                        {
                            AddText("It seems that you have forgot to set your stats after a reborn has been done. your Strength needs to be 60, Agility needs to have a minimum of 25, Vitality as a minimum of 25");
                            AddOption("How foolish of me, I'll set my stats first.", 255);
                            break;
                        }
                        else
                        {
                            AddText("You must be level 40, I will not promote you yet.");
                            AddOption("I'll work harder.", 255);
                        }
                    }
                    break;

                case 2:        //level 70
                    if (client.Level >= 70 && client.HasItem(Constants.EMERALD_ID) && client.Strength >= 110 && client.Agility >= 42 && client.Vitality >= 45)
                    {
                        client.DeleteItem(Constants.EMERALD_ID);
                        AddText("You have been promoted!");
                        client.CreateItem(Constants.METEOR_ID);        //meteor
                        client.Character.Profession++;
                        client.Send(new UpdatePacket(client.UID, UpdateType.Profession, client.Character.Profession));
                        client.Recalculate();
                        AddOption("Thank you!", 255);
                    }
                    else
                    {
                        if (client.Level >= 70)
                        {
                            AddText("It seems that you have forgot to set your stats after a reborn has been done. your Strength needs to be 110, Agility needs to have a minimum of 42, Vitality as a minimum of 45");
                            AddOption("How foolish of me, I'll set my stats first.", 255);
                            break;
                        }
                        else
                        {
                            AddText("You must be level 70 and bring me an Emerald in order to be promoted! ");
                            AddOption("I'll work harder.", 255);
                        }
                    }
                    break;

                case 3:        //level 100
                    if (client.Level >= 100 && client.HasItem(Constants.METEOR_ID) && client.Strength >= 110 && client.Agility >= 42 && client.Vitality >= 45)
                    {
                        client.DeleteItem(Constants.METEOR_ID);
                        AddText("You have been promoted!");
                        switch (client.RebornCount)
                        {
                        case 0:
                            client.CreateItem(700031);            //normal rainbow gem
                            break;

                        default:
                            client.CreateItem(130087, 0, 0, 0, 255);            //unique 1 sock armor
                            break;
                        }
                        client.Character.Profession++;
                        client.Send(new UpdatePacket(client.UID, UpdateType.Profession, client.Character.Profession));
                        client.Recalculate();
                        AddOption("Thank you!", 255);
                    }
                    else
                    {
                        if (client.Level >= 100)
                        {
                            AddText("It seems that you have forgot to set your stats after a reborn has been done. your Strength needs to be 110, Agility needs to have a minimum of 42, Vitality as a minimum of 45");
                            AddOption("How foolish of me, I'll set my stats first.", 255);
                            break;
                        }
                        else
                        {
                            AddText("You must be level 100 and bring me an Meteor in order to be promoted! ");
                            AddOption("I'll work harder.", 255);
                        }
                    }
                    break;

                case 4:        //level 110
                    if (client.Level >= 110 && client.HasItem(Constants.MOONBOX_ID) && client.Strength >= 170 && client.Agility >= 65 && client.Vitality >= 100)
                    {
                        client.DeleteItem(Constants.MOONBOX_ID);
                        client.CreateItem(Constants.DRAGONBALL_ID);
                        AddText("You have been promoted!");
                        client.Character.Profession++;
                        client.Send(new UpdatePacket(client.UID, UpdateType.Profession, client.Character.Profession));
                        client.Recalculate();
                        AddOption("Thank you!", 255);
                    }
                    else
                    {
                        if (client.Level >= 110)
                        {
                            AddText("It seems that you have forgot to set your stats after a reborn has been done. your Strength needs to be 170, Agility needs to have a minimum of 65, Vitality as a minimum of 100");
                            AddOption("How foolish of me, I'll set my stats first.", 255);
                            break;
                        }
                        else
                        {
                            AddText("You must be level 110 and bring me an Moon Box in order to be promoted! ");
                            AddOption("I'll work harder.", 255);
                        }
                    }
                    break;
                }
                break;
                #endregion

                #region Learn Skills
            case 3:
                AddText("What skill would you like to learn?");
                AddOption("XP Skills", 4);
                AddOption("Hercules", 5);
                AddOption("Spirit Healing", 6);
                AddOption("Robot", 7);
                AddOption("Nothing.", 255);
                break;

            case 4:
                if (client.Level >= 15)
                {
                    AddText("You have learned Cyclone and Accuracy successfully");
                    client.CombatManager.LearnNewSkill(SkillID.Cyclone);
                    client.CombatManager.LearnNewSkill(SkillID.Accuracy);
                }
                else
                {
                    AddText("You must be at least level 15 to learn these skills!");
                }
                AddOption("Thanks", 255);
                break;

            case 5:
                if (client.Level >= 40)
                {
                    AddText("You have learned Hercules successfully");
                    client.CombatManager.LearnNewSkill(SkillID.Hercules);
                }
                else
                {
                    AddText("You must be at least level 40 to learn this skill!");
                }
                AddOption("Thanks", 255);
                break;

            case 6:
                if (client.Level >= 40)
                {
                    AddText("You have learned Spirit Healing successfully");
                    client.CombatManager.LearnNewSkill(SkillID.SpiritHealing);
                }
                else
                {
                    AddText("You must be at least level 40 to learn this skill!");
                }
                AddOption("Thanks", 255);
                break;

            case 7:
                if (client.Level >= 40)
                {
                    AddText("You have learned Robot successfully");
                    client.CombatManager.LearnNewSkill(SkillID.Robot);
                }
                else
                {
                    AddText("You must be at least level 40 to learn this skill!");
                }
                AddOption("Thanks", 255);
                break;
                #endregion
            }
            AddFinish();
            Send();
        }
        public override void Run(Game_Server.Player _client, ushort _linkback)
        {
            Responses = new List <NpcDialogPacket>();
            AddAvatar();
            switch (_linkback)
            {
            case 0:
                if (_client.HasItem(721002))
                {
                    AddText("I cannot help crying. Where did you get this sad meteor? What happened?");
                    AddOption("It is from Joe.", 6);
                    AddOption("Sorry, I cannot tell you.", 255);
                }
                else
                {
                    AddText("Should auld acquaintance be forgotten and never brought to mind? Should auld acquaintance be forgotten and auld lang syne?");
                    AddOption("Why are you so sad?", 1);
                    AddOption("Nice song.", 255);
                }
                break;

            case 1:
                if (_client.HasItem(721000))
                {
                    AddText("Thanks. I am so pleased to hear from my sister. I have not seen her for a long time. It is very thoughtful of her. Sigh!");
                    AddOption("Why are you so sad?", 2);
                    AddOption("I had better leave now.", 255);
                }
                else
                {
                    AddText("I miss you like crazy every time of every day. I love you deeply all my life. Why are you so cruel to break my heart.");
                    AddOption("I got to go.", 255);
                }
                break;

            case 2:
                AddText("My lover has left me without any reason. I tried to find him but got no news since he left. Can you help me to find him?");
                AddOption("OK. I shall help you.", 4);
                AddOption("Sorry, I am too busy.", 3);
                break;

            case 3:
                //No check needed - We are exiting, not rewarding
                _client.DeleteItem(721000);
                AddText("Thank you for the letter. Good bye.");
                AddOption("See you.", 255);
                break;

            case 4:
                AddText("Thanks. Joe gave me this bag as our love token. Give it to him when you find him and tell him I am always here waiting for him.");
                AddOption("I shall try my best!", 5);
                break;

            case 5:
                if (_client.HasItem(721000))
                {
                    //No need to check inventory space. We're deleting and adding at the same time
                    _client.DeleteItem(721000);
                    _client.CreateItem(721001);
                }
                break;

            case 6:
            {
                AddText("Joe! You have seen him? Where is he now? Is everything going on well with him?");
                AddOption("Do not cry.", 7);
                AddOption("Do not ruin the meteor!", 255);
                break;
            }

            case 7:
                _client.SendMessage("Joe loves and misses you very much. He engraved his love on this meteor. He said you will understand after you see it.");
                AddText("It is said that true love can move the meteor to cry and turn it to meteor tear. I am so glad that Joe does love me.");
                AddOption("All will be fine.", 8);
                AddOption("Return my meteor.", 255);
                break;

            case 8:
                AddText("Joe, Can you hear me? I love you. wherever you go, whatever you do, I will be right here waiting for you.");
                AddOption("Sad love story. Sigh.", 9);
                break;

            case 9:
                AddText("Since Joe enjoys travelling round the world, I only wish he is happy. I shall be very delighted Whenever he thinks of me.");
                AddOption("How about you then?", 10);
                break;

            case 10:
                AddText("It is said a star in the sky represents a person on the earth. When I miss him, I can look at his star and it will twinkle.");
                AddOption("I hope Joe will return.", 11);
                break;

            case 11:
                if (_client.HasItem(721002))
                {
                    _client.DeleteItem(721002);
                    _client.CreateItem(1088002);
                    AddText("Thanks for your news. Please take this meteor tear. I hope you are happy all your life.");
                    AddOption("Thanks.", 255);
                }
                break;
            }
            AddFinish();
            Send();
        }
Пример #17
0
        public override void Run(Game_Server.Player _client, ushort _linkback)
        {
            Responses = new List <NpcDialogPacket>();
            AddAvatar();
            switch (_linkback)
            {
            case 0:
            {
                AddText("I can give you 1 Feather Stone if you find me one of each of these pieces of 3 ingredients Moss, DreamGrass, SoulAroma. ");
                AddText("I can also give you one Immortal Stone for 3 FeatherStones");

                AddOption("Feather Stone", 1);
                AddOption("Immortal Stones", 2);
                AddOption("This is so sad..", 255);

                break;
            }

            case 1:
            {
                if (_client.Inventory.Count <= 39 && _client.HasItem(722723, 1) && _client.HasItem(722724, 1) && _client.HasItem(722725, 1))
                {
                    _client.DeleteItem(722723);
                    _client.DeleteItem(722724);
                    _client.DeleteItem(722725);
                    _client.CreateItem(722726);
                    _client.Save();
                }
                else
                {
                    AddText("Either you don't have enough space in inventory or you dont have required materials!");
                    AddOption("I see.", 255);
                }
                break;
            }

            case 2:
            {
                if (_client.Inventory.Count <= 39 && _client.HasItem(722726, 3))
                {
                    _client.DeleteItem(722726);
                    _client.DeleteItem(722726);
                    _client.DeleteItem(722726);
                    _client.CreateItem(722728);
                    _client.Save();
                }

                else
                {
                    AddText("Either you don't have enough space in inventory or you dont have required materials!");
                    AddOption("I see.", 255);
                }
                break;
            }
            }



            AddFinish();
            Send();
        }
        public override void Run(Game_Server.Player _client, ushort _linkback)
        {
            Responses = new List <NpcDialogPacket>();
            AddAvatar();
            switch (_linkback)
            {
            case 0:
                if (_client.HasItem(721010) && _client.HasItem(721011) && _client.HasItem(721012) &&
                    _client.HasItem(721013) && _client.HasItem(721014) && _client.HasItem(721015))
                {
                    AddText("Wow. I can't believe you were able to obtain all six tokens. I will use these tokens to teleport you ");
                    AddText("to the life tatic where you can help some poor soul. When you teleport, the tokens will be formed into a soul jade.");
                    AddText("Give this jade to a any of LonelyGhost so save the ghosts soul. You will recieve a moonbox for your kindness. Are you ready?");
                    AddOption("Yes teleport me", 3);
                    AddOption("Not yet.", 255);
                }
                else
                {
                    AddText("Hello " + _client.Name + ". My name is Maggie. I tried to conquer these tatics many years ago and was killed. ");
                    AddText("I chose to gaurd the entrance in the afterlife to stop others from following in my footsteps. If you chose to ");
                    AddText("ignore my warning, I will send you in. I cannot control what tatic I send you to unless you have all tokens.");
                    AddOption("Tokens?", 1);
                    AddOption("This is too dangerous, I must leave at once.", 255);
                }
                break;

            case 1:
                AddText("There are six different tokens you must gain from killing monsters. The monsters in each tatic will drop a different ");
                AddText("token. Once you have all six, I can can channel them for you and teleport you to the life tatic where you can help save ");
                AddText("some poor souls. I should warn you, there is one more tatic you can be sent to called the Death Tatic. Like the name suggests, ");
                AddText("if you get sent their, you will die. Good luck adventurer.");
                AddOption("Send me to a tatic", 2);
                AddOption("This is too dangerous, I must leave at once.", 255);
                break;

            case 2:
                if (Common.PercentSuccess(5.0))
                {
                    //death tatic
                    _client.ChangeMap(1049, 211, 156);
                }
                else
                {
                    //get random number between 0 and 100
                    int taticNum = Common.Random.Next(0, 101);

                    //Send to a tatic based off random number
                    if (taticNum < 17)
                    {
                        _client.ChangeMap(1043, 211, 156);
                    }
                    else if (taticNum < 33)
                    {
                        _client.ChangeMap(1044, 211, 156);
                    }
                    else if (taticNum < 49)
                    {
                        _client.ChangeMap(1045, 211, 156);
                    }
                    else if (taticNum < 65)
                    {
                        _client.ChangeMap(1046, 211, 156);
                    }
                    else if (taticNum < 81)
                    {
                        _client.ChangeMap(1047, 211, 156);
                    }
                    else
                    {
                        _client.ChangeMap(1048, 211, 156);
                    }
                }
                break;

            case 3:
                if (_client.HasItem(721010) && _client.HasItem(721011) && _client.HasItem(721012) &&
                    _client.HasItem(721013) && _client.HasItem(721014) && _client.HasItem(721015))
                {
                    //remove the 6 tokens
                    _client.DeleteItem(721010);
                    _client.DeleteItem(721011);
                    _client.DeleteItem(721012);
                    _client.DeleteItem(721013);
                    _client.DeleteItem(721014);
                    _client.DeleteItem(721015);

                    //give player soul jade
                    _client.CreateItem(721072);

                    //teleport player to last map
                    _client.ChangeMap(1050, 211, 156);
                }
                break;
            }
            AddFinish();
            Send();
        }
Пример #19
0
        public override void Run(Game_Server.Player _client, ushort _linkback)
        {
            Responses = new List <NpcDialogPacket>();
            AddAvatar();
            switch (_linkback)
            {
            case 0:
            {
                AddText("If you aren't an evildoer, you can leave here.");
                AddOption("Let me out of here!", 1);
                AddOption("I see.", 255);
                break;
            }

            case 1:
                if (_client.PK >= 100)
                {
                    AddText("No, you will stay here until you have regretted your sins or you can do some work and mine some gold ores.");
                    AddText("Mine 5 Gold Ores with a rate of 4 or higher and I will let you leave.");
                    AddOption("Lend me a hoe please.", 3);
                    AddOption("I have the ores.", 4);
                    AddOption("I see.", 255);
                    break;
                }
                else
                {
                    _client.ChangeMap(1002, 512, 355);
                    break;
                }

            case 3:
            {
                if (_client.HasItem(562001, 1))         // Check if the client has a Hoe in his/her inventory.
                {
                    AddText("You already have a Hoe. I cannot give you another one.");
                    AddOption("I see.", 255);
                    break;
                }
                else
                {
                    if (!_client.HasItem(562001, 1))         // Second check. If a player does not have a Hoe, give them one. :)
                    {
                        _client.CreateItem(562001);
                    }
                    break;
                }
            }

            case 4:
                var GoldOres =                                              // "GoldOres" Cursor.
                               from Item                                    // "Item" Secondary cursor refers to _client.Inventory.Values
                               in _client.Inventory.Values                  // That's where you need the Secondary cursor to point.
                               where Item.StaticID / 10 == 107205           // Secondary cursor.StaticID for the item you have to put in the item ID without the quality 10 == refers to the quality.
                               where Item.StaticID % 10 >= 3                // "% 10 >= 3" refers to the quality.
                               select Item;                                 // Every Query Link should end up with the "select" then secondary cursor.

                if (GoldOres.Count() >= 5)
                {
                    for (var i = 0; i < 5; i++)                             // Start our loop for removing the Ores
                    {
                        _client.DeleteItem(GoldOres.ElementAt(i));          // Now actually remove the ores.
                    }
                    _client.ChangeMap(1002, 512, 355);
                    break;
                }
                else
                {
                    AddText("Don't try to fool me! You do not have 5 Gold Ores of rate 4 or higher!");
                    AddOption("Sorry! I'll get back to work.", 255);
                    break;
                }
            }
            AddFinish();
            Send();
        }
        public override void Run(Game_Server.Player client, ushort linkback)
        {
            Responses = new List <NpcDialogPacket>();
            AddAvatar();

            if (client.ProfessionType != ProfessionType.Warrior)
            {
                AddText("Warriors do not share their secrets of battle with others. I shall not teach you.");
                AddOption("I see.", 255);
                AddFinish();
                Send();
                return;
            }

            switch (linkback)
            {
                #region Initial Options
            case 0:
                AddText("To be a good Warrior, you must know your weapon, your armor be a 2nd");
                AddText(" skin, and use your shild to ward off your enemy! Remember, fortune favors");
                AddText(" the brave, and you must keep your head, even in the darkest hours. So, what");
                AddText(" can I do for you?");
                AddOption("I want to get promoted.", 1);
                AddOption("Learn class skills.", 3);
                AddOption("Okay. I see.", 255);
                break;
                #endregion

                #region Promotion
            case 1:
                switch (client.ProfessionLevel)
                {
                case 0:
                    AddText("The single requirement of becoming a Warrior is a minimum level of 15.");
                    AddText(" Would you like to proceed?");
                    AddOption("Yes, please.", 2);
                    AddOption("No.", 255);
                    break;

                case 1:
                    AddText("You may become a Brass Warrior at level 40. Do you want to continue?");
                    AddOption("Yes, I do.", 2);
                    AddOption("No.", 255);
                    break;

                case 2:
                    AddText("You may promote to Silver Warrior at level 70.");
                    AddText(" I will require one Emerald, I hear they are dropped by");
                    AddText("  monsters in the desert. Are you ready for promotion?");
                    AddOption("I'm ready!", 2);
                    AddOption("I'm not sure...", 255);
                    break;

                case 3:
                    AddText("You may promote to Gold Warrior at level 100.");
                    AddText(" I will require one Meteor. Are you ready for promotion?");
                    AddOption("I'm ready!", 2);
                    AddOption("I'm not sure...", 255);
                    break;

                case 4:
                    AddText("You may promote to Warrior Master at level 110.");
                    AddText(" I will require one Moon Box. Are you ready for promotion?");
                    AddOption("I'm ready!", 2);
                    AddOption("I'm not sure...", 255);
                    break;

                case 5:
                    AddText("You are a true Warrior. I cannot promote you anymore!");
                    AddOption("I see.", 255);
                    break;
                }
                break;

            case 2:
                switch (client.ProfessionLevel)
                {
                case 0:        //level 15
                    if (client.Level >= 15)
                    {
                        AddText("You have been promoted! I have taught you XP skills as a reward!");
                        client.CombatManager.LearnNewSkill(SkillID.Accuracy);
                        client.CombatManager.LearnNewSkill(SkillID.Shield);
                        client.CombatManager.LearnNewSkill(SkillID.Superman);
                        client.CombatManager.LearnNewSkill(SkillID.Roar);
                        client.Character.Profession++;
                        client.Send(new UpdatePacket(client.UID, UpdateType.Profession, client.Character.Profession));
                        client.Recalculate();
                        AddOption("Thank you!", 255);
                    }
                    else
                    {
                        AddText("You are not level 15, I will not promote you yet.");
                        AddOption("I'll work harder.", 255);
                    }
                    break;

                case 1:        //level 40
                    if (client.Level >= 40 && client.Strength >= 80 && client.Agility >= 25 && client.Vitality >= 20)
                    {
                        AddText("You have been promoted!");
                        client.Character.Profession++;
                        client.Send(new UpdatePacket(client.UID, UpdateType.Profession, client.Character.Profession));
                        client.Recalculate();
                        AddOption("Thank you!", 255);
                    }
                    else
                    {
                        AddText("You must be level 40, I will not promote you yet.");
                        AddOption("I'll work harder.", 255);
                    }
                    break;

                case 2:        //level 70
                    if (client.Level >= 70 && client.HasItem(Constants.EMERALD_ID) && client.Strength >= 140 && client.Agility >= 45 && client.Vitality >= 32)
                    {
                        client.DeleteItem(Constants.EMERALD_ID);
                        AddText("You have been promoted!");
                        client.CreateItem(Constants.METEOR_ID);        //meteor
                        client.Character.Profession++;
                        client.Send(new UpdatePacket(client.UID, UpdateType.Profession, client.Character.Profession));
                        client.Recalculate();
                        AddOption("Thank you!", 255);
                    }
                    else
                    {
                        AddText("You must be level 70 and bring me an Emerald in order to be promoted!");
                        AddOption("I'll work harder.", 255);
                    }
                    break;

                case 3:        //level 100
                    if (client.Level >= 100 && client.HasItem(Constants.METEOR_ID) && client.Strength >= 205 && client.Agility >= 60 && client.Vitality >= 42)
                    {
                        client.DeleteItem(Constants.METEOR_ID);
                        AddText("You have been promoted!");
                        switch (client.RebornCount)
                        {
                        case 0:
                            client.CreateItem(700031);            //normal rainbow gem
                            break;

                        default:
                            client.CreateItem(130087, 0, 0, 0, 255);            //unique 1 sock armor
                            break;
                        }
                        client.Character.Profession++;
                        client.Send(new UpdatePacket(client.UID, UpdateType.Profession, client.Character.Profession));
                        client.Recalculate();
                        AddOption("Thank you!", 255);
                    }
                    else
                    {
                        AddText("You must be level 100 and have a Meteor in order to be promoted!");
                        AddOption("I'll work harder.", 255);
                    }
                    break;

                case 4:        //level 110
                    if (client.Level >= 110 && client.HasItem(Constants.MOONBOX_ID) && client.Strength >= 225 && client.Agility >= 65 && client.Vitality >= 47)
                    {
                        client.DeleteItem(Constants.MOONBOX_ID);
                        client.CreateItem(Constants.DRAGONBALL_ID);
                        AddText("You have been promoted!");
                        client.Character.Profession++;
                        client.Send(new UpdatePacket(client.UID, UpdateType.Profession, client.Character.Profession));
                        client.Recalculate();
                        AddOption("Thank you!", 255);
                    }
                    else
                    {
                        AddText("You must be level 110 and have a Moon Box in order to be promoted!");
                        AddOption("I'll work harder.", 255);
                    }
                    break;
                }
                break;
                #endregion

                #region Learn Skills
            case 3:
                AddText("What skill would you like to learn?");
                AddOption("XP Skills", 4);
                AddOption("Dash", 5);
                AddOption("Nothing.", 255);
                break;

            case 4:
                if (client.Level >= 15)
                {
                    AddText("You have learned your XP skills successfully");
                    client.CombatManager.LearnNewSkill(SkillID.Accuracy);
                    client.CombatManager.LearnNewSkill(SkillID.Shield);
                    client.CombatManager.LearnNewSkill(SkillID.Superman);
                    client.CombatManager.LearnNewSkill(SkillID.Roar);
                }
                else
                {
                    AddText("You must be at least level 15 to learn these skills!");
                }
                AddOption("Thanks", 255);
                break;

            case 5:
                if (client.Level >= 63)
                {
                    AddText("You have learned Dash successfully");
                    client.CombatManager.LearnNewSkill(SkillID.Dash);
                }
                else
                {
                    AddText("You must be at least level 63 to learn this skill!");
                }
                AddOption("Thanks", 255);
                break;
                #endregion
            }
            AddFinish();
            Send();
        }
Пример #21
0
        public override void Run(Game_Server.Player _client, ushort _linkback)
        {
            Responses = new List <NpcDialogPacket>();
            AddAvatar();
            switch (_linkback)
            {
            case 0:
                AddText("Where are you heading for? I can teleport you into an dark place full of caves and strong monsters for  VirtuePoints .");
                AddText("Make sure to gather all diamonds dropped by monsters as I will reward you nicely for them !");
                AddOption("Send me! (2000 VPs)", 1);
                AddOption("Send me! (50 CPs)", 10);
                AddOption("I have some diamonds", 5);
                AddOption("Just passing by.", 255);
                break;

            case 1:    //lab1
                if (_client.VirtuePoints >= 2000)
                {
                    _client.VirtuePoints -= 2000;
                    _client.ChangeMap(1351, 14, 126);
                }
                else
                {
                    AddText("Sorry, you do not have enough VirtuePoints to enter, ");
                    AddText("but I can send you for 50 Conquer Points instead.");
                    AddOption("I see.", 255);
                }
                break;

            case 5:
                AddText("What diamonds you wish to exchange?");
                AddOption("15 SunDiamonds", 6);
                AddOption("12 MoonDiamonds", 7);
                AddOption("12 StarDiamonds", 8);
                AddOption("10 CloudDiamonds", 9);
                AddOption("Just passing by.", 255);
                break;

            case 6:
                if (_client.HasItem(721533, 15))
                {
                    for (var i = 0; i < 15; i++)
                    {
                        _client.DeleteItem(721533);
                    }
                    _client.CreateItem(720027);
                }
                else
                {
                    AddText("Sorry, you do not have enough diamonds!");
                    AddOption("I see.", 255);
                }
                break;

            case 7:
                if (_client.HasItem(721534, 12))
                {
                    for (var i = 0; i < 12; i++)
                    {
                        _client.DeleteItem(721534);
                    }
                    _client.CreateItem(720027);
                    _client.Money += 250000;
                }
                else
                {
                    AddText("Sorry, you do not have enough diamonds!");
                    AddOption("I see.", 255);
                }
                break;

            case 8:
                if (_client.HasItem(721535, 12))
                {
                    for (var i = 0; i < 12; i++)
                    {
                        _client.DeleteItem(721535);
                    }
                    _client.CreateItem(720027);
                    _client.Money += 500000;
                }
                else
                {
                    AddText("Sorry, you do not have enough diamonds!");
                    AddOption("I see.", 255);
                }
                break;

            case 9:
                if (_client.HasItem(721536, 10))
                {
                    for (var i = 0; i < 10; i++)
                    {
                        _client.DeleteItem(721536);
                    }
                    _client.CreateItem(721541);
                    _client.Money += 1000000;
                }
                else
                {
                    AddText("Sorry, you do not have enough diamonds!");
                    AddOption("I see.", 255);
                }
                break;

            case 10:
                if (_client.CP >= 50)
                {
                    _client.CP -= 50;
                    _client.ChangeMap(1351, 14, 126);
                }
                else
                {
                    AddText("Sorry, you do not have enough Conquer Points to enter.");
                    AddOption("I see.", 255);
                }
                break;
            }
            AddFinish();
            Send();
        }
Пример #22
0
        public override void Run(Game_Server.Player _client, ushort _linkback)
        {
            Responses = new List <NpcDialogPacket>();
            AddAvatar();
            switch (_linkback)
            {
            case 0:
            {
                AddText("Hello , did you knew that an socketed equipment is better than one without sockets?");
                AddText("It costs DragonBalls or ToughDrills/StarDrills depending on the item.");
                AddOption("Socket my weapon", 1);
                AddOption("Socket my gears", 2);
                AddOption("No. I like it this way.", 255);
                break;
            }

            case 1:
            {
                var equipment = _client.Equipment.GetItemBySlot(Enum.ItemLocation.WeaponR);
                if (equipment == null)
                {
                    AddText("There must be some mistake. You must be wearing a weapon before I can help you socket it!");
                }
                else if (equipment.Gem2 > 0)
                {
                    AddText("There must be some mistake. Your weapon already has the maximum number of sockets!");
                }
                else
                {
                    var cost = (uint)(equipment.Gem1 == 0 ? 1 : 5);
                    AddText("It will cost " + cost + " DragonBall(s) to socket this weapon. Are you positive you wish to continue?");
                    AddOption("I'm Sure!", 10);
                }
                AddOption("Nevermind", 255);
                break;
            }

            case 2:
            {
                AddText("It costs 12 DragonBalls for the first socket and 7 StarDrills for second.If you consider yourself lucky try ToughDrill! ");
                AddOption("Make the first socket ", 3);
                AddOption("Make the second socket ", 4);
                AddOption("No. I like it this way.", 255);
                break;
            }

            case 3:
            {
                AddText("The first socket requires 12 DragonBalls and there is no turning back! ");
                AddText("What item would you like me to socket?");
                AddOption("Helmet/Earrings/TaoCap ", 11);
                AddOption("Necklace/Bag ", 12);
                AddOption("Ring/Bracelet ", 16);
                AddOption("Shield ", 15);
                AddOption("Armor ", 13);
                AddOption("Boots ", 18);
                AddOption("I changed my mind. ", 255);
                break;
            }

            case 4:
            {
                AddText("Opening the second socket is a delicate matter. I can guarentee an upgrade by using 7 StarDrills ");
                AddText("or you can try your luck using a ToughDrill.");
                AddOption("Use ToughDrill", 5);
                AddOption("Use 7 StarDrills", 6);
                AddOption("No. I like it this way.", 255);
                break;
            }

            case 5:
            {
                AddText("There is no guarentee this upgrade will be a success. Each attempt will require a ToughDrill. ");
                AddText("What item would you like to try to socket?");
                AddOption("Helmet/Earrings/TaoCap ", 21);
                AddOption("Necklace/Bag ", 22);
                AddOption("Ring/Bracelet ", 26);
                AddOption("Shield ", 25);
                AddOption("Armor ", 23);
                AddOption("Boots ", 28);
                AddOption("I changed my mind. ", 255);
                break;
            }

            case 6:
            {
                AddText("This upgrade is guarenteed to work but requires 7 StarDrills. ");
                AddText("What item would you like to try to socket?");
                AddOption("Helmet/Earrings/TaoCap ", 31);
                AddOption("Necklace/Bag ", 32);
                AddOption("Ring/Bracelet ", 36);
                AddOption("Shield ", 35);
                AddOption("Armor ", 33);
                AddOption("Boots ", 38);
                AddOption("I changed my mind. ", 255);
                break;
            }

            case 10:
            {
                var equipment = _client.Equipment.GetItemBySlot(Enum.ItemLocation.WeaponR);
                if (equipment == null)
                {
                    AddText("There must be some mistake. You must be wearing a weapon before I can help you socket it!");
                    AddOption("Nevermind", 255);
                }
                else if (equipment.Gem2 > 0)
                {
                    AddText("There must be some mistake. Your weapon already has the maximum number of sockets!");
                    AddOption("Nevermind", 255);
                }
                else
                {
                    var cost = equipment.Gem1 == 0 ? 1 : 5;
                    if (_client.HasItem(Constants.DRAGONBALL_ID, (uint)cost))
                    {
                        if (cost == 1)
                        {
                            equipment.Gem1 = 255;
                        }
                        else
                        {
                            equipment.Gem2 = 255;
                        }

                        for (var i = 0; i < cost; i++)
                        {
                            _client.DeleteItem(Constants.DRAGONBALL_ID);
                        }
                        equipment.Save();
                        _client.Send(ItemInformationPacket.Create(equipment));
                        AddText("It is done! Please enjoy your new equipment.");
                        AddOption("Thanks!", 255);
                    }
                    else
                    {
                        AddText("There must be some mistake. Your do not have the " + cost + " DragonBall(s) required");
                        AddOption("Nevermind", 255);
                    }
                }
                break;
            }

            case 11:
            case 12:
            case 13:
            case 15:
            case 16:
            case 18:
            {
                var equipment = _client.Equipment.GetItemBySlot((Enum.ItemLocation)(_linkback % 10));
                if (equipment == null)
                {
                    AddText("There must be some mistake., You must be wearing an item before you may socket it!");
                    AddOption("Nevermind", 255);
                }
                else if (equipment.Gem1 != 0)
                {
                    AddText("There must be some mistake. This item already has a socket!");
                    AddOption("Nevermind", 255);
                }
                else if (!_client.HasItem(Constants.DRAGONBALL_ID, 12))
                {
                    AddText("There must be some mistake. You do not have the 12 DragonBalls required to socket this item!");
                    AddOption("Nevermind", 255);
                }
                else
                {
                    for (var i = 0; i < 12; i++)
                    {
                        _client.DeleteItem(Constants.DRAGONBALL_ID);
                    }
                    equipment.Gem1 = 255;
                    equipment.Save();
                    _client.Send(ItemInformationPacket.Create(equipment));
                    AddText("It is done! Please enjoy your new equipment.");
                    AddOption("Thanks!", 255);
                }

                break;
            }

            case 21:
            case 22:
            case 23:
            case 25:
            case 26:
            case 28:
            {
                var equipment = _client.Equipment.GetItemBySlot((Enum.ItemLocation)(_linkback % 10));
                if (equipment == null)
                {
                    AddText("There must be some mistake., You must be wearing an item before you may socket it!");
                    AddOption("Nevermind", 255);
                }
                else if (equipment.Gem1 == 0)
                {
                    AddText("There must be some mistake. You must open the first socket before you may attempt the second!");
                    AddOption("Nevermind", 255);
                }
                else if (equipment.Gem2 != 0)
                {
                    AddText("There must be some mistake. This item already has two sockets!");
                    AddOption("Nevermind", 255);
                }
                else if (!_client.HasItem(1200005))
                {
                    AddText("There must be some mistake. You do not have a ToughDrill!");
                    AddOption("Nevermind", 255);
                }
                else
                {
                    _client.DeleteItem(1200005);
                    if (Common.PercentSuccess(12))
                    {
                        equipment.Gem2 = 255;
                        equipment.Save();
                        _client.Send(ItemInformationPacket.Create(equipment));
                        AddText("It is done! Please enjoy your new equipment.");
                        AddOption("Thanks!", 255);
                    }
                    else
                    {
                        _client.CreateItem(1200006);
                        AddText("I was not able to open the second socket for you. I will give you a StarDrill for future use.");
                        AddOption("Damn...", 255);
                    }
                }
                break;
            }

            case 31:
            case 32:
            case 33:
            case 35:
            case 36:
            case 38:
            {
                var equipment = _client.Equipment.GetItemBySlot((Enum.ItemLocation)(_linkback % 10));
                if (equipment == null)
                {
                    AddText("There must be some mistake., You must be wearing an item before you may socket it!");
                    AddOption("Nevermind", 255);
                }
                else if (equipment.Gem1 == 0)
                {
                    AddText("There must be some mistake. You must open the first socket before you may attempt the second!");
                    AddOption("Nevermind", 255);
                }
                else if (equipment.Gem2 != 0)
                {
                    AddText("There must be some mistake. This item already has two sockets!");
                    AddOption("Nevermind", 255);
                }
                else if (!_client.HasItem(1200006, 7))
                {
                    AddText("There must be some mistake. You do not have the required 7 StarDrills!");
                    AddOption("Nevermind", 255);
                }
                else
                {
                    for (var i = 0; i < 7; i++)
                    {
                        _client.DeleteItem(1200006);
                    }
                    equipment.Gem2 = 255;
                    equipment.Save();
                    _client.Send(ItemInformationPacket.Create(equipment));
                    AddText("It is done! Please enjoy your new equipment.");
                    AddOption("Thanks!", 255);
                }
                break;
            }
            }
            AddFinish();
            Send();
        }
Пример #23
0
        public override void Run(Game_Server.Player _client, ushort _linkback)
        {
            Responses = new List<NpcDialogPacket>();
            AddAvatar();
            switch (_linkback)
            {
                case 0:

                    AddText("Hello, do you need to exchange those  gems for one of higher quality and spare some space in warehouses?");
                    AddText("For each 15 gems of normal or refined quality I will give you one of higher quality?");
                    AddOption("Compose gems .", 1);
                    AddOption("I see.", 255);
                    break;
                case 1:
                    AddText("What kind of gems do you wish to compose?");
                    AddText("The fee for composing is 10.000 gold for normal gems into refined and 100.000 for refined into super gems ?");
                    AddOption("Compose normal to refined gems .", 2);
                    AddOption("Compose refined to super gems .", 3);

                    AddOption("I see.", 255);
                    break;
                case 2:
                    BASE_GEM_ID = 700001;
                    cost = 10000;
                    goto case 4;
                case 3:
                    BASE_GEM_ID = 700002;
                    cost = 100000;
                    goto case 4;

                case 4:
                    AddText("What type of gem would you like?");
                    AddOption("Phoenix Gem", 20);
                    AddOption("Dragon Gem", 21);
                    AddOption("Fury Gem", 22);
                    AddOption("Rainbow Gem", 23);
                    AddOption("More Options", 5);
                    AddOption("I'm not sure...", 255);
                    break;
                case 5:
                    AddText("What type of gem would you like?");
                    AddOption("Kylin Gem", 24);
                    AddOption("Violet Gem", 25);
                    AddOption("Moon Gem", 26);
                    AddOption("Previous Options", 4);
                    AddOption("I'm not sure...", 255);
                    break;
                case 20:
                case 21:
                case 22:
                case 23:
                case 24:
                case 25:
                case 26:
                    baseGemRequest = (byte)(_linkback % 10);
                    _linkback = 6;
                    goto case 6;

                case 6:
                    if (_client.Money < cost)
                    {
                        AddText("You don't have the required amount of  money!");
                        AddOption("Ok! ", 255);

                    }
                    else if (_client.HasItem((uint)(BASE_GEM_ID + baseGemRequest * 10), 15))//Check if they have at least 15
                    {
                        for (var i = 0; i < 15; i++)
                            _client.DeleteItem((uint)(BASE_GEM_ID + baseGemRequest * 10));
                        _client.Money -= cost;
                        _client.CreateItem((uint)(BASE_GEM_ID + baseGemRequest * 10 + 1));
                        AddText("There you go.Check it out in your inventory!");
                        AddOption("Thanks!", 255);
                        _client.Save();

                    }
                    else
                    {
                        AddText("You don't have the required amount of gems or not enough money!");
                        AddOption("Ok! ", 255);


                    }
                    break;
            }
            AddFinish();
            Send();

        }
        public override void Run(Game_Server.Player _client, ushort _linkback)
        {
            Responses = new List <NpcDialogPacket>();
            AddAvatar();
            switch (_linkback)
            {
            case 0:
                if (_client.RebornCount == 0)
                {
                    if (_client.ProfessionLevel == 5 && _client.Level >= (_client.ProfessionType == Enum.ProfessionType.WaterTaoist ? 110 : 120))
                    {
                        AddText("Even bold adventurers eventually grow tired of their journeys. I help these heroes by offering them life anew.");
                        AddOption("I wish to reborn.", 1);
                        AddOption("I'm not tired!", 255);
                    }
                    else
                    {
                        AddText("Hello young one! I help people seek the ultimate goal of rebirth. ");
                        AddText("You are not yet experienced enough to undertake this adventure. Please come back later.");
                        AddOption("I will.", 255);
                    }
                }
                else
                {
                    AddText("I have helped you as much as I can. Even heroes have their limits.");
                    AddOption("Thanks", 255);
                }
                break;

            case 1:
                if (_client.RebornCount == 0 && _client.Level >= (_client.ProfessionType == Enum.ProfessionType.WaterTaoist ? 110 : 120))
                {
                    AddText("By accepting the gift of rebirth, you will start your life again. ");
                    AddText("You can unlock great strength as well as new skills in the process! ");
                    AddText("Are you sure you're ready to give up your current life? ");
                    AddOption("I'm ready.", 2);
                    AddOption("Not yet!", 255);
                }
                else
                {
                    AddText("Ooh my! Lets not get ahead of ourselves. You are not yet ready to become reborn.");
                    AddOption("Sorry.", 255);
                }
                break;

            case 2:
                if (_client.HasItem(Constants.CELESTIAL_STONE_ID))
                {
                    AddText("You can choose to either receive a gem of great power or bless your equipment for even greater strength. Which would you like?");
                    AddOption("Blessed Rebirth", 3);
                    AddOption("Gem Rebirth", 5);
                    AddOption("I'm not sure...", 255);
                }
                else
                {
                    AddText("Rebirth requires the unlocking of great power. Please make sure you have a CelestialStone before coming to me.");
                    AddOption("Sorry.", 255);
                }
                break;

            case 3:
            case 4:
                isBlessedRebirth = _linkback == 3;
                AddText("What profession would you like in your new life?");
                AddOption("Trojan", 11);
                AddOption("Warrior", 12);
                AddOption("Water Taoist", 13);
                AddOption("Fire Taoist", 14);
                AddOption("Archer", 15);
                AddOption("I'm not sure...", 255);
                break;

            case 5:
                AddText("What type of gem would you like?");
                AddOption("Phoenix Gem", 20);
                AddOption("Dragon Gem", 21);
                AddOption("Fury Gem", 22);
                AddOption("Rainbow Gem", 23);
                AddOption("More Options", 6);
                AddOption("I'm not sure...", 255);
                break;

            case 6:
                AddText("What type of gem would you like?");
                AddOption("Kylin Gem", 24);
                AddOption("Violet Gem", 25);
                AddOption("Moon Gem", 26);
                AddOption("Previous Options", 5);
                AddOption("I'm not sure...", 255);
                break;

            case 20:
            case 21:
            case 22:
            case 23:
            case 24:
            case 25:
            case 26:
                baseGemRequest = (byte)(_linkback % 10);
                _linkback      = 4;
                goto case 4;

            case 11:
            case 12:
            case 13:
            case 14:
            case 15:
                if (_client.ProfessionLevel == 5 && _client.RebornCount == 0 && _client.Level >= (_client.ProfessionType == Enum.ProfessionType.WaterTaoist ? 110 : 120))
                {
                    if (_client.HasItem(Constants.CELESTIAL_STONE_ID))
                    {
                        _client.DeleteItem(Constants.CELESTIAL_STONE_ID);
                        if (isBlessedRebirth)    //Bless random item.
                        {
                            Structures.ConquerItem item;
                            for (var tries = 0; tries < 50; tries++)
                            {
                                var loc = (ItemLocation)(Common.Random.Next(10));
                                item = _client.Equipment.GetItemBySlot(loc);
                                if (item != null && item.Bless == 0)
                                {
                                    item.Bless = 1; break;
                                }
                            }
                        }
                        else    //Give Super Gem
                        {
                            _client.CreateItem((uint)(BASE_GEM_ID + baseGemRequest * 10));
                        }

                        var path = (uint)_client.ProfessionType % 10 * 10 + (uint)_linkback % 10;
                        if (_client.ProfessionType == ProfessionType.Archer)
                        {
                            path = 50 + (uint)_linkback % 10;
                        }
                        foreach (var pathData in Database.ServerDatabase.Context.RebornPaths.GetRebornByPath(path))
                        {
                            if (pathData.IsForget)
                            {
                                _client.CombatManager.TryRemoveSkill(pathData.SkillId);
                            }
                            else
                            {
                                _client.CombatManager.AddOrUpdateSkill(pathData.SkillId, 0);
                            }
                        }
                        foreach (var skill in _client.CombatManager.skills.Values)
                        {
                            skill.Database.PreviousLevel = skill.Database.Level;
                            skill.Database.Level         = 0;
                            skill.Database.Experience    = 0;
                            skill.Save();
                            skill.Send(_client);
                        }

                        _client.Character.Profession1 = _client.Character.Profession;
                        switch (_linkback % 10)
                        {
                        case 1:
                            _client.Character.Profession = 11;
                            break;

                        case 2:
                            _client.Character.Profession = 21;
                            break;

                        case 3:
                            _client.Character.Profession = 132;
                            break;

                        case 4:
                            _client.Character.Profession = 142;
                            break;

                        case 5:
                            _client.Character.Profession = 41;
                            break;
                        }

                        #region Down Level Items
                        for (ItemLocation location = ItemLocation.Helmet; location < ItemLocation.Garment; location++)
                        {
                            Structures.ConquerItem item;
                            item = _client.Equipment.GetItemBySlot(location);
                            if (item != null)
                            {
                                item.DownLevelItem(); _client.Send(ItemInformationPacket.Create(item, ItemInfoAction.Update));
                            }
                        }
                        #endregion

                        #region Set Bonus Stats
                        _client.Character.Strength = 0;
                        _client.Character.Vitality = 8;
                        _client.Character.Agility  = 2;
                        _client.Character.Spirit   = 0;
                        switch (_client.Level)
                        {
                        case 110:
                        case 111:
                            _client.ExtraStats = 20;
                            break;

                        case 112:
                        case 113:
                            _client.ExtraStats = 21;
                            break;

                        case 114:
                        case 115:
                            _client.ExtraStats = 23;
                            break;

                        case 116:
                        case 117:
                            _client.ExtraStats = 26;
                            break;

                        case 118:
                        case 119:
                            _client.ExtraStats = 30;
                            break;

                        case 120:
                            _client.ExtraStats = (ushort)(_client.ProfessionType == ProfessionType.WaterTaoist ? 35 : 20);
                            break;

                        case 121:
                            _client.ExtraStats = (ushort)(_client.ProfessionType == ProfessionType.WaterTaoist ? 35 : 21);
                            break;

                        case 122:
                            _client.ExtraStats = (ushort)(_client.ProfessionType == ProfessionType.WaterTaoist ? 41 : 23);
                            break;

                        case 123:
                            _client.ExtraStats = (ushort)(_client.ProfessionType == ProfessionType.WaterTaoist ? 41 : 26);
                            break;

                        case 124:
                            _client.ExtraStats = (ushort)(_client.ProfessionType == ProfessionType.WaterTaoist ? 48 : 30);
                            break;

                        case 125:
                            _client.ExtraStats = (ushort)(_client.ProfessionType == ProfessionType.WaterTaoist ? 48 : 35);
                            break;

                        case 126:
                            _client.ExtraStats = (ushort)(_client.ProfessionType == ProfessionType.WaterTaoist ? 56 : 41);
                            break;

                        case 127:
                            _client.ExtraStats = (ushort)(_client.ProfessionType == ProfessionType.WaterTaoist ? 56 : 48);
                            break;

                        case 128:
                            _client.ExtraStats = (ushort)(_client.ProfessionType == ProfessionType.WaterTaoist ? 65 : 56);
                            break;

                        case 129:
                            _client.ExtraStats = 65;
                            break;

                        case 130:
                            _client.ExtraStats = 75;
                            break;
                        }
                        #endregion

                        _client.RebornCount = 1;
                        _client.Send(new UpdatePacket(_client.UID, UpdateType.Profession, _client.Character.Profession));
                        _client.Send(new UpdatePacket(_client.UID, UpdateType.Reborn, _client.RebornCount));
                        _client.SpawnPacket.RebornCount = 1;
                        _client.SendToScreen(_client.SpawnPacket, true);
                        _client.SetLevel(15);
                        _client.Experience = 0;
                        _client.Recalculate(true);
                        Managers.PlayerManager.SendToServer(new TalkPacket(ChatType.GM, _client.Name + " has been reborned successfully. Congratulations!"));
                        _client.Save();
                    }
                    else
                    {
                        AddText("Rebirth requires the unlocking of great power. Please make sure you have a CelestialStone before coming to me.");
                        AddOption("Sorry.", 255);
                    }
                }
                else
                {
                    AddText("Lets not get ahead of ourselves! You are not ready to achieve rebirth. Please come back later.");
                    AddOption("Sorry.", 255);
                }
                break;
            }
            AddFinish();
            Send();
        }
Пример #25
0
        public override void Run(Game_Server.Player _client, ushort _linkback)
        {
            Responses = new List <NpcDialogPacket>();
            AddAvatar();
            switch (_linkback)
            {
            case 0:
                if (_client.HasItem(721002))
                {
                    AddText("Thanks a lot. Please kindly give this meteor to Minner. I hope she can understand me and wish her happy all her life.");
                    AddOption("I hope so.", 255);
                }
                else
                {
                    AddText("It is so hot. It would be very nice If I have a bottle of wine. Can you give me some wine?");
                    AddOption("I have a bottle of Amrita.", 1);
                    AddOption("I do not have either.", 255);
                }
                break;

            case 1:
                if (_client.HasItem(1000030) && _client.HasItem(1088001) && _client.HasItem(721001))
                {
                    AddText("Thank you. You are very kind. I often have no food and water when I travel around. Where did you get this guardian star?");
                    AddOption("It is from Minner.", 2);
                    AddOption("I picked it on the road.", 7);
                }
                else
                {
                    AddText("I cannot take your Amrita. There is little water in the vast desert. You may feel thirsty and need it later. And I need a meteor too.");
                    AddOption("See you then.", 255);
                }
                break;

            case 2:
                AddText("So she sent you to look for me. I have left so long. She must be heartbroken.");
                AddOption("Why did you leave her?", 3);
                break;

            case 3:
                AddText("We love each other deeply. I wish I could stay with her, but my life dream is to travel around. I cannot give her a warm home.");
                AddOption("You are right.", 4);
                AddOption("I like it very much.", 255);
                break;

            case 4:
                AddText("What a nice meteor you have. I have promised Minner that I shall give her a meteor. Would you please give your meteor to me.");
                AddOption("Here you are.", 5);
                break;

            case 5:
                AddText("Thanks. I shall engrave my love on this meteor. Please kindly give it to Minner. She will understand why I leave her.");
                AddOption("I shall give it to her.", 6);
                AddOption("Do not touch my meteor.", 255);
                break;

            case 6:
                if (_client.HasItem(1000030) && _client.HasItem(1088001) && _client.HasItem(721001))
                {
                    _client.DeleteItem(721001);
                    _client.DeleteItem(1088001);
                    _client.CreateItem(721002);
                    AddText("Thanks a lot. Please kindly give this meteor to Minner. I hope she can understand me and wish her happy all her life.");
                    AddOption("I hope so.", 255);
                }
                else
                {
                    AddText("You don't have the items I need!");
                    AddOption("Sorry.", 255);
                }
                break;

            case 7:
                AddText("I must have hurt her a lot. She used to carry this bag wherever she goes. I hope she can forget me and be happy all her life.");
                AddOption("I got to go. Bye.", 255);
                break;
            }
            AddFinish();
            Send();
        }