Server.Mobiles.BaseCreature.OnMovement C# (CSharp) Méthode

OnMovement() public méthode

public OnMovement ( Mobile m, Point3D oldLocation ) : void
m Mobile
oldLocation Point3D
Résultat void
        public override void OnMovement( Mobile m, Point3D oldLocation )
        {
            base.OnMovement( m, oldLocation );

            if ( ReacquireOnMovement || m_Paragon )
                ForceReacquire();

            InhumanSpeech speechType = this.SpeechType;

            if ( speechType != null )
                speechType.OnMovement( this, m, oldLocation );

            /* Begin notice sound */
            if ( (!m.Hidden || m.AccessLevel == AccessLevel.Player) && m.Player && m_FightMode != FightMode.Aggressor && m_FightMode != FightMode.None && Combatant == null && !Controlled && !Summoned )
            {
                // If this creature defends itself but doesn't actively attack (animal) or
                // doesn't fight at all (vendor) then no notice sounds are played..
                // So, players are only notified of aggressive monsters

                // Monsters that are currently fighting are ignored

                // Controlled or summoned creatures are ignored

                if ( InRange( m.Location, 18 ) && !InRange( oldLocation, 18 ) )
                {
                    if ( Body.IsMonster )
                        Animate( 11, 5, 1, true, false, 1 );

                    PlaySound( GetAngerSound() );
                }
            }
            /* End notice sound */

            if ( m_NoDupeGuards == m )
                return;

            if ( !Body.IsHuman || Kills >= 5 || AlwaysMurderer || AlwaysAttackable || m.Kills < 5 || !m.InRange( Location, 12 ) || !m.Alive )
                return;

            GuardedRegion guardedRegion = (GuardedRegion) this.Region.GetRegion( typeof( GuardedRegion ) );

            if ( guardedRegion != null )
            {
                if ( !guardedRegion.IsDisabled() && guardedRegion.IsGuardCandidate( m ) && BeginAction( typeof( GuardedRegion ) ) )
                {
                    Say( 1013037 + Utility.Random( 16 ) );
                    guardedRegion.CallGuards( this.Location );

                    Timer.DelayCall( TimeSpan.FromSeconds( 5.0 ), new TimerCallback( ReleaseGuardLock ) );

                    m_NoDupeGuards = m;
                    Timer.DelayCall( TimeSpan.Zero, new TimerCallback( ReleaseGuardDupeLock ) );
                }
            }
        }
BaseCreature