Hello i lost many of my scripts

someone 2 years ago someone on runuo forums told me how to let players open a pouch while paralyzed

Runuo forums are down but google still show the linkpost:

https://www.google.es/search?q=runu...rome..69i57.1435j0j7&sourceid=chrome&ie=UTF-8

If i recall good that guy told me to add this to Container.cs

Code:
public virtual bool CanOpenWhenParalyzed { get { return false; } }.


Then somewhere

Code:
if (AccessLevel == AccessLevel.Player && ( Paralyzed || Frozen ) && item is Container && ((Container)item).CanOpenWhenParalyzed )

Then recompile the core

im confused because probably im missing some steps, can someone give a hand? thanks!
 
Changing the Core for this seems like overkill. Do you know what script is Preventing people from opening a pouch while Paralyzed?
 
I have no idea... it says ''you cant reach that''

does runuo 2.2 allow open pouch while paralyzed?


just lost 2newcomers because of the paralyze issues ''shitty server mages are op ''
 
Last edited:
OK, you sort of lost me there.

Is the issue that you want Paralyzed players to be able to open ANY container, or just a certain pouch?

Are you using the latest ServUO?

I have searched through the code and am not finding anything that blocks someone from opening a pouch while Paralyzed.
 
That use to work, but I thought it was changed where you can't trap pouches any more, so you can? I was on a server once mining always had a trapped pouch, had a red jump down in front of me, paralyzed me, I hit the pouch and recalled out in front of him :)
They were also great for a thief,when they opened the pouch in your pack they were instant dead.
 
That use to work, but I thought it was changed where you can't trap pouches any more, so you can? I was on a server once mining always had a trapped pouch, had a red jump down in front of me, paralyzed me, I hit the pouch and recalled out in front of him :)

Hehe yes pouchs are a must to have, thats why id like to fix it, players are complaining


Lokai do u see anything weird on my trappcontainer.cs?

I really dont know what handles if a player can open the pouch or not while paralyzed

Code:
using System;
using Server.Network;
using Server.Misc;
namespace Server.Items
{
    public enum TrapType
    {
        None,
        MagicTrap,
        ExplosionTrap,
        DartTrap,
        PoisonTrap
    }
 
    public abstract class TrapableContainer : BaseContainer, ITelekinesisable
    {
        private TrapType m_TrapType;
        private int m_TrapPower;
        private int m_TrapLevel;
        private Mobile m_TrapCreator;
        public virtual bool HueOnMagicTrap { get { return false; } }
        public override bool CanOpenWhenParalyzed { get { return true; } }
        [Hue, CommandProperty( AccessLevel.GameMaster )]
        public override int Hue
        {
            get{ return ( HueOnMagicTrap && m_TrapPower > 0 && m_TrapType == TrapType.MagicTrap ) ? 38 : base.Hue; }
            set{ base.Hue = value; }
        }
        [CommandProperty( AccessLevel.GameMaster )]
        public TrapType TrapType
        {
            get
            {
                return m_TrapType;
            }
            set
            {
                m_TrapType = value;
                ReleaseWorldPackets();
                Delta( ItemDelta.Update );
            }
        }
        [CommandProperty( AccessLevel.GameMaster )]
        public int TrapPower
        {
            get
            {
                return m_TrapPower;
            }
            set
            {
                m_TrapPower = value;
                Delta( ItemDelta.Update );
            }
        }
        [CommandProperty( AccessLevel.GameMaster )]
        public int TrapLevel
        {
            get
            {
                return m_TrapLevel;
            }
            set
            {
                m_TrapLevel = value;
            }
        }
        [CommandProperty( AccessLevel.GameMaster )]
        public Mobile TrapCreator
        {
            get
            {
                return m_TrapCreator;
            }
            set
            {
                m_TrapCreator = value;
            }
        }
        public virtual bool TrapOnOpen{ get{ return true; } }
       
