예제 #1
0
        ///////////////////////////////////////////////////////////////////////////

        public override bool OnDragDrop(Mobile from, Item o)
        {
            if (o is Key && ((Key)o).KeyValue != 0 && ((Key)o).Link is BaseBoat)
            {
                BaseBoat  boat = ((Key)o).Link as BaseBoat;
                Container pack = from.Backpack;

                if (!boat.Deleted && boat.CheckKey(((Key)o).KeyValue))
                {
                    if (pack.ConsumeTotal(typeof(Gold), 1000))
                    {
                        ReturnToBoat(boat.GetMarkedLocation(), boat.Map, from);
                        from.SendMessage(String.Format("You pay 1,000 gold."));
                    }
                    else
                    {
                        this.SayTo(from, "It would cost you 1,000 gold to be returned to your ship.");
                        from.SendMessage("You do not have enough gold.");
                    }
                }
                else
                {
                    this.SayTo(from, "There is nothing I can do with that.");
                }
            }

            return(base.OnDragDrop(from, o));
        }
예제 #2
0
            protected override void OnTarget(Mobile from, object o)
            {
                if (o is RecallRune)
                {
                    RecallRune rune = (RecallRune)o;

                    if (rune.Marked)
                    {
                        m_Owner.Effect(rune.Target, rune.TargetMap, true);
                    }
                }
                else if (o is Runebook)
                {
                    RunebookEntry e = ((Runebook)o).Default;

                    if (e != null)
                    {
                        m_Owner.Effect(e.Location, e.Map, true);
                    }
                }
                else if (o is Key && ((Key)o).KeyValue != 0 && ((Key)o).Link is BaseBoat)
                {
                    BaseBoat boat = ((Key)o).Link as BaseBoat;

                    if (!boat.Deleted && boat.CheckKey(((Key)o).KeyValue))
                    {
                        m_Owner.Effect(boat.GetMarkedLocation(), boat.Map, false);
                    }
                }
                else
                {
                }
            }
예제 #3
0
			protected override void OnTarget( Mobile from, object o )
			{
				if ( o is RecallRune )
				{
					RecallRune rune = (RecallRune)o;

					if ( rune.Marked )
						m_Owner.Effect( rune.Target, rune.TargetMap, true );
					else
						from.SendLocalizedMessage( 501805 ); // That rune is not yet marked.
				}
				else if ( o is Runebook )
				{
					RunebookEntry e = ((Runebook)o).Default;

					if ( e != null )
						m_Owner.Effect( e.Location, e.Map, true );
					else
						from.SendLocalizedMessage( 502354 ); // Target is not marked.
				}
				else if ( o is Key && ((Key)o).KeyValue != 0 && ((Key)o).Link is BaseBoat )
				{
					BaseBoat boat = ((Key)o).Link as BaseBoat;

					if ( !boat.Deleted && boat.CheckKey( ((Key)o).KeyValue ) )
						m_Owner.Effect( boat.GetMarkedLocation(), boat.Map, false );
					else
						from.Send( new MessageLocalized( from.Serial, from.Body, MessageType.Regular, 0x3B2, 3, 502357, from.Name, "" ) ); // I can not recall from that object.
				}
				else
				{
					from.Send( new MessageLocalized( from.Serial, from.Body, MessageType.Regular, 0x3B2, 3, 502357, from.Name, "" ) ); // I can not recall from that object.
				}
			}
