コード例 #1
0
        public override bool OnMoveOver(Mobile m)
        {
            if (m is PlayerMobile)
            {
                if (m.Backpack.FindItemByType(typeof(ObeliskTip)) != null)
                {
                    Item triangle = m.Backpack.FindItemByType(typeof(ObeliskTip));

                    if (triangle is ObeliskTip)
                    {
                        ObeliskTip tip   = (ObeliskTip)triangle;
                        int        quest = tip.WonAir + tip.WonFire + tip.WonEarth + tip.WonWater;

                        if (tip.ObeliskOwner == m && quest > 3)
                        {
                            triangle.Delete();

                            ArrayList targets = new ArrayList();
                            foreach (Item item in World.Items.Values)
                            {
                                if (item is ObeliskTip)
                                {
                                    if (((ObeliskTip)item).ObeliskOwner == m)
                                    {
                                        targets.Add(item);
                                    }
                                }
                            }
                            for (int i = 0; i < targets.Count; ++i)
                            {
                                Item item = ( Item )targets[i];
                                item.Delete();
                            }

                            TitanRiches(m);

                            m.Skills.Cap = m.Skills.Cap + 500;
                            m.StatCap    = 300;

                            Server.Items.QuestSouvenir.GiveReward(m, "Obelisk Tip", 0, 0x185F);
                            Server.Items.QuestSouvenir.GiveReward(m, "Breath of Air", 0, 0x1860);
                            Server.Items.QuestSouvenir.GiveReward(m, "Tongue of Flame", 0, 0x1861);
                            Server.Items.QuestSouvenir.GiveReward(m, "Heart of Earth", 0, 0x1862);
                            Server.Items.QuestSouvenir.GiveReward(m, "Tear of the Seas", 0, 0x1863);

                            m.AddToBackpack(new ObsidianGate());
                            m.SendMessage("Some items have appeared in your pack.");
                            m.SendMessage("You can change your title for this achievement.");
                            m.LocalOverheadMessage(MessageType.Emote, 1150, true, "You are now a Titan of Ether!");
                            LoggingFunctions.LogGeneric(m, "has become a Titan of Ether.");
                        }
                    }
                }
            }

            return(true);
        }
コード例 #2
0
        public void SetupObelisk(Mobile from)
        {
            ObeliskTip tip = new ObeliskTip();

            tip.ObeliskOwner = from;

            tip.HasAir   = 0;
            tip.WonAir   = 0;
            tip.HasFire  = 0;
            tip.WonFire  = 0;
            tip.HasEarth = 0;
            tip.WonEarth = 0;
            tip.HasWater = 0;
            tip.WonWater = 0;

            from.AddToBackpack(tip);
        }