        public TrapableContainer( int itemID ) : base( itemID )
        {
        }
        public TrapableContainer( Serial serial ) : base( serial )
        {
        }
        private void SendMessageTo( Mobile to, int number, int hue )
        {
            if ( Deleted || !to.CanSee( this ) )
                return;
            to.Send( new MessageLocalized( Serial, ItemID, MessageType.Regular, hue, 3, number, "", "" ) );
        }
        private void SendMessageTo( Mobile to, string text, int hue )
        {
            if ( Deleted || !to.CanSee( this ) )
                return;
            to.Send( new UnicodeMessage( Serial, ItemID, MessageType.Regular, hue, 3, to.Language, "", text ) );
        }
        public virtual bool ExecuteTrap( Mobile from )
        {
            if ( m_TrapType != TrapType.None )
            {
                Point3D loc = this.GetWorldLocation();
                Map facet = this.Map;
                if ( from.AccessLevel >= AccessLevel.GameMaster )
                {
                    SendMessageTo( from, "That is trapped, but you open it with your godly powers.", 0x3B2 );
                    return false;
                }
                switch ( m_TrapType )
                {
                    case TrapType.ExplosionTrap:
                    {
                       // SendMessageTo( from, 502999, 0x3B2 ); // You set off a trap!
                       SendMessageTo( from, "Desactivas la trampa!", 0x3B2 ); // You set off a trap!
                        if ( from.InRange( loc, 3 ) )
                        {
                            int damage;
                            if ( m_TrapLevel > 0 )
                                damage = Utility.RandomMinMax( 8, 20 ) * m_TrapLevel;
                            else
                                damage = m_TrapPower;
                            from.Damage(damage);
                            // Your skin blisters from the heat!
                            from.LocalOverheadMessage( Network.MessageType.Regular, 0x2A, 503000 );
                        }
                        Effects.SendLocationEffect( loc, facet, 0x36BD, 15, 10 );
                        Effects.PlaySound( loc, facet, 0x307 );
                        break;
                    }
                    case TrapType.MagicTrap:
                    {
                        if ( from.InRange( loc, 1 ) )
                            from.Damage( m_TrapPower );
                            //AOS.Damage( from, m_TrapPower, 0, 100, 0, 0, 0 );
                        Effects.PlaySound( loc, Map, 0x307 );
                        Effects.SendLocationEffect( new Point3D( loc.X - 1, loc.Y, loc.Z ), Map, 0x36BD, 15 );
                        Effects.SendLocationEffect( new Point3D( loc.X + 1, loc.Y, loc.Z ), Map, 0x36BD, 15 );
                        Effects.SendLocationEffect( new Point3D( loc.X, loc.Y - 1, loc.Z ), Map, 0x36BD, 15 );
                        Effects.SendLocationEffect( new Point3D( loc.X, loc.Y + 1, loc.Z ), Map, 0x36BD, 15 );
                        Effects.SendLocationEffect( new Point3D( loc.X + 1, loc.Y + 1, loc.Z + 11 ), Map, 0x36BD, 15 );
                        //Update item for hue purposes.
                        ReleaseWorldPackets();
                        Delta( ItemDelta.Update );
                        break;
                    }
                    case TrapType.DartTrap:
                    {
                        SendMessageTo( from, 502999, 0x3B2 ); // You set off a trap!
                        if ( from.InRange( loc, 3 ) )
                        {
                            int damage;
                            if ( m_TrapLevel > 0 )
                                damage = Utility.RandomMinMax( 5, 15 ) * m_TrapLevel;
                            else
                                damage = m_TrapPower;
                            from.Damage(damage);
                            // A dart imbeds itself in your flesh!
                            from.LocalOverheadMessage( Network.MessageType.Regular, 0x62, 502998 );
                        }
                        Effects.PlaySound( loc, facet, 0x223 );
                        break;
                    }
                    case TrapType.PoisonTrap:
                    {
                        SendMessageTo( from, 502999, 0x3B2 ); // You set off a trap!
                        if ( from.InRange( loc, 3 ) )
                        {
                            Poison poison;
                            if ( m_TrapLevel > 0 )
                            {
                                poison = Poison.GetPoison( Math.Max( 0, Math.Min( 4, m_TrapLevel - 1 ) ) );
                            }
                            else
                                poison = null;
                            if ( m_TrapPower > 0 )
                            {
                                from.Damage(m_TrapPower);
                                if ( m_TrapLevel == 0 )
                                    poison = Poison.Greater;
                            }
                            from.ApplyPoison( from, poison );
                            // You are enveloped in a noxious green cloud!
                            from.LocalOverheadMessage( Network.MessageType.Regular, 0x44, 503004 );
                        }
                        Effects.SendLocationEffect( loc, facet, 0x113A, 10, 20 );
                        Effects.PlaySound( loc, facet, 0x231 );
                        break;
                    }
                }
                m_TrapType = TrapType.None;
                m_TrapPower = 0;
                m_TrapLevel = 0;
                return true;
            }
            return false;
        }
        public virtual void OnTelekinesis( Mobile from )
        {
            Effects.SendLocationParticles( EffectItem.Create( Location, Map, EffectItem.DefaultDuration ), 0x376A, 9, 32, 5022 );
            Effects.PlaySound( Location, Map, 0x1F5 );
            if( this.TrapOnOpen )
            {
                ExecuteTrap( from );
            }
        }
        public override void Open( Mobile from )
        {
            if ( !this.TrapOnOpen || !ExecuteTrap( from ) )
                base.Open( from );
        }
        public override void OnSingleClick( Mobile from )
        {
            base.OnSingleClick( from );
            if ( ( RootParent == from && ( from == m_TrapCreator || from.AccessLevel >= AccessLevel.GameMaster ) ) && m_TrapType == TrapType.MagicTrap && ( m_TrapPower > 0 || m_TrapLevel > 0 ) )
                LabelTo( from, "(Trampa)", 38 );
        }
        public override void Serialize( GenericWriter writer )
        {
            base.Serialize( writer );
            writer.Write( (int) 3 ); // version
            writer.Write( m_TrapCreator );
            writer.Write( (int) m_TrapLevel );
            writer.Write( (int) m_TrapPower );
            writer.Write( (int) m_TrapType );
        }
        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );
            int version = reader.ReadInt();
            switch ( version )
            {
                case 3:
                {
                    m_TrapCreator = reader.ReadMobile();
                    goto case 2;
                }
                case 2:
                {
                    m_TrapLevel = reader.ReadInt();
                    goto case 1;
                }
                case 1:
                {
                    m_TrapPower = reader.ReadInt();
                    goto case 0;
                }
                case 0:
                {
                    m_TrapType = (TrapType)reader.ReadInt();
                    break;
                }
            }
        }
    }
}
 