예제 #4
0
파일: Recall.cs 프로젝트: nogu3ira/xrunuo
            protected override void OnTarget(Mobile from, object o)
            {
                if (o is RecallRune)
                {
                    RecallRune rune = (RecallRune)o;

                    if (o is DarkKnightRune && !from.Client.Version.IsEnhanced)
                    {
                        from.SendLocalizedMessage(1079261);                           // This area requires the 'Kingdom Reborn' client. Please visit www.uo.com for more information.
                        return;
                    }

                    // TODO (ML)
                    if (o is DarkKnightRune)
                    {
                        return;
                    }

                    if (rune.Marked)
                    {
                        m_Owner.Effect(rune.Target, rune.TargetMap, true);
                    }
                    else
                    {
                        from.SendLocalizedMessage(501805);                           // That rune is not yet marked.
                    }
                }
                else if (o is Runebook)
                {
                    RunebookEntry e = ((Runebook)o).Default;

                    if (e != null)
                    {
                        m_Owner.Effect(e.Location, e.Map, true);
                    }
                    else
                    {
                        from.SendLocalizedMessage(502354);                           // Target is not marked.
                    }
                }
                else if (o is Key && ((Key)o).KeyValue != 0 && ((Key)o).Link is BaseBoat)
                {
                    BaseBoat boat = ((Key)o).Link as BaseBoat;

                    if (!boat.Deleted && boat.CheckKey(((Key)o).KeyValue))
                    {
                        m_Owner.Effect(boat.GetMarkedLocation(), boat.Map, false);
                    }
                    else
                    {
                        from.Send(new MessageLocalized(from.Serial, from.Body, MessageType.Regular, 0x3B2, 3, 502357, from.Name, ""));                             // I can not recall from that object.
                    }
                }
                else
                {
                    from.Send(new MessageLocalized(from.Serial, from.Body, MessageType.Regular, 0x3B2, 3, 502357, from.Name, ""));                         // I can not recall from that object.
                }
            }
예제 #5
0
            protected override void OnTarget(Mobile from, object o)
            {
                if (o is RecallRune)
                {
                    RecallRune rune = (RecallRune)o;

                    if (rune.Marked)
                    {
                        m_Owner.Effect(rune.Target, rune.TargetMap, true);
                    }
                    else
                    {
                        from.SendLocalizedMessage(501805); // That rune is not yet marked.
                    }
                }
                else if (o is Runebook)
                {
                    RunebookEntry e = ((Runebook)o).Default;

                    if (e != null)
                    {
                        m_Owner.Effect(e.Location, e.Map, true);
                    }
                    else
                    {
                        from.SendLocalizedMessage(502354); // Target is not marked.
                    }
                }
                else if (o is Key && ((Key)o).KeyValue != 0 && ((Key)o).Link is BaseBoat)
                {
                    BaseBoat boat = ((Key)o).Link as BaseBoat;

                    if (!boat.Deleted && boat.CheckKey(((Key)o).KeyValue))
                    {
                        m_Owner.Effect(boat.GetMarkedLocation(), boat.Map, false);
                    }
                    else
                    {
                        from.LocalOverheadMessage(MessageType.Regular, 906, 502357); // I can not recall from that object.
                    }
                }
                else if (o is HouseRaffleDeed && ((HouseRaffleDeed)o).ValidLocation())
                {
                    HouseRaffleDeed deed = (HouseRaffleDeed)o;

                    m_Owner.Effect(deed.PlotLocation, deed.PlotFacet, true);
                }
                else
                {
                    from.LocalOverheadMessage(MessageType.Regular, 906, 502357); // I can not recall from that object.
                }
            }
예제 #6
0
            protected override void OnTarget(Mobile from, object o)
            {
                IEntity entity = o as IEntity; if (XmlScript.HasTrigger(entity, TriggerName.onTargeted) && UberScriptTriggers.Trigger(entity, from, TriggerName.onTargeted, null, null, m_Owner))

                {
                    return;
                }

                if (o is RecallRune)
                {
                    RecallRune rune = (RecallRune)o;

                    if (rune.Marked)
                    {
                        m_Owner.Effect(rune.Target, rune.TargetMap, true);
                    }
                    else
                    {
                        from.SendLocalizedMessage(501805);                           // That rune is not yet marked.
                    }
                }
                else if (o is Runebook)
                {
                    RunebookEntry e = ((Runebook)o).Default;

                    if (e != null)
                    {
                        m_Owner.Effect(e.Location, e.Map, true);
                    }
                    else
                    {
                        from.SendLocalizedMessage(502354);                           // Target is not marked.
                    }
                }
                else if (o is Key && ((Key)o).KeyValue != 0 && ((Key)o).Link is BaseBoat)
                {
                    BaseBoat boat = ((Key)o).Link as BaseBoat;

                    if (!boat.Deleted && boat.CheckKey(((Key)o).KeyValue))
                    {
                        m_Owner.Effect(boat.GetMarkedLocation(), boat.Map, false);
                    }
                    else
                    {
                        from.Send(new MessageLocalized(from.Serial, from.Body, MessageType.Regular, 0x3B2, 3, 502357, from.Name, ""));                             // I can not recall from that object.
                    }
                }
                else
                {
                    from.Send(new MessageLocalized(from.Serial, from.Body, MessageType.Regular, 0x3B2, 3, 502357, from.Name, ""));                         // I can not recall from that object.
                }
            }