コード例 #3
0
        public override void OnComponentUsed(AddonComponent ac, Mobile from)
        {
            if (!from.InRange(GetWorldLocation(), 2))
            {
                from.SendMessage("You will have to get closer to take that.");
            }
            else if (from.Backpack.FindItemByType(typeof(ObeliskTip)) != null)
            {
                Item       tips     = from.Backpack.FindItemByType(typeof(ObeliskTip));
                ObeliskTip tip      = (ObeliskTip)tips;
                bool       clearPed = false;

                if (tip.ObeliskOwner == from)
                {
                    string paganType = "";

                    if (ItemType == 1)
                    {
                        paganType = "Breath of Air";
                        if (tip.HasAir > 0)
                        {
                            from.SendMessage("You already have the " + paganType + ".");
                        }
                        else
                        {
                            tip.HasAir = 1;
                            from.LocalOverheadMessage(MessageType.Emote, 1150, true, "You found the " + paganType + "!");
                            LoggingFunctions.LogGeneric(from, "has found the " + paganType + ".");
                            clearPed = true;
                        }
                    }
                    else if (ItemType == 2)
                    {
                        paganType = "Tongue of Flame";
                        if (tip.HasFire > 0)
                        {
                            from.SendMessage("You already have the " + paganType + ".");
                        }
                        else
                        {
                            tip.HasFire = 1;
                            from.LocalOverheadMessage(MessageType.Emote, 1150, true, "You found the " + paganType + "!");
                            LoggingFunctions.LogGeneric(from, "has found the " + paganType + ".");
                            clearPed = true;
                        }
                    }
                    else if (ItemType == 3)
                    {
                        paganType = "Heart of Earth";
                        if (tip.HasEarth > 0)
                        {
                            from.SendMessage("You already have the " + paganType + ".");
                        }
                        else
                        {
                            tip.HasEarth = 1;
                            from.LocalOverheadMessage(MessageType.Emote, 1150, true, "You found the " + paganType + "!");
                            LoggingFunctions.LogGeneric(from, "has found the " + paganType + ".");
                            clearPed = true;
                        }
                    }
                    else
                    {
                        paganType = "Tear of the Seas";
                        if (tip.HasWater > 0)
                        {
                            from.SendMessage("You already have the " + paganType + ".");
                        }
                        else
                        {
                            tip.HasWater = 1;
                            from.LocalOverheadMessage(MessageType.Emote, 1150, true, "You found the " + paganType + "!");
                            LoggingFunctions.LogGeneric(from, "has found the " + paganType + ".");
                            clearPed = true;
                        }
                    }

                    if (clearPed)
                    {
                        PaganBaseEmpty Pedul = new PaganBaseEmpty();
                        Pedul.ItemType = ItemType;
                        Pedul.MoveToWorld(new Point3D(this.X, this.Y, this.Z), this.Map);
                        from.SendSound(0x3D);
                        this.Delete();
                    }
                }
                else
                {
                    from.SendMessage("This piece of blackrock does not belong to you so it vanishes!");
                    bool remove = true;
                    foreach (Account a in Accounts.GetAccounts())
                    {
                        if (a == null)
                        {
                            break;
                        }

                        int index = 0;

                        for (int i = 0; i < a.Length; ++i)
                        {
                            Mobile m = a[i];

                            if (m == null)
                            {
                                continue;
                            }

                            if (m == tip.ObeliskOwner)
                            {
                                m.AddToBackpack(this);
                                remove = false;
                            }

                            ++index;
                        }
                    }
                    if (remove)
                    {
                        this.Delete();
                    }
                }
            }
            else
            {
                from.SendMessage("You need a similar piece of blackrock to move this stone!");
            }
        }
