コード例 #1
0
        public static void PickSearchLocation(SearchPage scroll, string DungeonNow, Mobile from)
        {
            string thisWorld = "the Land of Sosaria";
            string thisPlace = "the Dungeon of Doom";
            Map    thisMap   = Map.Trammel;

            int       aCount  = 0;
            ArrayList targets = new ArrayList();

            foreach (Item target in World.Items.Values)
            {
                if (target is SearchBase && (DifficultyLevel.GetDifficultyLevel(target.Location, target.Map) <= GetPlayerInfo.GetPlayerDifficulty(from)))
                {
                    string tWorld = Worlds.GetMyWorld(target.Map, target.Location, target.X, target.Y);
                    Region region = Region.Find(target.Location, target.Map);
                    targets.Add(target);
                    aCount++;
                }
            }

            aCount = Utility.RandomMinMax(1, aCount);

            int xCount = 0;

            for (int i = 0; i < targets.Count; ++i)
            {
                xCount++;

                if (xCount == aCount)
                {
                    Item finding = ( Item )targets[i];
                    thisWorld = Worlds.GetMyWorld(finding.Map, finding.Location, finding.X, finding.Y);
                    thisMap   = finding.Map;
                    thisPlace = Server.Misc.Worlds.GetRegionName(finding.Map, finding.Location);
                }
            }

            string Word1 = "Legends";

            switch (Utility.RandomMinMax(1, 4))
            {
            case 1: Word1 = "Rumors"; break;

            case 2: Word1 = "Myths"; break;

            case 3: Word1 = "Tales"; break;

            case 4: Word1 = "Stories"; break;
            }
            string Word2 = "lost";

            switch (Utility.RandomMinMax(1, 4))
            {
            case 1: Word2 = "kept"; break;

            case 2: Word2 = "seen"; break;

            case 3: Word2 = "taken"; break;

            case 4: Word2 = "hidden"; break;
            }
            string Word3 = "deep in";

            switch (Utility.RandomMinMax(1, 4))
            {
            case 1: Word3 = "within"; break;

            case 2: Word3 = "somewhere in"; break;

            case 3: Word3 = "somehow in"; break;

            case 4: Word3 = "far in"; break;
            }
            string Word4 = "centuries ago";

            switch (Utility.RandomMinMax(1, 4))
            {
            case 1: Word4 = "thousands of years ago"; break;

            case 2: Word4 = "decades ago"; break;

            case 3: Word4 = "millions of years ago"; break;

            case 4: Word4 = "many years ago"; break;
            }

            string sMessage =

                scroll.SearchDungeon = thisPlace;

            scroll.SearchWorld = thisWorld;
            scroll.DungeonMap  = thisMap;

            string EntranceLocation = Worlds.GetAreaEntrance(scroll.SearchDungeon, scroll.DungeonMap);

            string OldMessage = "<br><br><br><br><br><br>" + scroll.SearchMessage;

            scroll.SearchMessage = scroll.SearchItem + "<br><br>" + Word1 + " tell of the " + scroll.SearchItem + " being " + Word2 + " " + Word3;
            scroll.SearchMessage = scroll.SearchMessage + " " + scroll.SearchDungeon + " " + Word4 + " by " + QuestCharacters.QuestGiver() + ".";
            scroll.SearchMessage = scroll.SearchMessage + " in " + scroll.SearchWorld + " at the below sextant coordinates.<br><br>" + EntranceLocation + OldMessage;

            scroll.InvalidateProperties();
        }
