public static Format ( Point3D p, Map map, int &xLong, int &yLat, int &xMins, int &yMins, bool &xEast, bool &ySouth ) : bool | ||
p | Point3D | |
map | Map | |
xLong | int | |
yLat | int | |
xMins | int | |
yMins | int | |
xEast | bool | |
ySouth | bool | |
리턴 | bool |
public MessageGump(MessageEntry entry, Map map, Point3D loc) : base((640 - entry.Width) / 2, (480 - entry.Height) / 2) { int xLong = 0, yLat = 0; int xMins = 0, yMins = 0; bool xEast = false, ySouth = false; string fmt; if (Sextant.Format(loc, map, ref xLong, ref yLat, ref xMins, ref yMins, ref xEast, ref ySouth)) { fmt = String.Format("{0}°{1}'{2},{3}°{4}'{5}", yLat, yMins, ySouth ? "S" : "N", xLong, xMins, xEast ? "E" : "W"); } else { fmt = "?????"; } AddPage(0); AddBackground(0, 0, entry.Width, entry.Height, 2520); AddHtml(38, 38, entry.Width - 83, entry.Height - 86, String.Format(entry.Message, fmt), false, false); }
private string GetSextantLocation() { if (TargetMap == null) { return("Unknown"); } int x = Target.X; int y = Target.Y; int xLong = 0, yLat = 0; int xMins = 0, yMins = 0; bool xEast = false, ySouth = false; if (Sextant.Format(new Point3D(x, y, TargetMap.GetAverageZ(x, y)), TargetMap, ref xLong, ref yLat, ref xMins, ref yMins, ref xEast, ref ySouth)) { return(String.Format("{0}° {1}'{2}, {3}° {4}'{5}", yLat, yMins, ySouth ? "S" : "N", xLong, xMins, xEast ? "E" : "W")); } return("Unknown"); }
public override void OnDoubleClick(Mobile from) { string world = Worlds.GetMyWorld(from.Map, from.Location, from.X, from.Y); int xLong = 0, yLat = 0; int xMins = 0, yMins = 0; bool xEast = false, ySouth = false; if (world == "the Underworld" && !(this is MagicSextant)) { from.SendMessage("You will need a magical sextant to see the stars through the cavern ceiling!"); } else if (Sextant.Format(from.Location, from.Map, ref xLong, ref yLat, ref xMins, ref yMins, ref xEast, ref ySouth)) { string location = String.Format("{0}° {1}'{2}, {3}° {4}'{5}", yLat, yMins, ySouth ? "S" : "N", xLong, xMins, xEast ? "E" : "W"); from.LocalOverheadMessage(MessageType.Regular, from.SpeechHue, false, location); } else if (Server.Misc.Worlds.GetRegionName(from.Map, from.Location) == "Ravendark Woods") { from.SendMessage("You can't use a sextant as the sun and stars are blocked by the evil darkness here!"); } else if (Server.Misc.Worlds.GetRegionName(from.Map, from.Location) == "the Village of Ravendark") { from.SendMessage("You can't use a sextant as the sun and stars are blocked by the evil darkness here!"); } else if (Server.Misc.Worlds.GetRegionName(from.Map, from.Location) == "the Ranger Outpost") { from.SendMessage("You can't use a sextant as the mountain clouds block the sky!"); } else if (Server.Misc.Worlds.GetRegionName(from.Map, from.Location) == "the Valley of Dark Druids") { from.SendMessage("The druids mask this valley with thick clouds!"); } else { from.SendMessage("The sextant does not seem to work here!"); } }
public string FormatLocation() { if (!ValidLocation()) { return("no location set"); } int xLong = 0, yLat = 0; int xMins = 0, yMins = 0; bool xEast = false, ySouth = false; Point3D loc = new Point3D(m_Bounds.X + m_Bounds.Width / 2, m_Bounds.Y + m_Bounds.Height / 2, 0); Map map = m_Facet; if (Sextant.Format(loc, map, ref xLong, ref yLat, ref xMins, ref yMins, ref xEast, ref ySouth)) { return(String.Format("{0}°{1}'{2},{3}°{4}'{5} ({6})", yLat, yMins, ySouth ? "S" : "N", xLong, xMins, xEast ? "E" : "W", map)); } else { return(String.Format("{0},{1} ({2})", loc.X, loc.Y, map)); } }
public string[] GetCoords() { string[] array = new string[2]; Point3D loc = Point3D.Zero; Map locmap = Map.Internal; if (SetLocation != Point3D.Zero && SetMap != Map.Internal) { loc = SetLocation; locmap = SetMap; } else if (SafeLocation != Point3D.Zero && SafeMap != Map.Internal) { loc = SafeLocation; locmap = SafeMap; } if (loc != Point3D.Zero && locmap != Map.Internal) { int x = loc.X; int y = loc.Y; int z = loc.Z; Map map = locmap; int xLong = 0, yLat = 0; int xMins = 0, yMins = 0; bool xEast = false, ySouth = false; if (Sextant.Format(new Point3D(x, y, z), map, ref xLong, ref yLat, ref xMins, ref yMins, ref xEast, ref ySouth)) { return(new string[] { string.Format("{0}° {1}'{2}, {3}° {4}'{5}", yLat, yMins, ySouth ? "S" : "N", xLong, xMins, xEast ? "E" : "W"), map.ToString() }); } } return(new string[] { "an unknown location", "Unknown" }); }
public static string FormatLocation(Point3D loc, Map map, bool displayMap) { StringBuilder result = new StringBuilder(); int xLong = 0, yLat = 0; int xMins = 0, yMins = 0; bool xEast = false, ySouth = false; if (Sextant.Format(loc, map, ref xLong, ref yLat, ref xMins, ref yMins, ref xEast, ref ySouth)) { result.AppendFormat("{0}°{1}'{2},{3}°{4}'{5}", yLat, yMins, ySouth ? "S" : "N", xLong, xMins, xEast ? "E" : "W"); } else { result.AppendFormat("{0},{1}", loc.X, loc.Y); } if (displayMap) { result.AppendFormat(" ({0})", map); } return(result.ToString()); }
public PrisonerMessage(BaseCamp c, BaseEscortable escort) : base(c.Prisoner, null, "", null) { m_Camp = c; switch (Utility.Random(13)) { case 0: Subject = "A kidnapping!"; break; case 1: Subject = "Help!"; break; case 2: Subject = "Help us, please!"; break; case 3: Subject = "Adventurers needed!"; break; case 4: Subject = "Seeking assistance"; break; case 5: Subject = "In need of aid"; break; case 6: Subject = "Canst thou help us?"; break; case 7: Subject = "Shall any save our friend?"; break; case 8: Subject = "A friend was kidnapped!"; break; case 9: Subject = "Heroes wanted!"; break; case 10: Subject = "Can any assist us?"; break; case 11: Subject = "Kidnapped!"; break; case 12: Subject = "Taken prisoner"; break; } double distance; BulletinBoard board = FindClosestBB(c.Prisoner, out distance); List <String> myLines = new List <String>(); string[] subtext1 = { "foul", "vile", "evil", "dark", "cruel", "vicious", "scoundrelly", "dastardly", "cowardly", "craven", "foul and monstrous", "monstrous", "hideous", "terrible", "cruel, evil", "truly vile", "vicious and cunning", "" }; string camp; switch (c.Camp) { default: case CampType.Default: camp = ""; break; //case CampType.EvilMage: camp = "evil mages"; break; //case CampType.GoodMage: camp = "mages"; break; case CampType.Lizardman: camp = "lizardmen"; break; case CampType.Orc: camp = "orcs"; break; case CampType.Ratman: camp = "ratmen"; break; case CampType.Brigand: camp = "brigands"; break; //case CampType.Gypsy: camp = "gypsys"; break; //case CampType.Warlord: camp = "a warlord"; break; } myLines.Add(String.Format("Help us please! {0} hath", escort.Name)); myLines.Add(String.Format("been kidnapped by ")); myLines.Add(String.Format("{0} {1}!", subtext1[Utility.Random(subtext1.Length)], camp)); myLines.Add(String.Format("We believe that {0} is held at", escort.Female ? "she" : "he")); int xLong = 0, yLat = 0; int xMins = 0, yMins = 0; bool xEast = false, ySouth = false; if (Sextant.Format(c.Location, c.Map, ref xLong, ref yLat, ref xMins, ref yMins, ref xEast, ref ySouth)) { myLines.Add(String.Format("{0}o {1}'{2}, {3}o {4}'{5}", yLat, yMins, ySouth ? "S" : "N", xLong, xMins, xEast ? "E" : "W")); } /*myLines.Add(String.Format("{0}")); * myLines.Add(String.Format("{0}.")); * myLines.Add(String.Format("{0}"));*/ Lines = myLines.ToArray(); if (board != null) { board.AddItem(this); } else { Delete(); } }
private void AddDetails(int index) { try{ if (index < m_List.Count) { int xSet = 1; int ySet = 1; Map mSet = Map.Sosaria; int btn; int row; btn = (index) + 101; row = index % 12; PlayerVendor pv = m_List[index] as PlayerVendor; Account a = pv.Owner.Account as Account; string vMap = "Sosaria"; if ((pv.Map == Map.Lodor) && (pv.X > 5157) && (pv.Y > 1095) && (pv.X < 5296) && (pv.Y < 1401)) { vMap = "Ranger Outpost"; xSet = 1241; ySet = 1888; mSet = Map.Lodor; } else if ((pv.Map == Map.Lodor) && (pv.X > 6445) && (pv.Y > 3054) && (pv.X < 7007) && (pv.Y < 3478)) { vMap = "Ravendark Woods"; xSet = 466; ySet = 3801; mSet = Map.Lodor; } else if (pv.Map == Map.Lodor) { vMap = "Lodoria"; xSet = pv.X; ySet = pv.Y; mSet = Map.Lodor; } else if ((pv.Map == Map.Sosaria) && (pv.X > 5218) && (pv.Y > 1036) && (pv.X < 5414) && (pv.Y < 1304)) { vMap = "Umbra Cave"; xSet = 3370; ySet = 1553; mSet = Map.Sosaria; } else if ((pv.Map == Map.Sosaria) && (pv.X > 6548) && (pv.Y > 3812) && (pv.X < 6741) && (pv.Y < 4071)) { vMap = "Shipwreck Grotto"; xSet = 318; ySet = 1397; mSet = Map.Sosaria; } else if ((pv.Map == Map.Sosaria) && (pv.X > 860) && (pv.Y > 3184) && (pv.X < 2136) && (pv.Y < 4090)) { vMap = "Umber Veil"; xSet = pv.X; ySet = pv.Y; mSet = Map.Sosaria; } else if ((pv.Map == Map.Sosaria) && (pv.X > 5129) && (pv.Y > 3062)) { vMap = "Ambrosia"; xSet = pv.X; ySet = pv.Y; mSet = Map.Sosaria; } else if ((pv.Map == Map.Sosaria) && (pv.X > 5793) && (pv.Y > 2738) && (pv.X < 6095) && (pv.Y < 3011)) { vMap = "Moon of Luna"; xSet = 3696; ySet = 519; mSet = Map.Sosaria; } else if ((pv.Map == Map.SerpentIsland) && (pv.X > 1875)) { if ((pv.X > 1949) && (pv.Y > 1393) && (pv.X < 2061) && (pv.Y < 1486)) { xSet = 1863; ySet = 1129; vMap = "Sosaria"; mSet = Map.Sosaria; } else if ((pv.X > 2150) && (pv.Y > 1401) && (pv.X < 2270) && (pv.Y < 1513)) { xSet = 1861; ySet = 2747; vMap = "Lodoria"; mSet = Map.Lodor; } else if ((pv.X > 2375) && (pv.Y > 1398) && (pv.X < 2442) && (pv.Y < 1467)) { xSet = 466; ySet = 3801; vMap = "Lodoria"; mSet = Map.Lodor; } else if ((pv.X > 2401) && (pv.Y > 1635) && (pv.X < 2468) && (pv.Y < 1703)) { xSet = 254; ySet = 670; vMap = "Serpent Island"; mSet = Map.SerpentIsland; } else if ((pv.X > 2408) && (pv.Y > 1896) && (pv.X < 2517) && (pv.Y < 2005)) { xSet = 422; ySet = 398; vMap = "Savaged Empire"; mSet = Map.SavagedEmpire; } else if ((pv.X > 2181) && (pv.Y > 1889) && (pv.X < 2275) && (pv.Y < 2003)) { xSet = 251; ySet = 1249; vMap = "Dread Isles"; mSet = Map.IslesDread; } else if ((pv.X > 1930) && (pv.Y > 1890) && (pv.X < 2022) && (pv.Y < 1997)) { xSet = 3884; ySet = 2879; vMap = "Sosaria"; mSet = Map.Sosaria; } } else if (pv.Map == Map.SerpentIsland) { vMap = "Serpent Island"; xSet = pv.X; ySet = pv.Y; mSet = Map.SerpentIsland; } else if ((pv.Map == Map.Underworld) && (pv.X > 1630)) { if ((pv.X > 1644) && (pv.Y > 35) && (pv.X < 1818) && (pv.Y < 163)) { xSet = 4299; ySet = 3318; vMap = "Lodoria"; mSet = Map.Lodor; } else if ((pv.X > 1864) && (pv.Y > 32) && (pv.X < 2041) && (pv.Y < 162)) { xSet = 177; ySet = 961; vMap = "Savaged Empire"; mSet = Map.SavagedEmpire; } else if ((pv.X > 2098) && (pv.Y > 27) && (pv.X < 2272) && (pv.Y < 156)) { xSet = 766; ySet = 1527; vMap = "Savaged Empire"; mSet = Map.SavagedEmpire; } else if ((pv.X > 1647) && (pv.Y > 184) && (pv.X < 1810) && (pv.Y < 305)) { xSet = 1191; ySet = 1516; vMap = "Serpent Island"; mSet = Map.SerpentIsland; } else if ((pv.X > 1877) && (pv.Y > 187) && (pv.X < 2033) && (pv.Y < 302)) { xSet = 1944; ySet = 3377; vMap = "Umber Veil"; mSet = Map.Sosaria; } else if ((pv.X > 2108) && (pv.Y > 190) && (pv.X < 2269) && (pv.Y < 305)) { xSet = 1544; ySet = 1785; vMap = "Serpent Island"; mSet = Map.SerpentIsland; } else if ((pv.X > 1656) && (pv.Y > 335) && (pv.X < 1807) && (pv.Y < 443)) { xSet = 2059; ySet = 2406; vMap = "Sosaria"; mSet = Map.Sosaria; } else if ((pv.X > 1880) && (pv.Y > 338) && (pv.X < 2031) && (pv.Y < 445)) { xSet = 1558; ySet = 2861; vMap = "Lodoria"; mSet = Map.Lodor; } else if ((pv.X > 2111) && (pv.Y > 335) && (pv.X < 2266) && (pv.Y < 446)) { xSet = 755; ySet = 1093; vMap = "Dread Isles"; mSet = Map.IslesDread; } else if ((pv.X > 1657) && (pv.Y > 496) && (pv.X < 1807) && (pv.Y < 606)) { xSet = 2181; ySet = 1327; vMap = "Sosaria"; mSet = Map.Sosaria; } else if ((pv.X > 1879) && (pv.Y > 498) && (pv.X < 2031) && (pv.Y < 605)) { xSet = 752; ySet = 680; vMap = "Savaged Empire"; mSet = Map.SavagedEmpire; } else if ((pv.X > 2115) && (pv.Y > 499) && (pv.X < 2263) && (pv.Y < 605)) { xSet = 466; ySet = 3801; vMap = "Ravendark Woods"; mSet = Map.Lodor; } else if ((pv.X > 1657) && (pv.Y > 641) && (pv.X < 1808) && (pv.Y < 748)) { xSet = 2893; ySet = 2030; vMap = "Lodoria"; mSet = Map.Lodor; } else if ((pv.X > 1883) && (pv.Y > 640) && (pv.X < 2033) && (pv.Y < 745)) { xSet = 1050; ySet = 93; vMap = "Savaged Empire"; mSet = Map.SavagedEmpire; } else if ((pv.X > 2113) && (pv.Y > 641) && (pv.X < 2266) && (pv.Y < 747)) { xSet = 127; ySet = 85; vMap = "Dread Isles"; mSet = Map.IslesDread; } else if ((pv.X > 1657) && (pv.Y > 795) && (pv.X < 1811) && (pv.Y < 898)) { xSet = 145; ySet = 1434; vMap = "Serpent Island"; mSet = Map.SerpentIsland; } else if ((pv.X > 1883) && (pv.Y > 794) && (pv.X < 2034) && (pv.Y < 902)) { xSet = 2625; ySet = 823; vMap = "Lodoria"; mSet = Map.Lodor; } else if ((pv.X > 2112) && (pv.Y > 794) && (pv.X < 2267) && (pv.Y < 898)) { xSet = 740; ySet = 182; vMap = "Dread Isles"; mSet = Map.IslesDread; } else if ((pv.X > 1659) && (pv.Y > 953) && (pv.X < 1809) && (pv.Y < 1059)) { xSet = 5390; ySet = 3280; vMap = "Ambrosia"; mSet = Map.Sosaria; } else if ((pv.X > 1881) && (pv.Y > 954) && (pv.X < 2034) && (pv.Y < 1059)) { xSet = 922; ySet = 1775; vMap = "Hedge Maze"; mSet = Map.SavagedEmpire; } else if ((pv.X > 2113) && (pv.Y > 952) && (pv.X < 2268) && (pv.Y < 1056)) { xSet = 1036; ySet = 1162; vMap = "Savaged Empire"; mSet = Map.SavagedEmpire; } } else if (pv.Map == Map.IslesDread) { vMap = "Dread Isles"; xSet = pv.X; ySet = pv.Y; mSet = Map.IslesDread; } else if ((pv.Map == Map.SavagedEmpire) && (pv.Y < 1800)) { vMap = "Savaged Empire"; xSet = pv.X; ySet = pv.Y; mSet = Map.SavagedEmpire; } else if (pv.Map == Map.Sosaria && pv.X > 5125 && pv.Y > 3038 && pv.X < 6124 && pv.Y < 4093) { vMap = "Ambrosia"; xSet = pv.X; ySet = pv.Y; mSet = Map.Sosaria; } else if (pv.Map == Map.Sosaria && pv.X > 699 && pv.Y > 3129 && pv.X < 2272 && pv.Y < 4095) { vMap = "Umber Veil"; xSet = pv.X; ySet = pv.Y; mSet = Map.Sosaria; } else if (pv.Map == Map.Sosaria && pv.X > 6127 && pv.Y > 828 && pv.X < 7168 && pv.Y < 2738) { vMap = "Bottle World"; xSet = pv.X; ySet = pv.Y; mSet = Map.Sosaria; } int xLong = 0, yLat = 0; int xMins = 0, yMins = 0; bool xEast = false, ySouth = false; Point3D spot = new Point3D(xSet, ySet, 0); string my_location = pv.Location.ToString(); if (Sextant.Format(spot, mSet, ref xLong, ref yLat, ref xMins, ref yMins, ref xEast, ref ySouth)) { my_location = String.Format("{0}° {1}'{2}, {3}° {4}'{5}", yLat, yMins, ySouth ? "S" : "N", xLong, xMins, xEast ? "E" : "W"); } AddLabel(32, 46 + (row * 20), 1152, String.Format("{0}", pv.ShopName)); AddLabel(250, 46 + (row * 20), 1152, String.Format("{0}", pv.Owner.Name)); AddLabel(415, 46 + (row * 20), 1152, String.Format("{0} {1}", my_location, vMap)); if (pv == null) { Console.WriteLine("No Vendors In Shard..."); return; } } } catch {} }
public ScrollClue( ) : base(0x2258) { Weight = 1.0; Hue = 0x83C; Name = "a parchment"; ItemID = Utility.RandomList(0x14EF, 0x14F0, 0x46AE, 0x46AF, 0x46B2, 0x46B3); if (ScrollLevel > 0) { } else { string sLanguage = "pixie"; switch (Utility.RandomMinMax(0, 28)) { case 0: sLanguage = "balron"; break; case 1: sLanguage = "pixie"; break; case 2: sLanguage = "centaur"; break; case 3: sLanguage = "demonic"; break; case 4: sLanguage = "dragon"; break; case 5: sLanguage = "dwarvish"; break; case 6: sLanguage = "elven"; break; case 7: sLanguage = "fey"; break; case 8: sLanguage = "gargoyle"; break; case 9: sLanguage = "cyclops"; break; case 10: sLanguage = "gnoll"; break; case 11: sLanguage = "goblin"; break; case 12: sLanguage = "gremlin"; break; case 13: sLanguage = "druidic"; break; case 14: sLanguage = "tritun"; break; case 15: sLanguage = "minotaur"; break; case 16: sLanguage = "naga"; break; case 17: sLanguage = "ogrish"; break; case 18: sLanguage = "orkish"; break; case 19: sLanguage = "sphinx"; break; case 20: sLanguage = "treekin"; break; case 21: sLanguage = "trollish"; break; case 22: sLanguage = "undead"; break; case 23: sLanguage = "vampire"; break; case 24: sLanguage = "dark elf"; break; case 25: sLanguage = "magic"; break; case 26: sLanguage = "human"; break; case 27: sLanguage = "symbolic"; break; case 28: sLanguage = "runic"; break; } string sPart = "a "; switch (Utility.RandomMinMax(0, 6)) { case 0: sPart = "a strange "; break; case 1: sPart = "an odd "; break; case 2: sPart = "an ancient "; break; case 3: sPart = "a long dead "; break; case 4: sPart = "a cryptic "; break; case 5: sPart = "a mystical "; break; case 6: sPart = "a symbolic "; break; } string sCalled = "a strange"; switch (Utility.RandomMinMax(0, 6)) { case 0: sCalled = "an odd"; break; case 1: sCalled = "an unusual"; break; case 2: sCalled = "a bizarre"; break; case 3: sCalled = "a curious"; break; case 4: sCalled = "a peculiar"; break; case 5: sCalled = "a strange"; break; case 6: sCalled = "a weird"; break; } Name = sCalled + " parchment"; ScrollDescribe = "written in " + sPart + sLanguage + " language"; ScrollIntelligence = Utility.RandomMinMax(2, 8) * 10; ScrollLevel = (ScrollIntelligence / 10) - 1; if (ScrollIntelligence >= 80) { ScrollSolved = "Diabolically Coded"; } else if (ScrollIntelligence >= 70) { ScrollSolved = "Ingeniously Coded"; } else if (ScrollIntelligence >= 60) { ScrollSolved = "Deviously Coded"; } else if (ScrollIntelligence >= 50) { ScrollSolved = "Cleverly Coded"; } else if (ScrollIntelligence >= 40) { ScrollSolved = "Adeptly Coded"; } else if (ScrollIntelligence >= 30) { ScrollSolved = "Expertly Coded"; } else { ScrollSolved = "Plainly Coded"; } int scrollWords = Utility.RandomMinMax(1, 4); ScrollTrue = 1; if (Utility.RandomMinMax(1, 2) == 1) { ScrollTrue = 1; } if (ScrollTrue == 0) { ScrollTrue = 1; } if (scrollWords == 1) { string world = "the Land of Sosaria"; switch (Utility.Random(9)) { case 0: world = "the Land of Sosaria"; break; case 1: world = "the Land of Lodoria"; break; case 2: world = "the Serpent Island"; break; case 3: world = "the Isles of Dread"; break; case 4: world = "the Savaged Empire"; break; case 5: world = "the Land of Ambrosia"; break; case 6: world = "the Island of Umber Veil"; break; case 7: world = "the Bottle World of Kuldar"; break; case 8: world = "the Underworld"; break; } Point3D loc = Worlds.GetRandomLocation(world, "land"); ScrollX = loc.X; ScrollY = loc.Y; ScrollMap = Worlds.GetMyDefaultMap(world); ScrollQuest = "grave"; Point3D spot = new Point3D(ScrollX, ScrollY, 0); int xLong = 0, yLat = 0; int xMins = 0, yMins = 0; bool xEast = false, ySouth = false; string my_location = ""; if (Sextant.Format(spot, ScrollMap, ref xLong, ref yLat, ref xMins, ref yMins, ref xEast, ref ySouth)) { my_location = String.Format("{0}° {1}'{2}, {3}° {4}'{5}", yLat, yMins, ySouth ? "S" : "N", xLong, xMins, xEast ? "E" : "W"); } switch (Utility.Random(3)) { case 0: ScrollCharacter = QuestCharacters.ParchmentWriter(); ScrollText = "Dear " + QuestCharacters.ParchmentWriter() + ",<br><br>It saddens me to write this message to you and I hope it finds you well. " + ScrollCharacter + " was killed while we were exploring " + QuestCharacters.SomePlace("parchment") + " and I have done everything I could for them. I could not bring them with me as the journey to " + RandomThings.GetRandomCity() + " was too far and I did not want the animals to pick the bones clean, so I buried them in a shallow grave in " + world + ". If you wish to visit the grave, the location is at...<br><br>" + my_location + "<br><br>Make sure to bring a grave digging shovel if you wish to return them to your home in " + RandomThings.GetRandomCity() + " and read this parchment when you get there to make sure you are in the right spot. Again, I am sorry for your loss.<br><br> - " + QuestCharacters.QuestGiver() + ""; break; case 1: ScrollCharacter = QuestCharacters.ParchmentWriter(); ScrollText = QuestCharacters.ParchmentWriter() + ",<br><br>This message is for you eyes only, I would appreciate discretion in this matter. " + ScrollCharacter + " tried to kill me while we were traveling " + world + ", but I bested them in battle. Before returning to " + RandomThings.GetRandomCity() + ", I buried them to keep others from asking questions of their whereabouts. I also buried them with their belongings so if they had something you needed, you can find their body at...<br><br>" + my_location + "<br><br>Make sure to bring a grave digging shovel, and bury it back up when you are done. Make sure to read this parchment when you get there to make sure you are in the right spot. I already have enough troubles.<br><br> - " + QuestCharacters.QuestGiver() + ""; break; case 2: ScrollCharacter = QuestCharacters.ParchmentWriter(); ScrollText = QuestCharacters.ParchmentWriter() + ",<br><br>The plan worked! I led " + ScrollCharacter + " out into " + world + " and killed them before they even knew what I was doing. I buried them and went back to " + RandomThings.GetRandomCity() + " to collect my payment, but they said you needed proof of the deed. Very well. I buried the body at...<br><br>" + my_location + "<br><br>So you can go see for yourself. Make sure to bring a grave digging shovel and read this parchment when you get there to make sure you are in the right spot. Then meet me in " + RandomThings.GetRandomCity() + " where I will be waiting for my gold. Don't take too long, or I may have to do a job for myself.<br><br> - " + QuestCharacters.ParchmentWriter() + ""; break; } } else if (scrollWords == 2) { string world = "the Land of Sosaria"; switch (Utility.Random(9)) { case 0: world = "the Land of Sosaria"; break; case 1: world = "the Land of Lodoria"; break; case 2: world = "the Serpent Island"; break; case 3: world = "the Isles of Dread"; break; case 4: world = "the Savaged Empire"; break; case 5: world = "the Land of Ambrosia"; break; case 6: world = "the Island of Umber Veil"; break; case 7: world = "the Bottle World of Kuldar"; break; case 8: world = "the Underworld"; break; } Point3D loc = Worlds.GetRandomLocation(world, "land"); ScrollX = loc.X; ScrollY = loc.Y; ScrollMap = Worlds.GetMyDefaultMap(world); ScrollQuest = "chest"; Point3D spot = new Point3D(ScrollX, ScrollY, 0); int xLong = 0, yLat = 0; int xMins = 0, yMins = 0; bool xEast = false, ySouth = false; string my_location = ""; if (Sextant.Format(spot, ScrollMap, ref xLong, ref yLat, ref xMins, ref yMins, ref xEast, ref ySouth)) { my_location = String.Format("{0}° {1}'{2}, {3}° {4}'{5}", yLat, yMins, ySouth ? "S" : "N", xLong, xMins, xEast ? "E" : "W"); } string sVillain = "thieves"; string sHero = "a ranger"; string sBody = "foot"; string sMonster = "an orc"; switch (Utility.RandomMinMax(0, 4)) { case 0: sVillain = "thieves"; sHero = "a ranger"; sBody = "foot"; sMonster = "an orc"; break; case 1: sVillain = "rogues"; sHero = "a guard"; sBody = "leg"; sMonster = "an ogre"; break; case 2: sVillain = "robbers"; sHero = "a knight"; sBody = "hand"; sMonster = "a troll"; break; case 3: sVillain = "brigands"; sHero = "a peasant"; sBody = "head"; sMonster = "a lizardman"; break; case 4: sVillain = "bandits"; sHero = "a mercenary"; sBody = "arm"; sMonster = "an ettin"; break; } switch (Utility.Random(3)) { case 0: ScrollCharacter = QuestCharacters.QuestGiver(); ScrollText = "Dear " + QuestCharacters.ParchmentWriter() + ",<br><br>I made it to " + RandomThings.GetRandomCity() + " last night after being chased by some " + sVillain + " through " + world + ". In order to not lose everything I was traveling with, I had to bury it. I think they knew what I had in that chest because I see them around asking questions about me. It is up to you to get to it before they do. I will attempt to lead them away while you head for...<br><br>" + my_location + "<br><br>Make sure to bring a shovel and read this parchment when you get there to make sure you are in the right spot. Once I lose them I will return home. Keep that one thing safe above all else.<br><br> - " + ScrollCharacter + ""; break; case 1: ScrollCharacter = QuestCharacters.ParchmentWriter(); ScrollText = QuestCharacters.ParchmentWriter() + ",<br><br>I managed to follow " + ScrollCharacter + " all the way to " + RandomThings.GetRandomCity() + " where they stayed for " + Utility.RandomMinMax(2, 8) + " days. When they finally departed, I followed them through " + world + " and waited for the right moment. Although things did not go well for them, I managed to get that chest you wanted. What I didn't know was " + sHero + " saw me and gave chase. I managed to lose them long enough to bury the goods and make it back to " + RandomThings.GetRandomCity() + " without getting caught. Although they are still searching for me, they know not who you are. If you can dig it up at...<br><br>" + my_location + "<br><br>I will gladly accept half the gold as payment since I could not deliver it to you myself. Make sure to bring a shovel and read this parchment when you get there to make sure you are in the right spot.<br><br> - " + QuestCharacters.QuestGiver() + ""; break; case 2: ScrollCharacter = QuestCharacters.QuestGiver(); ScrollText = QuestCharacters.ParchmentWriter() + ",<br><br>I followed all of the clues and it led me to " + RandomThings.GetRandomCity() + " where I found the final piece of the map. It shows that " + ScrollCharacter + " buried their treasure in " + world + " and it may still be there. I am resting in " + RandomThings.GetRandomCity() + " as I write this because I severely hurt my " + sBody + " in " + sMonster + " attack yesterday. As soon as you can, go to...<br><br>" + my_location + "<br><br>Make sure to bring a shovel and read this parchment when you get there to make sure you are in the right spot. If that item is in the chest as the legends say, then bring it to " + QuestCharacters.SomePlace("parchment") + " and I will meet you there.<br><br> - " + QuestCharacters.ParchmentWriter() + ""; break; } } else if (scrollWords == 3) { string world = "the Land of Sosaria"; switch (Utility.Random(9)) { case 0: world = "the Land of Sosaria"; break; case 1: world = "the Land of Lodoria"; break; case 2: world = "the Serpent Island"; break; case 3: world = "the Isles of Dread"; break; case 4: world = "the Savaged Empire"; break; case 5: world = "the Land of Ambrosia"; break; case 6: world = "the Island of Umber Veil"; break; case 7: world = "the Bottle World of Kuldar"; break; case 8: world = "the Underworld"; break; } Point3D loc = Worlds.GetRandomLocation(world, "sea"); Map shipMap = Worlds.GetMyDefaultMap(world); if (ScrollTrue == 1) { switch (Utility.Random(31)) { case 0: loc = new Point3D(578, 1370, -5); shipMap = Map.Ilshenar; break; case 1: loc = new Point3D(946, 821, -5); shipMap = Map.TerMur; break; case 2: loc = new Point3D(969, 217, -5); shipMap = Map.TerMur; break; case 3: loc = new Point3D(322, 661, -5); shipMap = Map.TerMur; break; case 4: loc = new Point3D(760, 587, -5); shipMap = Map.Tokuno; break; case 5: loc = new Point3D(200, 1056, -5); shipMap = Map.Tokuno; break; case 6: loc = new Point3D(1232, 387, -5); shipMap = Map.Tokuno; break; case 7: loc = new Point3D(528, 233, -5); shipMap = Map.Tokuno; break; case 8: loc = new Point3D(504, 1931, -5); shipMap = Map.Malas; break; case 9: loc = new Point3D(1472, 1776, -5); shipMap = Map.Malas; break; case 10: loc = new Point3D(1560, 579, -5); shipMap = Map.Malas; break; case 11: loc = new Point3D(1328, 144, -5); shipMap = Map.Malas; break; case 12: loc = new Point3D(2312, 2299, -5); shipMap = Map.Felucca; break; case 13: loc = new Point3D(2497, 3217, -5); shipMap = Map.Felucca; break; case 14: loc = new Point3D(576, 3523, -5); shipMap = Map.Felucca; break; case 15: loc = new Point3D(4352, 3768, -5); shipMap = Map.Felucca; break; case 16: loc = new Point3D(4824, 1627, -5); shipMap = Map.Felucca; break; case 17: loc = new Point3D(3208, 216, -5); shipMap = Map.Felucca; break; case 18: loc = new Point3D(1112, 619, -5); shipMap = Map.Felucca; break; case 19: loc = new Point3D(521, 2153, -5); shipMap = Map.Felucca; break; case 20: loc = new Point3D(2920, 1643, -5); shipMap = Map.Felucca; break; case 21: loc = new Point3D(320, 2288, -5); shipMap = Map.Trammel; break; case 22: loc = new Point3D(3343, 1842, -5); shipMap = Map.Trammel; break; case 23: loc = new Point3D(3214, 938, -5); shipMap = Map.Trammel; break; case 24: loc = new Point3D(4520, 1128, -5); shipMap = Map.Trammel; break; case 25: loc = new Point3D(4760, 2307, -5); shipMap = Map.Trammel; break; case 26: loc = new Point3D(3551, 2952, -5); shipMap = Map.Trammel; break; case 27: loc = new Point3D(1271, 2651, -5); shipMap = Map.Trammel; break; case 28: loc = new Point3D(744, 1304, -5); shipMap = Map.Trammel; break; case 29: loc = new Point3D(735, 555, -5); shipMap = Map.Trammel; break; case 30: loc = new Point3D(1824, 440, -5); shipMap = Map.Trammel; break; } world = Server.Misc.Worlds.GetMyWorld(shipMap, loc, loc.X, loc.Y); } int shipX = loc.X; int shipY = loc.Y; Point3D spot = new Point3D(shipX, shipY, 0); int xLong = 0, yLat = 0; int xMins = 0, yMins = 0; bool xEast = false, ySouth = false; string my_location = ""; if (Sextant.Format(spot, shipMap, ref xLong, ref yLat, ref xMins, ref yMins, ref xEast, ref ySouth)) { my_location = String.Format("{0}° {1}'{2}, {3}° {4}'{5}", yLat, yMins, ySouth ? "S" : "N", xLong, xMins, xEast ? "E" : "W"); } switch (Utility.Random(3)) { case 0: ScrollText = "Dear " + QuestCharacters.ParchmentWriter() + ",<br><br>We were sailing the high seas in " + world + ", when we noticed our anchor was caught on something. The water was clear so we could see almost to the bottom of the sea floor. We were caught on a ship that met its demise. We spent about " + Utility.RandomMinMax(2, 8) + " days, fishing up what we could from the wreck.<br><br>" + my_location + "<br><br>We found some interesting items. One of our crew, who was a member of the mariners guild, seemed to bring up the most valuable items. We were running out of food so we headed toward shore. With my cut of the bounty, I now sit here in " + RandomThings.GetRandomCity() + ", writing this long awaited letter to you. Stop here when you can, as I have a proposition for you.<br><br> - " + QuestCharacters.QuestGiver() + ""; break; case 1: ScrollText = "Dear " + QuestCharacters.ParchmentWriter() + ",<br><br>We were found our old ship while on the high seas in " + world + ". The sun was favorable, and we could see the mast close to the surface of the wake. We spent about " + Utility.RandomMinMax(2, 8) + " days trying to bring up what we could.<br><br>" + my_location + "<br><br>We recovered many of our things. One of our crew, who was a member of the mariners guild, seemed to bring up the captain's loot. The water was gettig rough, so we headed for the nearby docks. If you can meet me in " + RandomThings.GetRandomCity() + ", I can return some of your things you lost that fateful day.<br><br> - " + QuestCharacters.QuestGiver() + ""; break; case 2: ScrollText = "Dear " + QuestCharacters.ParchmentWriter() + ",<br><br>The legends were true! That crazy " + RandomThings.GetRandomJob() + " knew where that ship was and I found it. I had to take a small boat out there, but I could make out its shadow beneath the waves.<br><br>" + my_location + "<br><br>I can't hope to recover anything from the wreck, but I might be able to with he help of your father. Make your way to " + RandomThings.GetRandomCity() + ", and we will come up with a plan to buy a ship and return for the treasure.<br><br> - " + QuestCharacters.QuestGiver() + ""; break; } } else { int xSet = 1; int ySet = 1; Map mSet = Map.Trammel; string vMap = ""; string vHome = "a dungeon"; int HomeLocation = Utility.RandomMinMax(1, 2); if (HomeLocation == 1) { ScrollTrue = 1; vHome = "a castle in the sky"; switch (Utility.Random(7)) { case 0: xSet = 1863; ySet = 1129; mSet = Map.Trammel; break; case 1: xSet = 1861; ySet = 2747; mSet = Map.Felucca; break; case 2: xSet = 466; ySet = 3801; mSet = Map.Felucca; break; case 3: xSet = 254; ySet = 670; mSet = Map.Malas; break; case 4: xSet = 422; ySet = 398; mSet = Map.TerMur; break; case 5: xSet = 251; ySet = 1249; mSet = Map.Tokuno; break; case 6: xSet = 3884; ySet = 2879; mSet = Map.Trammel; break; } } else if (HomeLocation == 2) { ScrollTrue = 1; vHome = "a dungeon"; switch (Utility.Random(21)) { case 0: xSet = 4299; ySet = 3318; mSet = Map.Felucca; break; case 1: xSet = 177; ySet = 961; mSet = Map.TerMur; break; case 2: xSet = 766; ySet = 1527; mSet = Map.TerMur; break; case 3: xSet = 1191; ySet = 1516; mSet = Map.Malas; break; case 4: xSet = 1944; ySet = 3377; mSet = Map.Trammel; break; case 5: xSet = 1544; ySet = 1785; mSet = Map.Malas; break; case 6: xSet = 2059; ySet = 2406; mSet = Map.Trammel; break; case 7: xSet = 1558; ySet = 2861; mSet = Map.Felucca; break; case 8: xSet = 755; ySet = 1093; mSet = Map.Tokuno; break; case 9: xSet = 2181; ySet = 1327; mSet = Map.Trammel; break; case 10: xSet = 752; ySet = 680; mSet = Map.TerMur; break; case 11: xSet = 466; ySet = 3801; mSet = Map.Felucca; break; case 12: xSet = 2893; ySet = 2030; mSet = Map.Felucca; break; case 13: xSet = 1050; ySet = 93; mSet = Map.TerMur; break; case 14: xSet = 127; ySet = 85; mSet = Map.Tokuno; break; case 15: xSet = 145; ySet = 1434; mSet = Map.Malas; break; case 16: xSet = 2625; ySet = 823; mSet = Map.Felucca; break; case 17: xSet = 740; ySet = 182; mSet = Map.Tokuno; break; case 18: xSet = 5390; ySet = 3280; mSet = Map.Trammel; break; case 19: xSet = 922; ySet = 1775; vMap = "the Hedge Maze"; mSet = Map.TerMur; break; case 20: xSet = 1036; ySet = 1162; mSet = Map.TerMur; break; } } else // FALSE LOCATION { ScrollTrue = 0; switch (Utility.Random(2)) { case 0: vHome = "a dungeon"; break; case 1: vHome = "a castle in the sky"; break; } string world = "the Land of Sosaria"; switch (Utility.Random(7)) { case 0: world = "the Land of Sosaria"; break; case 1: world = "the Land of Lodoria"; break; case 2: world = "the Serpent Island"; break; case 3: world = "the Isles of Dread"; break; case 4: world = "the Savaged Empire"; break; case 5: world = "the Land of Ambrosia"; break; case 6: world = "the Island of Umber Veil"; break; } Point3D loc = Worlds.GetRandomLocation(world, "land"); xSet = loc.X; ySet = loc.Y; mSet = Worlds.GetMyDefaultMap(world); } Point3D location = new Point3D(xSet, ySet, 0); if (vMap == "") { vMap = Worlds.GetMyWorld(mSet, location, xSet, ySet); } int xLong = 0, yLat = 0; int xMins = 0, yMins = 0; bool xEast = false, ySouth = false; Point3D spot = new Point3D(xSet, ySet, 0); string my_location = location.ToString(); if (Sextant.Format(spot, mSet, ref xLong, ref yLat, ref xMins, ref yMins, ref xEast, ref ySouth)) { my_location = String.Format("{0}° {1}'{2}, {3}° {4}'{5}", yLat, yMins, ySouth ? "S" : "N", xLong, xMins, xEast ? "E" : "W"); } string sBuilding = "tower"; switch (Utility.RandomMinMax(0, 6)) { case 0: sBuilding = "tower"; break; case 1: sBuilding = "house"; break; case 2: sBuilding = "keep"; break; case 3: sBuilding = "castle"; break; case 4: sBuilding = "cabin"; break; case 5: sBuilding = "mansion"; break; case 6: sBuilding = "tent"; break; } ScrollText = QuestCharacters.ParchmentWriter() + ",<br><br>During my last journey, I found something quite remarkable. I stumbled upon " + vHome + " that appeared to be abandoned. I believe it was " + vHome + " that once belonged to " + QuestCharacters.QuestGiver() + ". Our " + sBuilding + " by " + RandomThings.GetRandomCity() + " is getting too small for the hoards of gold we have been getting from searching " + QuestCharacters.SomePlace("parchment") + ", so it is probably time we move. I am guessing we almost have enough gold to hire the help needed to get the place ready to live, so I would like you to meet me in " + RandomThings.GetRandomCity() + " where we can maybe seek out workers to help us with this endeavor. If you can make the journey, you should see it for yourself. If you still have that sextant, you can find it in " + vMap + " at...<br><br>" + my_location + "<br><br> - " + QuestCharacters.QuestGiver() + ""; } } }