예제 #7
0
파일: Recall.cs 프로젝트: jizzyjim/16Below
            protected override void OnTarget(Mobile from, object o)
            {
                if (o is RecallRune)
                {
                    RecallRune rune = (RecallRune)o;

                    if (rune.Marked)
                    {
                        this.m_Owner.Effect(rune.Target, rune.TargetMap, true);
                    }
                    else
                    {
                        from.SendLocalizedMessage(501805); // That rune is not yet marked.
                    }
                }
                else if (o is Key && ((Key)o).KeyValue != 0 && ((Key)o).Link is BaseBoat)
                {
                    BaseBoat boat = ((Key)o).Link as BaseBoat;

                    if (!boat.Deleted && boat.CheckKey(((Key)o).KeyValue))
                    {
                        this.m_Owner.Effect(boat.GetMarkedLocation(), boat.Map, false);
                    }
                    else
                    {
                        from.Send(new MessageLocalized(from.Serial, from.Body, MessageType.Regular, 0x3B2, 3, 502357, from.Name, "")); // I can not recall from that object.
                    }
                }
                else if (o is HouseRaffleDeed && ((HouseRaffleDeed)o).ValidLocation())
                {
                    HouseRaffleDeed deed = (HouseRaffleDeed)o;

                    this.m_Owner.Effect(deed.PlotLocation, deed.PlotFacet, true);
                }
                else
                {
                    from.Send(new MessageLocalized(from.Serial, from.Body, MessageType.Regular, 0x3B2, 3, 502357, from.Name, "")); // I can not recall from that object.
                }
            }