コード例 #2
0
        public static void PickSearchLocation(CourierMail scroll, string DungeonNow, Mobile from, string alignment, string homeworld)
        {
            string QuestItem = Server.Misc.QuestCharacters.QuestItems();

            scroll.SearchItem = QuestItem;

            string QuestStory = Server.Misc.QuestCharacters.EpicQuestStory(QuestItem, alignment);

            string thisWorld = "the Land of Sosaria";
            string thisPlace = "the Dungeon of Doom";
            Map    thisMap   = Map.Trammel;

            int       aCount  = 0;
            ArrayList targets = new ArrayList();

            foreach (Item target in World.Items.Values)
            {
                if (target is SearchBase && (DifficultyLevel.GetDifficultyLevel(target.Location, target.Map) <= GetPlayerInfo.GetPlayerDifficulty(from)))
                {
                    string tWorld = Worlds.GetMyWorld(target.Map, target.Location, target.X, target.Y);
                    if (tWorld == "the Land of Sosaria")
                    {
                        targets.Add(target); aCount++;
                    }
                    else if (CharacterDatabase.GetDiscovered(from, tWorld))
                    {
                        targets.Add(target); aCount++;
                    }
                }
            }

            aCount = Utility.RandomMinMax(1, aCount);

            int xCount = 0;

            for (int i = 0; i < targets.Count; ++i)
            {
                xCount++;

                if (xCount == aCount)
                {
                    Item finding = ( Item )targets[i];
                    thisWorld          = Worlds.GetMyWorld(finding.Map, finding.Location, finding.X, finding.Y);
                    thisMap            = finding.Map;
                    thisPlace          = Server.Misc.Worlds.GetRegionName(finding.Map, finding.Location);
                    scroll.MsgComplete = 0;
                    scroll.MsgReward   = Server.Misc.DifficultyLevel.GetDifficultyLevel(finding.Location, finding.Map) + 2;
                    if (scroll.MsgReward < 2)
                    {
                        scroll.MsgReward = 2;
                    }
                }
            }

            string Word1 = "Legends";

            switch (Utility.RandomMinMax(1, 4))
            {
            case 1: Word1 = "Rumors"; break;

            case 2: Word1 = "Myths"; break;

            case 3: Word1 = "Tales"; break;

            case 4: Word1 = "Stories"; break;
            }
            string Word2 = "lost";

            switch (Utility.RandomMinMax(1, 4))
            {
            case 1: Word2 = "kept"; break;

            case 2: Word2 = "seen"; break;

            case 3: Word2 = "taken"; break;

            case 4: Word2 = "hidden"; break;
            }
            string Word3 = "deep in";

            switch (Utility.RandomMinMax(1, 4))
            {
            case 1: Word3 = "within"; break;

            case 2: Word3 = "somewhere in"; break;

            case 3: Word3 = "somehow in"; break;

            case 4: Word3 = "far in"; break;
            }
            string Word4 = "centuries ago";

            switch (Utility.RandomMinMax(1, 4))
            {
            case 1: Word4 = "thousands of years ago"; break;

            case 2: Word4 = "decades ago"; break;

            case 3: Word4 = "millions of years ago"; break;

            case 4: Word4 = "many years ago"; break;
            }

            scroll.SearchDungeon = thisPlace;
            scroll.SearchWorld   = thisWorld;
            scroll.DungeonMap    = thisMap;

            string gold = (scroll.MsgReward * 1000).ToString();

            if (alignment == "neutral")
            {
                gold = (scroll.MsgReward * 1500).ToString();
            }
            string heard  = "I have heard that you could perhaps help me with something of the utmost importance.";
            string reward = "Do this for me, and I can reward you " + gold + " gold.";

            if (alignment != "evil")
            {
                switch (Utility.RandomMinMax(0, 5))
                {
                case 0: heard = "I have heard that you could perhaps help me with something of the utmost importance.";         break;

                case 1: heard = RandomThings.GetRandomName() + " has told me about you, and that maybe you can help.";          break;

                case 2: heard = "After speaking to my friend, " + RandomThings.GetRandomName() + ", they mentioned that maybe you can assist me with something.";       break;

                case 3: heard = "I hear that you are one I could trust for this important task ahead.";         break;

                case 4: heard = "The " + RandomThings.GetRandomJob() + " in " + RandomThings.GetRandomCity() + " mentioned that you could perhaps help me with something.";     break;

                case 5: heard = "There is a dire situation I think you may be able to help with.";      break;
                }
            }
            else if (alignment == "evil")
            {
                reward = "I think that " + gold + " gold will make this worth your time.";
                switch (Utility.RandomMinMax(0, 5))
                {
                case 0: heard = "I have heard that you are one that can serve me in my purposes.";      break;

                case 1: heard = RandomThings.GetRandomName() + " has told me about you, and that you would serve me well.";             break;

                case 2: heard = "After speaking to my servant, " + RandomThings.GetRandomName() + ", they mentioned that maybe you would do my bidding.";       break;

                case 3: heard = "I hear whispers of your ambitions, and that maybe we can both benefit from what I am about to ask.";   break;

                case 4: heard = "Those in " + RandomThings.GetRandomCity() + " sometimes speak your name in hush curses, which is why I have sent this message to you.";        break;

                case 5: heard = "There is an item I need for my plans, and I think you are one that can obtain it with little notice by others.";       break;
                }
            }

            string intro = from.Name + ",<br><br>" + heard;

            string EntranceLocation = Worlds.GetAreaEntrance(scroll.SearchDungeon, scroll.DungeonMap);

            scroll.SearchMessage = intro + " " + reward + " " + QuestStory + " " + Word1 + " tell of " + QuestItem + " being " + Word2 + " " + Word3;

            scroll.SearchMessage = scroll.SearchMessage + " " + scroll.SearchDungeon + " " + Word4 + " in " + scroll.SearchWorld + " at the below sextant coordinates.<br><br>" + EntranceLocation;

            scroll.SearchMessage = scroll.SearchMessage + "<br><br>When you find it, bring this message back to me. I am in " + homeworld + " at the below sextant coordinates.<br><br>" + scroll.ForWhere;

            scroll.SearchMessage = scroll.SearchMessage + "<br><br>- " + scroll.ForWho;

            scroll.InvalidateProperties();
        }