コード例 #4
0
            public ObeliskGump(ObeliskTip tip) : base(25, 25)
            {
                m_Tip = tip;

                this.Closable   = true;
                this.Disposable = true;
                this.Dragable   = true;
                this.Resizable  = false;

                AddPage(0);
                AddImage(0, 0, 151);
                AddImage(300, 0, 151);
                AddImage(0, 300, 151);
                AddImage(300, 300, 151);
                AddImage(2, 2, 129);
                AddImage(298, 2, 129);
                AddImage(2, 298, 129);
                AddImage(298, 298, 129);
                AddImage(7, 7, 133);
                AddImage(180, 11, 165);
                AddImage(26, 365, 128);
                AddImage(173, 45, 132);
                AddImage(600, 0, 151);
                AddImage(600, 300, 151);
                AddImage(598, 2, 129);
                AddImage(598, 298, 129);
                AddImage(427, 536, 130);
                AddImage(479, 536, 130);
                AddImage(467, 45, 132);
                AddImage(754, 531, 143);
                AddImage(681, 6, 134);
                AddItem(782, 447, 6248);
                AddItem(100, 100 - 5, 13042);
                AddItem(100, 175 - 10, 13042);
                AddItem(100, 250 - 15, 13042);
                AddItem(100, 325 - 20, 13042);
                AddItem(100, 400 - 25, 13042);
                AddHtml(180, 68, 200, 20, @"<BODY><BASEFONT Color=White><BIG>THE TITAN OF ETHER</BIG></BASEFONT></BODY>", (bool)false, (bool)false);
                AddHtml(360, 105, 523, 336, @"<BODY><BASEFONT Color=#FCFF00><BIG>There are those that seek to become the Titan of Ether, but in order to do so, one must defeat the four Titans of the Underworld. Lithos, Pyros, Hydros, and Stratos all contain an elemental power that can be infused within blackrock and empower another. These Titans cannot simply be slain by normal means, as their opponent must possess a particular piece of blackrock in order to best them. These blackrock fragments are scattered throughout the lands and you will have to search far and wide to find them. If you undertake this great quest, be sure to carry the Obelisk Tip with you at all times. If you have the appropriate piece of blackrock, you can decide to face the Titan. If the Titan is slain, the blackrock will absorb their power. Once all of the Titans' power has been absorbed in the four pieces of blackrock, bring the Obelisk Tip to the Obsidian Fortress and approach the Blackrock Gate to become the Titan of Ether. Titans of Ether can become grandmasters in five additional skills, and their abilities can total 300 instead of 250.</BIG></BASEFONT></BODY>", (bool)false, (bool)false);

                int rocks = tip.HasAir + tip.HasFire + tip.HasEarth + tip.HasWater + 1;
                int titan = tip.WonAir + tip.WonFire + tip.WonEarth + tip.WonWater;

                string stones = "1 of the Pieces of Blackrock Found!";
                string titans = "No Titans Have Been Defeated Yet!";

                if (rocks > 4)
                {
                    stones = "All of the Pieces of Blackrock Found!";
                }
                else if (rocks > 1)
                {
                    stones = rocks + " Pieces of Blackrock Found!";
                }

                if (titan > 3)
                {
                    titans = "All of the Titans Have Been Defeated!";
                }
                else if (titan == 1)
                {
                    titans = "1 Titan Has Been Defeated!";
                }
                else if (titan > 1)
                {
                    titans = titan + " Titans Have Been Defeated!";
                }

                AddHtml(454, 463, 280, 20, @"<BODY><BASEFONT Color=#FCFF00><BIG>" + stones + "</BIG></BASEFONT></BODY>", (bool)false, (bool)false);
                AddHtml(454, 502, 280, 20, @"<BODY><BASEFONT Color=#FFA200><BIG>" + titans + "</BIG></BASEFONT></BODY>", (bool)false, (bool)false);

                AddHtml(160, 107 - 5, 150, 20, @"<BODY><BASEFONT Color=#FCFF00><BIG>Obelisk Tip</BIG></BASEFONT></BODY>", (bool)false, (bool)false);
                AddHtml(160, 130 - 5, 150, 20, @"<BODY><BASEFONT Color=#FFA200><BIG>Khumash-Gor</BIG></BASEFONT></BODY>", (bool)false, (bool)false);
                AddItem(106, 100 - 5, 6239);
                AddItem(285, 114 - 5, 11402);

                AddHtml(160, 182 - 10, 150, 20, @"<BODY><BASEFONT Color=#FCFF00><BIG>Breath of Air</BIG></BASEFONT></BODY>", (bool)false, (bool)false);
                AddHtml(160, 205 - 10, 150, 20, @"<BODY><BASEFONT Color=#FFA200><BIG>Stratos</BIG></BASEFONT></BODY>", (bool)false, (bool)false);
                if (tip.HasAir > 0)
                {
                    AddItem(106, 180 - 10, 6240);
                }
                if (tip.WonAir > 0)
                {
                    AddItem(285, 188 - 10, 11402);
                }

                AddHtml(160, 257 - 15, 150, 20, @"<BODY><BASEFONT Color=#FCFF00><BIG>Tongue of Flame</BIG></BASEFONT></BODY>", (bool)false, (bool)false);
                AddHtml(160, 280 - 15, 150, 20, @"<BODY><BASEFONT Color=#FFA200><BIG>Pyros</BIG></BASEFONT></BODY>", (bool)false, (bool)false);
                if (tip.HasFire > 0)
                {
                    AddItem(105, 253 - 15, 6241);
                }
                if (tip.WonFire > 0)
                {
                    AddItem(285, 264 - 15, 11402);
                }

                AddHtml(160, 332 - 20, 150, 20, @"<BODY><BASEFONT Color=#FCFF00><BIG>Heart of Earth</BIG></BASEFONT></BODY>", (bool)false, (bool)false);
                AddHtml(160, 355 - 20, 150, 20, @"<BODY><BASEFONT Color=#FFA200><BIG>Lithos</BIG></BASEFONT></BODY>", (bool)false, (bool)false);
                if (tip.HasEarth > 0)
                {
                    AddItem(106, 331 - 20, 6242);
                }
                if (tip.WonEarth > 0)
                {
                    AddItem(285, 342 - 20, 11402);
                }

                AddHtml(160, 406 - 25, 150, 20, @"<BODY><BASEFONT Color=#FCFF00><BIG>Tear of the Seas</BIG></BASEFONT></BODY>", (bool)false, (bool)false);
                AddHtml(160, 430 - 25, 150, 20, @"<BODY><BASEFONT Color=#FFA200><BIG>Hydros</BIG></BASEFONT></BODY>", (bool)false, (bool)false);
                if (tip.HasWater > 0)
                {
                    AddItem(106, 401 - 25, 6243);
                }
                if (tip.WonWater > 0)
                {
                    AddItem(285, 415 - 25, 11402);
                }
            }