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(); }
/// <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; } }