Code:
using System;

namespace Server.Items
{
    public enum TrapType
    {
        None,
        MagicTrap,
        ExplosionTrap,
        DartTrap,
        PoisonTrap
    }

    public abstract class TrapableContainer : BaseContainer, ITelekinesisable
    {
        private TrapType m_TrapType;
        private int m_TrapPower;
        private int m_TrapLevel;

        [CommandProperty( AccessLevel.GameMaster )]
        public TrapType TrapType
        {
            get
            {
                return m_TrapType;
            }
            set
            {
                m_TrapType = value;
            }
        }

        [CommandProperty( AccessLevel.GameMaster )]
        public int TrapPower
        {
            get
            {
                return m_TrapPower;
            }
            set
            {
                m_TrapPower = value;
            }
        }

        [CommandProperty( AccessLevel.GameMaster )]
        public int TrapLevel
        {
            get
            {
                return m_TrapLevel;
            }
            set
            {
                m_TrapLevel = value;
            }
        }

        public virtual bool TrapOnOpen{ get{ return true; } }

        public TrapableContainer( int itemID ) : base( itemID )
        {
        }

        public TrapableContainer( Serial serial ) : base( serial )
        {
        }

        private void SendMessageTo( Mobile to, int number, int hue )
        {
            if ( Deleted || !to.CanSee( this ) )
                return;

            to.Send( new Network.MessageLocalized( Serial, ItemID, Network.MessageType.Regular, hue, 3, number, "", "" ) );
        }

        private void SendMessageTo( Mobile to, string text, int hue )
        {
            if ( Deleted || !to.CanSee( this ) )
                return;

            to.Send( new Network.UnicodeMessage( Serial, ItemID, Network.MessageType.Regular, hue, 3, "ENU", "", text ) );
        }