예제 #8
0
        public void Target(object o)
        {
            if (o is RecallRune rune)
            {
                if (rune.Marked)
                {
                    Effect(rune.Target, rune.TargetMap, true);
                }
                else
                {
                    Caster.SendLocalizedMessage(501805);                     // That rune is not yet marked.
                }
            }
            else if (o is Runebook runebook)
            {
                RunebookEntry e = runebook.Default;

                if (e != null)
                {
                    Effect(e.Location, e.Map, true);
                }
                else
                {
                    Caster.SendLocalizedMessage(502354);                     // Target is not marked.
                }
            }
            else if (o is Key key && key.KeyValue != 0 && key.Link is BaseBoat)
            {
                BaseBoat boat = key.Link as BaseBoat;

                if (!boat.Deleted && boat.CheckKey(key.KeyValue))
                {
                    Effect(boat.GetMarkedLocation(), boat.Map, false);
                }
                else
                {
                    Caster.Send(new MessageLocalized(Caster.Serial, Caster.Body, MessageType.Regular, 0x3B2, 3, 502357, Caster.Name, ""));                     // I can not recall from that object.
                }
            }
예제 #9
0
파일: Recall.cs 프로젝트: sircapted/ServUO
            protected override void OnTarget(Mobile from, object o)
            {
                if (o is RecallRune)
                {
                    RecallRune rune = (RecallRune)o;

                    if (rune.Marked)
                    {
                        if (rune.Type == RecallRuneType.Ship)
                        {
                            m_Owner.Effect(rune.Galleon);
                        }
                        else
                        {
                            m_Owner.Effect(rune.Target, rune.TargetMap, true);
                        }
                    }
                    else
                    {
                        from.SendLocalizedMessage(501805); // That rune is not yet marked.
                    }
                }
                else if (o is Runebook)
                {
                    RunebookEntry e = ((Runebook)o).Default;

                    if (e != null)
                    {
                        if (e.Type == RecallRuneType.Ship)
                        {
                            m_Owner.Effect(e.Galleon);
                        }
                        else
                        {
                            m_Owner.Effect(e.Location, e.Map, true);
                        }
                    }
                    else
                    {
                        from.SendLocalizedMessage(502354); // Target is not marked.
                    }
                }
                else if (o is Key && ((Key)o).KeyValue != 0 && ((Key)o).Link is BaseBoat)
                {
                    BaseBoat boat = ((Key)o).Link as BaseBoat;

                    if (!boat.Deleted && boat.CheckKey(((Key)o).KeyValue))
                    {
                        m_Owner.Effect(boat.GetMarkedLocation(), boat.Map, false, true);
                    }
                    else
                    {
                        from.Send(new MessageLocalized(from.Serial, from.Body, MessageType.Regular, 0x3B2, 3, 502357, from.Name, "")); // I can not recall from that object.
                    }
                }
                else if (o is Engines.NewMagincia.WritOfLease)
                {
                    Engines.NewMagincia.WritOfLease lease = (Engines.NewMagincia.WritOfLease)o;

                    if (lease.RecallLoc != Point3D.Zero && lease.Facet != null && lease.Facet != Map.Internal)
                    {
                        m_Owner.Effect(lease.RecallLoc, lease.Facet, false);
                    }
                    else
                    {
                        from.Send(new MessageLocalized(from.Serial, from.Body, MessageType.Regular, 0x3B2, 3, 502357, from.Name, "")); // I can not recall from that object.
                    }
                }

                else
                {
                    from.Send(new MessageLocalized(from.Serial, from.Body, MessageType.Regular, 0x3B2, 3, 502357, from.Name, "")); // I can not recall from that object.
                }
            }
예제 #10
0
        public override void OnCast()  //xuo chro : probably foox up the runebook
        {
            Mobile from = Caster;

            if (Caster.Region is HouseRegion)
            {
                Caster.SendMessage("You cannot cast that spell here.");
                return;
            }

            if (SphereSpellTarget is RecallRune && Caster.InLOS(SphereSpellTarget))
            {
                RecallRune rune = (RecallRune)SphereSpellTarget;

                if (rune.Marked)
                {
                    if (rune.ChargesLeft == 0)
                    {
                        Caster.LocalOverheadMessage(MessageType.Regular, 906, true, "The recall rune's magic has faded");
                        DoFizzle();
                        return;
                    }
                    else if (rune.ChargesLeft <= 10 && rune.ChargesLeft >= 1)
                    {
                        Caster.LocalOverheadMessage(MessageType.Regular, 906, true, "The recall rune is starting to fade");
                    }

                    Effect(rune.Target, rune.TargetMap, true);
                }
                else
                {
                    Caster.SendLocalizedMessage(501805); // That rune is not yet marked.

                    if (from is PlayerMobile)
                    {
                        ((PlayerMobile)from).SpellCheck();
                    }
                }
            }
            else if (SphereSpellTarget is Runebook)
            {
                RunebookEntry e = ((Runebook)SphereSpellTarget).Default;

                if (e != null)
                {
                    Effect(e.Location, e.Map, true);
                }
                else
                {
                    Caster.SendLocalizedMessage(502354); // Target is not marked.
                }
            }
            else if (SphereSpellTarget is Key && ((Key)SphereSpellTarget).KeyValue != 0 && ((Key)SphereSpellTarget).Link is BaseBoat)
            {
                BaseBoat boat = (BaseBoat)((Key)SphereSpellTarget).Link;

                if (!boat.Deleted && boat.CheckKey(((Key)SphereSpellTarget).KeyValue))
                {
                    Effect(boat.GetMarkedLocation(), boat.Map, false);
                }
                else
                {
                    Caster.LocalOverheadMessage(MessageType.Regular, 906, 502357); // I can not recall from that object.
                }
            }
            else if (m_Entry != null)
            {
                /*if (m_Entry.ChargesLeft == 0)
                 * {
                 *  from.LocalOverheadMessage(MessageType.Regular, 906, true, "The recall rune in your runebook has faded");
                 *  DoFizzle();
                 *  return;
                 * }
                 * else if (m_Entry.ChargesLeft <= 10 && m_Entry.ChargesLeft >= 1)
                 *  from.LocalOverheadMessage(MessageType.Regular, 906, true, "The recall rune in your runebook is starting to fade");
                 */
                Effect(m_Entry.Location, m_Entry.Map, true);
            }
            else if (SphereSpellTarget is BaseWand)
            {
                BaseWand bw = SphereSpellTarget as BaseWand;
                bw.RechargeWand(Caster, this);
            }/*
              * else if (SphereSpellTarget is HouseRaffleDeed && ((HouseRaffleDeed)SphereSpellTarget).ValidLocation())
              * {
              * HouseRaffleDeed deed = (HouseRaffleDeed)SphereSpellTarget;
              *
              * m_Owner.Effect(deed.PlotLocation, deed.PlotFacet, true);
              * }*/
            else
            {
                if (!Caster.InLOS(SphereSpellTarget))
                {
                    Caster.LocalOverheadMessage(MessageType.Regular, 0x3B2, 501031); // I cannot see that object.
                }
                else
                {
                    Caster.LocalOverheadMessage(MessageType.Regular, 906, 502357); // I can not recall from that object.
                }
                if (from is PlayerMobile)
                {
                    ((PlayerMobile)from).SpellCheck();
                }
            }
        }
예제 #11
0
            protected override void OnTarget(Mobile from, object o)
            {
                if (o is RecallRune)
                {
                    RecallRune rune = (RecallRune)o;

                    if (rune.Marked)
                    {
                        m_Owner.Effect(rune.Target, rune.TargetMap, true);
                    }
                    else
                    {
                        from.SendLocalizedMessage(501805); // That rune is not yet marked.
                    }
                }
                else if (o is Runebook)
                {
                    RunebookEntry e = ((Runebook)o).Default;

                    if (e != null)
                    {
                        m_Owner.Effect(e.Location, e.Map, true);
                    }
                    else
                    {
                        from.SendLocalizedMessage(502354); // Target is not marked.
                    }
                }
                else if (o is Key && ((Key)o).KeyValue != 0 && ((Key)o).Link is BaseBoat)
                {
                    BaseBoat boat = ((Key)o).Link as BaseBoat;

                    if (!boat.Deleted && boat.CheckKey(((Key)o).KeyValue))
                    {
                        m_Owner.Effect(boat.GetMarkedLocation(), boat.Map, false);
                    }
                    else
                    {
                        from.Send(new MessageLocalized(from.Serial, from.Body, MessageType.Regular, 0x3B2, 3, 502357, from.Name, "")); // I can not recall from that object.
                    }
                }
                else if (o is HouseRaffleDeed && ((HouseRaffleDeed)o).ValidLocation())
                {
                    HouseRaffleDeed deed = (HouseRaffleDeed)o;

                    m_Owner.Effect(deed.PlotLocation, deed.PlotFacet, true);
                }

                #region High Seas
                else if (o is ShipRune && ((ShipRune)o).Galleon != null)
                {
                    BaseGalleon galleon = ((ShipRune)o).Galleon;

                    if (!galleon.Deleted && galleon.Map != null && galleon.HasAccess(from))
                    {
                        m_Owner.Effect(galleon.GetMarkedLocation(), galleon.Map, false, true);
                    }
                    else
                    {
                        from.Send(new MessageLocalized(from.Serial, from.Body, MessageType.Regular, 0x3B2, 3, 502357, from.Name, "")); // I can not recall from that object.
                    }
                }
                #endregion

                #region New Magincia
                else if (o is Server.Engines.NewMagincia.WritOfLease)
                {
                    Server.Engines.NewMagincia.WritOfLease lease = (Server.Engines.NewMagincia.WritOfLease)o;

                    if (lease.RecallLoc != Point3D.Zero && lease.Facet != null && lease.Facet != Map.Internal)
                    {
                        m_Owner.Effect(lease.RecallLoc, lease.Facet, false);
                    }
                    else
                    {
                        from.Send(new MessageLocalized(from.Serial, from.Body, MessageType.Regular, 0x3B2, 3, 502357, from.Name, "")); // I can not recall from that object.
                    }
                }
                #endregion

                else
                {
                    from.Send(new MessageLocalized(from.Serial, from.Body, MessageType.Regular, 0x3B2, 3, 502357, from.Name, "")); // I can not recall from that object.
                }
            }
예제 #12
0
        public override void OnCast()
        {
            RecallSpell m_Owner = this;
            Mobile      from    = Caster;

            if (SphereSpellTarget is RecallRune)
            {
                RecallRune rune = (RecallRune)SphereSpellTarget;

                if (Caster.InLOS(rune) || (from.BankBox != null && rune.IsChildOf(from.BankBox)))
                {
                    if (rune.Marked)
                    {
                        if (rune.ChargesLeft == 0)
                        {
                            from.LocalOverheadMessage(MessageType.Regular, 906, true, "The recall rune's magic has faded");
                            DoFizzle();
                            return;
                        }

                        if (rune.ChargesLeft <= 10 && rune.ChargesLeft >= 1)
                        {
                            from.LocalOverheadMessage(MessageType.Regular, 906, true, "The recall rune is starting to fade");
                        }

                        m_Owner.Effect(rune.Target, rune.TargetMap, true);
                    }
                    else
                    {
                        from.SendLocalizedMessage(501805); // That rune is not yet marked.

                        if (from is PlayerMobile)
                        {
                            ((PlayerMobile)from).SpellCheck();
                        }
                    }
                }
                else
                {
                    Caster.LocalOverheadMessage(MessageType.Regular, 0x3B2, 501031); // I cannot see that object.

                    if (from is PlayerMobile)
                    {
                        ((PlayerMobile)from).SpellCheck();
                    }
                }
            }
            else if (SphereSpellTarget is Runebook)
            {
                RunebookEntry e = ((Runebook)SphereSpellTarget).Default;

                if (e != null)
                {
                    m_Owner.Effect(e.Location, e.Map, true);
                }
                else
                {
                    from.SendLocalizedMessage(502354); // Target is not marked.
                }
            }
            else if (SphereSpellTarget is Key && ((Key)SphereSpellTarget).KeyValue != 0 &&
                     ((Key)SphereSpellTarget).Link is BaseBoat)
            {
                BaseBoat boat = ((Key)SphereSpellTarget).Link as BaseBoat;

                if (!boat.Deleted && boat.CheckKey(((Key)SphereSpellTarget).KeyValue))
                {
                    m_Owner.Effect(boat.GetMarkedLocation(), boat.Map, false);
                    boat.Refresh();
                }
                else
                {
                    from.LocalOverheadMessage(MessageType.Regular, 906, 502357); // I can not recall from that object.
                }
            }
            else if (m_Entry != null)
            {
                /*if (m_Entry.ChargesLeft == 0)
                 * {
                 *  from.LocalOverheadMessage(MessageType.Regular, 906, true, "The runebook's recall rune's magic has faded");
                 *  DoFizzle();
                 *  return;
                 * }
                 * else if (m_Entry.ChargesLeft <= 10 && m_Entry.ChargesLeft >= 1)
                 *  from.LocalOverheadMessage(MessageType.Regular, 906, true, "The recall rune in your runebook is starting to fade");
                 */
                m_Owner.Effect(m_Entry.Location, m_Entry.Map, true);
            }
            else
            {
                from.LocalOverheadMessage(MessageType.Regular, 906, 502357); // I can not recall from that object.

                // if (from is PlayerMobile)
                //     ((PlayerMobile)from).SpellCheck();
            }
        }
예제 #13
0
            protected override void OnTarget(Mobile from, object o)
            {
                if (o is RecallRune)
                {
                    RecallRune rune = (RecallRune)o;

                    if (rune.Marked)
                    {
                        m_Owner.Effect(rune.Target, rune.TargetMap, true);
                    }
                    else
                    {
                        from.SendLocalizedMessage(501805); // That rune is not yet marked.
                    }
                }
                else if (o is Runebook)
                {
                    RunebookEntry e = ((Runebook)o).Default;

                    if (e != null)
                    {
                        m_Owner.Effect(e.Location, e.Map, true);
                    }
                    else
                    {
                        from.SendLocalizedMessage(502354); // Target is not marked.
                    }
                }
                else if (o is Key && ((Key)o).KeyValue != 0 && ((Key)o).Link is BaseBoat)
                {
                    BaseBoat boat = ((Key)o).Link as BaseBoat;

                    if (!boat.Deleted && boat.CheckKey(((Key)o).KeyValue))
                    {
                        m_Owner.Effect(boat.GetMarkedLocation(), boat.Map, false);
                    }
                    else
                    {
                        from.Send(new MessageLocalized(from.Serial, from.Body, MessageType.Regular, 0x3B2, 3, 502357, from.Name, "")); // I can not recall from that object.
                    }
                }
                else if (o is SoulSliver)
                {
                    SoulSliver soul = (SoulSliver)o;

                    if (soul.Marked)
                    {
                        TeiravonMobile summoned = soul.Target as TeiravonMobile;

                        if (summoned.Map != Map.Internal && summoned != null)
                        {
                            m_Owner.Summon(soul);
                        }
                        else
                        {
                            from.SendMessage("The soul lies dormant and does not answer your summons.");
                        }
                    }
                    else
                    {
                        from.SendMessage("This sliver has not been attuned.");
                    }
                }
                else
                {
                    from.Send(new MessageLocalized(from.Serial, from.Body, MessageType.Regular, 0x3B2, 3, 502357, from.Name, "")); // I can not recall from that object.
                }
            }