public override void Start(GameLiving target)
        {
            base.Start(target);
            owner = target;
            GamePlayer player = target as GamePlayer;

            if (player != null)
            {
                foreach (GamePlayer p in player.GetPlayersInRadius(WorldMgr.VISIBILITY_DISTANCE))
                {
                    p.Out.SendSpellEffectAnimation(player, player, Icon, 0, false, 1);
                }
            }

            GameEventMgr.AddHandler(target, GameLivingEvent.AttackedByEnemy, new DOLEventHandler(OnAttack));

            //[StephenxPimentel]
            //1.108 updates this so it no longer stuns, but silences.
            //Rest of the code is now located in SpellHandler. (Line 617)
            owner.StopCurrentSpellcast();


            //owner.IsStunned = true;
            //owner.StopAttack();
            //owner.DisableTurning(true);
            //if (player != null)
            //{
            //	player.Out.SendUpdateMaxSpeed();
            //}
            //else
            //{
            //	owner.CurrentSpeed = owner.MaxSpeed;
            //}
        }
Beispiel #2
0
		public override void Start(GameLiving target)
		{
			base.Start(target);
			owner = target;
			GamePlayer player = target as GamePlayer;
			if (player != null)
			{
				foreach (GamePlayer p in player.GetPlayersInRadius(WorldMgr.VISIBILITY_DISTANCE))
				{
					p.Out.SendSpellEffectAnimation(player, player, Icon, 0, false, 1);
				}
			}

            GameEventMgr.AddHandler(target, GameLivingEvent.AttackedByEnemy, new DOLEventHandler(OnAttack));

            //[StephenxPimentel]
            //1.108 updates this so it no longer stuns, but silences.
            //Rest of the code is now located in SpellHandler. (Line 617)
            owner.StopCurrentSpellcast();


			//owner.IsStunned = true;
			//owner.StopAttack();
			//owner.DisableTurning(true);
			//if (player != null)
			//{
			//	player.Out.SendUpdateMaxSpeed();
			//}
			//else
			//{
			//	owner.CurrentSpeed = owner.MaxSpeed;
			//}
		}
 public override void Start(GameLiving target)
 {
     base.Start(target);
     target.DisarmedTime = target.CurrentRegion.Time + m_duration;
     target.SilencedTime = target.CurrentRegion.Time + m_duration;
     target.StopAttack();
     target.StopCurrentSpellcast();
 }
		public override void Start(GameLiving target)
		{
			base.Start(target);
            target.DisarmedTime = target.CurrentRegion.Time + m_duration;
            target.SilencedTime = target.CurrentRegion.Time + m_duration;
			target.StopAttack();
			target.StopCurrentSpellcast();
		}
        /// <summary>
        /// execute non duration spell effect on target
        /// </summary>
        /// <param name="target"></param>
        /// <param name="effectiveness"></param>
        public override void OnDirectEffect(GameLiving target, double effectiveness)
        {
            base.OnDirectEffect(target, effectiveness);
            if (target == null || !target.IsAlive)
            {
                return;
            }

            if (Caster.EffectList.GetOfType <MasteryofConcentrationEffect>() != null)
            {
                return;
            }

            //have to do it here because OnAttackedByEnemy is not called to not get aggro
            if (target.Realm == 0 || Caster.Realm == 0)
            {
                target.LastAttackedByEnemyTickPvE = target.CurrentRegion.Time;
            }
            else
            {
                target.LastAttackedByEnemyTickPvP = target.CurrentRegion.Time;
            }
            SendEffectAnimation(target, 0, false, 1);

            if (target is GamePlayer)
            {
                ((GamePlayer)target).NextCombatStyle       = null;
                ((GamePlayer)target).NextCombatBackupStyle = null;
            }
            target.StopCurrentSpellcast();             //stop even if MoC or QC

            if (target is GamePlayer)
            {
                MessageToLiving(target, LanguageMgr.GetTranslation((target as GamePlayer).Client, "Amnesia.MessageToTarget"), eChatType.CT_Spell);
            }

            GameSpellEffect effect;

            effect = SpellHandler.FindEffectOnTarget(target, "Mesmerize");
            if (effect != null)
            {
                effect.Cancel(false);
                return;
            }

            if (target is GameNPC)
            {
                GameNPC             npc        = (GameNPC)target;
                IOldAggressiveBrain aggroBrain = npc.Brain as IOldAggressiveBrain;
                if (aggroBrain != null)
                {
                    if (Util.Chance(Spell.AmnesiaChance))
                    {
                        aggroBrain.ClearAggroList();
                    }
                }
            }
        }
 public override void Start(GameLiving target)
 {
     base.Start(target);
     target.IsStunned = true;
     target.StopAttack();
     target.StopCurrentSpellcast();
     target.DisableTurning(true);
     (target as GamePlayer)?.Out.SendUpdateMaxSpeed();
 }
		public override void Start(GameLiving target)
		{
			base.Start(target);
			target.IsStunned = true;
			target.StopAttack();
			target.StopCurrentSpellcast();
			target.DisableTurning(true);
			if (target is GamePlayer)
				(target as GamePlayer).Out.SendUpdateMaxSpeed();
		}
        public override void Start(GameLiving target)
        {
            base.Start(target);
            _owner = target;
            if (target is GamePlayer player)
            {
                foreach (GamePlayer p in player.GetPlayersInRadius(WorldMgr.VISIBILITY_DISTANCE))
                {
                    p.Out.SendSpellEffectAnimation(player, player, Icon, 0, false, 1);
                }
            }

            GameEventMgr.AddHandler(target, GameLivingEvent.AttackedByEnemy, new DOLEventHandler(OnAttack));

            // [StephenxPimentel]
            // 1.108 updates this so it no longer stuns, but silences.
            // Rest of the code is now located in SpellHandler. (Line 617)
            _owner.StopCurrentSpellcast();
        }
		/// <summary>
		/// execute non duration spell effect on target
		/// </summary>
		/// <param name="target"></param>
		/// <param name="effectiveness"></param>
		public override void OnDirectEffect(GameLiving target, double effectiveness)
		{
			base.OnDirectEffect(target, effectiveness);
			if (target == null || !target.IsAlive)
				return;

			if (Caster.EffectList.GetOfType<MasteryofConcentrationEffect>() != null)
				return;

			//have to do it here because OnAttackedByEnemy is not called to not get aggro
			if (target.Realm == 0 || Caster.Realm == 0)
				target.LastAttackedByEnemyTickPvE = target.CurrentRegion.Time;
			else target.LastAttackedByEnemyTickPvP = target.CurrentRegion.Time;
			SendEffectAnimation(target, 0, false, 1);

			if (target is GamePlayer)
			{
				((GamePlayer)target).NextCombatStyle = null;
				((GamePlayer)target).NextCombatBackupStyle = null;
			}
			target.StopCurrentSpellcast(); //stop even if MoC or QC
			MessageToLiving (target, "Your mind goes blank and you forget what you were doing!", eChatType.CT_Spell);

            GameSpellEffect effect;
            effect = SpellHandler.FindEffectOnTarget(target, "Mesmerize");
            if (effect != null)
            {
                effect.Cancel(false);
                return;
            }

			if (target is GameNPC)
			{
				GameNPC npc = (GameNPC)target;
				IOldAggressiveBrain aggroBrain = npc.Brain as IOldAggressiveBrain;
				if (aggroBrain != null)
				{
					if (Util.Chance(Spell.AmnesiaChance))
						aggroBrain.ClearAggroList();
				}
			}
		}
        public override void Start(GameLiving target)
		{
            base.Start(target);
            owner = target;
            foreach (GamePlayer p in target.GetPlayersInRadius(WorldMgr.VISIBILITY_DISTANCE))
            {
                p.Out.SendSpellEffectAnimation(target, target, 7042, 0, false, 1);
            }
            owner.IsStunned = true;
            owner.StopAttack();
            owner.StopCurrentSpellcast();
            owner.DisableTurning(true);
            GamePlayer player = owner as GamePlayer;
            if (player != null)
            {
                player.Out.SendUpdateMaxSpeed();
            }
            else if(owner.CurrentSpeed > owner.MaxSpeed) 
            {
                owner.CurrentSpeed = owner.MaxSpeed;
            }
        }
        public override void Start(GameLiving target)
        {
            base.Start(target);
            _owner = target;
            foreach (GamePlayer p in target.GetPlayersInRadius(WorldMgr.VISIBILITY_DISTANCE))
            {
                p.Out.SendSpellEffectAnimation(target, target, 7042, 0, false, 1);
            }

            _owner.IsStunned = true;
            _owner.StopAttack();
            _owner.StopCurrentSpellcast();
            _owner.DisableTurning(true);
            if (_owner is GamePlayer player)
            {
                player.Out.SendUpdateMaxSpeed();
            }
            else if (_owner.CurrentSpeed > _owner.MaxSpeed)
            {
                _owner.CurrentSpeed = _owner.MaxSpeed;
            }
        }