        public virtual bool ExecuteTrap( Mobile from )
        {
            if ( m_TrapType != TrapType.None )
            {
                Point3D loc = this.GetWorldLocation();
                Map facet = this.Map;

                if ( from.AccessLevel >= AccessLevel.GameMaster )
                {
                    SendMessageTo( from, "That is trapped, but you open it with your godly powers.", 0x3B2 );
                    return false;
                }

                switch ( m_TrapType )
                {
                    case TrapType.ExplosionTrap:
                    {
                        SendMessageTo( from, 502999, 0x3B2 ); // You set off a trap!

                        if ( from.InRange( loc, 3 ) )
                        {
                            int damage;

                            if ( m_TrapLevel > 0 )
                                damage = Utility.RandomMinMax( 10, 30 ) * m_TrapLevel;
                            else
                                damage = m_TrapPower;

                            AOS.Damage( from, damage, 0, 100, 0, 0, 0 );

                            // Your skin blisters from the heat!
                            from.LocalOverheadMessage( Network.MessageType.Regular, 0x2A, 503000 );
                        }

                        Effects.SendLocationEffect( loc, facet, 0x36BD, 15, 10 );
                        Effects.PlaySound( loc, facet, 0x307 );

                        break;
                    }
                    case TrapType.MagicTrap:
                    {
                        if ( from.InRange( loc, 1 ) )
                            from.Damage( m_TrapPower );
                            //AOS.Damage( from, m_TrapPower, 0, 100, 0, 0, 0 );

                        Effects.PlaySound( loc, Map, 0x307 );

                        Effects.SendLocationEffect( new Point3D( loc.X - 1, loc.Y, loc.Z ), Map, 0x36BD, 15 );
                        Effects.SendLocationEffect( new Point3D( loc.X + 1, loc.Y, loc.Z ), Map, 0x36BD, 15 );

                        Effects.SendLocationEffect( new Point3D( loc.X, loc.Y - 1, loc.Z ), Map, 0x36BD, 15 );
                        Effects.SendLocationEffect( new Point3D( loc.X, loc.Y + 1, loc.Z ), Map, 0x36BD, 15 );

                        Effects.SendLocationEffect( new Point3D( loc.X + 1, loc.Y + 1, loc.Z + 11 ), Map, 0x36BD, 15 );

                        break;
                    }
                    case TrapType.DartTrap:
                    {
                        SendMessageTo( from, 502999, 0x3B2 ); // You set off a trap!

                        if ( from.InRange( loc, 3 ) )
                        {
                            int damage;

                            if ( m_TrapLevel > 0 )
                                damage = Utility.RandomMinMax( 5, 15 ) * m_TrapLevel;
                            else
                                damage = m_TrapPower;

                            AOS.Damage( from, damage, 100, 0, 0, 0, 0 );

                            // A dart imbeds itself in your flesh!
                            from.LocalOverheadMessage( Network.MessageType.Regular, 0x62, 502998 );
                        }

                        Effects.PlaySound( loc, facet, 0x223 );

                        break;
                    }
                    case TrapType.PoisonTrap:
                    {
                        SendMessageTo( from, 502999, 0x3B2 ); // You set off a trap!

                        if ( from.InRange( loc, 3 ) )
                        {
                            Poison poison;

                            if ( m_TrapLevel > 0 )
                            {
                                poison = Poison.GetPoison( Math.Max( 0, Math.Min( 4, m_TrapLevel - 1 ) ) );
                            }
                            else
                            {
                                AOS.Damage( from, m_TrapPower, 0, 0, 0, 100, 0 );
                                poison = Poison.Greater;
                            }

                            from.ApplyPoison( from, poison );

                            // You are enveloped in a noxious green cloud!
                            from.LocalOverheadMessage( Network.MessageType.Regular, 0x44, 503004 );
                        }

                        Effects.SendLocationEffect( loc, facet, 0x113A, 10, 20 );
                        Effects.PlaySound( loc, facet, 0x231 );

                        break;
                    }
                }

                m_TrapType = TrapType.None;
                m_TrapPower = 0;
                m_TrapLevel = 0;
                return true;
            }

            return false;
        }

        public virtual void OnTelekinesis( Mobile from )
        {
            Effects.SendLocationParticles( EffectItem.Create( Location, Map, EffectItem.DefaultDuration ), 0x376A, 9, 32, 5022 );
            Effects.PlaySound( Location, Map, 0x1F5 );

            if( this.TrapOnOpen )
            {
                ExecuteTrap( from );
            }
        }

        public override void Open( Mobile from )
        {
            if ( !this.TrapOnOpen || !ExecuteTrap( from ) )
                base.Open( from );
        }

        public override void Serialize( GenericWriter writer )
        {
            base.Serialize( writer );

            writer.Write( (int) 2 ); // version

            writer.Write( (int) m_TrapLevel );

            writer.Write( (int) m_TrapPower );
            writer.Write( (int) m_TrapType );
        }

        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );

            int version = reader.ReadInt();

            switch ( version )
            {
                case 2:
                {
                    m_TrapLevel = reader.ReadInt();
                    goto case 1;
                }
                case 1:
                {
                    m_TrapPower = reader.ReadInt();
                    goto case 0;
                }
                case 0:
                {
                    m_TrapType = (TrapType)reader.ReadInt();
                    break;
                }
            }
        }
    }
}
 
Back