Missing System Message "Your pet looks happier" (regardless of loyalty)
http://www.runuo.com/community/threads/ready-missing-system-message-your-pet-looks-happier.450209/ Not all powerscrolls do drop - Ninjitsu, Bushido etc. http://www.runuo.com/community/threads/ready-not-all-powerscrolls-do-drop.459974/ Savage Kin Paint Wrong Skill Requirement + Wrong Success Chance http://www.runuo.com/community/threads/ready-savage-kin-paint-wrong-skill-requirement-wrong-success-chance.455360/ Hag Quest - Stew, can't eat it http://www.runuo.com/community/threads/ready-hag-quest-stew.454406/ Giant Blue Beetles shouldn't need beating into submission after being tamed once http://www.runuo.com/community/threads/ready-giant-blue-beetles.450205/ Greater Dragon Fame/Karma Doesn't Match OSI http://www.runuo.com/community/threads/ready-greater-dragon-fame-karma-doesnt-match-osi.472206/ Resizing Houses, you can resize a house by using a command under the house sign http://www.runuo.com/community/threads/ready-resizing-houses.414762/ Crafted Shield Resists are wrong on RunUO http://www.runuo.com/community/threads/ready-crafted-shield-resists.454186/ Yomotsu Mines, you should not be able to recall out of there. http://www.runuo.com/community/threads/ready-yomotsu-mines.445486/ Missing Necro Icons in the Buff/Debuff Bar http://www.runuo.com/community/threads/ready-missing-necro-icons-in-the-buff-debuff-bar.450872/ Chivalry Spells, you are allowed to attempt casting of spells outside of your skill range without a system message http://www.runuo.com/community/threads/ready-chivalry-spells.450757/ Tinker tools use a different graphic on OSI http://www.runuo.com/community/threads/ready-tinker-tools.460690/ Tinkering should not be required when crafted a Tetsubo http://www.runuo.com/community/threads/ready-wrong-skill-requirement-carpentry-wrong-success-chances.455342/ Carpentry-Small+Large Beds -Wrong Success Chance http://www.runuo.com/community/threads/ready-carpentry-small-large-beds-wrong-success-chance.455794/ Telekinesis, various changes to behaviour with items http://www.runuo.com/community/threads/ready-telekinesis.455250/ Forensic Evaluation Various issues http://www.runuo.com/community/threads/ready-forensic-evaluation-various-issues-merged.458700/ Animate Dead Corpses, you cannot carve the corpse after it's used http://www.runuo.com/community/threads/ready-animate-dead-corpses.453823/ You should be able to use begging skill while riding http://www.runuo.com/community/threads/ready-begging-while-riding.466174/ Crafting Mod Lower Requirements should only appear on shields http://www.runuo.com/community/threads/ready-crafting-mod-lower-requirements.452112/ You should be revealed While Taking Poison/Strangle Damage http://www.runuo.com/community/threads/ready-you-never-reveal-while-taking-poison-strangle-damage.456946/ Insurance messages don't do the math! http://www.runuo.com/community/threads/ready-insurance-messages-dont-do-the-math.454928/ Slayers should work on area of effect spells http://www.runuo.com/community/threads/ready-slayers-should-work-on-area-of-effect-spells.448774/ You should not be able to use any travel spell in Heartwood http://www.runuo.com/community/threads/ready-heartwood.457379/ Welcome Back To The House Friend message does not show post-AoS http://www.runuo.com/community/threads/ready-welcome-back-to-the-house-friend.415924/ Giant Beetle speed should be very fast when magery spells are cast on it http://www.runuo.com/community/threads/ready-giant-beetle.417848/
This commit is contained in:
parent
07e45156e5
commit
5c7774b99a
54 changed files with 682 additions and 130 deletions
|
|
@ -97,6 +97,12 @@ namespace Server.Spells
|
|||
contexts.Remove( m );
|
||||
}
|
||||
|
||||
public void HarmfulSpell( Mobile m )
|
||||
{
|
||||
if ( m is BaseCreature )
|
||||
((BaseCreature)m).OnHarmfulSpell( m_Caster );
|
||||
}
|
||||
|
||||
public Spell( Mobile caster, Item scroll, SpellInfo info )
|
||||
{
|
||||
m_Caster = caster;
|
||||
|
|
|
|||
|
|
@ -555,18 +555,19 @@ namespace Server.Spells
|
|||
new TravelValidator( IsTokunoDungeon ),
|
||||
new TravelValidator( IsLampRoom ),
|
||||
new TravelValidator( IsGuardianRoom ),
|
||||
new TravelValidator( IsHeartwood ),
|
||||
};
|
||||
|
||||
private static bool[,] m_Rules = new bool[,]
|
||||
{
|
||||
/*T2A(Fel) Ilshenar Wind(Tram), Wind(Fel), Dungeons(Fel), Solen(Tram), Solen(Fel), CrystalCave(Malas), Gauntlet(Malas), Gauntlet(Ferry), Stronghold, ChampionSpawn, Dungeons(Tokuno[Malas]), LampRoom(Doom), GuardianRoom(Doom) */
|
||||
/* Recall From */ { false, true, true, false, false, true, false, false, false, false, true, false, true, false, false },
|
||||
/* Recall To */ { false, false, false, false, false, false, false, false, false, false, false, false, false, false, false },
|
||||
/* Gate From */ { false, false, false, false, false, false, false, false, false, false, false, false, false, false, false },
|
||||
/* Gate To */ { false, false, false, false, false, false, false, false, false, false, false, false, false, false, false },
|
||||
/* Mark In */ { false, false, false, false, false, false, false, false, false, false, false, false, false, false, false },
|
||||
/* Tele From */ { true, true, true, true, true, true, true, false, true, true, false, true, true, true, true },
|
||||
/* Tele To */ { true, true, true, true, true, true, true, false, true, false, false, true, true, true, true },
|
||||
/*T2A(Fel) Ilshenar Wind(Tram), Wind(Fel), Dungeons(Fel), Solen(Tram), Solen(Fel), CrystalCave(Malas), Gauntlet(Malas), Gauntlet(Ferry), Stronghold, ChampionSpawn, Dungeons(Tokuno[Malas]), LampRoom(Doom), GuardianRoom(Doom), Heartwood */
|
||||
/* Recall From */ { false, true, true, false, false, true, false, false, false, false, true, false, true, false, false, false },
|
||||
/* Recall To */ { false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false },
|
||||
/* Gate From */ { false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false },
|
||||
/* Gate To */ { false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false },
|
||||
/* Mark In */ { false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false },
|
||||
/* Tele From */ { true, true, true, true, true, true, true, false, true, true, false, true, true, true, true, false },
|
||||
/* Tele To */ { true, true, true, true, true, true, true, false, true, false, false, true, true, true, true, false },
|
||||
};
|
||||
|
||||
public static bool CheckTravel( Mobile caster, TravelCheckType type )
|
||||
|
|
@ -778,6 +779,13 @@ namespace Server.Spells
|
|||
return ( x >= 356 && y >= 5 && x < 375 && y < 25 );
|
||||
}
|
||||
|
||||
public static bool IsHeartwood( Map map, Point3D loc )
|
||||
{
|
||||
int x = loc.X, y = loc.Y;
|
||||
|
||||
return (map == Map.Trammel || map == Map.Felucca) && (x >= 6911 && y >= 254 && x < 7167 && y < 511);
|
||||
}
|
||||
|
||||
public static bool IsInvalid( Map map, Point3D loc )
|
||||
{
|
||||
if( map == null || map == Map.Internal )
|
||||
|
|
@ -918,7 +926,12 @@ namespace Server.Spells
|
|||
}
|
||||
|
||||
if( target is BaseCreature && from != null && delay == TimeSpan.Zero )
|
||||
((BaseCreature)target).OnDamagedBySpell( from );
|
||||
{
|
||||
BaseCreature c = (BaseCreature) target;
|
||||
|
||||
c.OnHarmfulSpell( from );
|
||||
c.OnDamagedBySpell( from );
|
||||
}
|
||||
}
|
||||
|
||||
public static void Damage( Spell spell, Mobile target, double damage, int phys, int fire, int cold, int pois, int nrgy )
|
||||
|
|
@ -979,7 +992,12 @@ namespace Server.Spells
|
|||
}
|
||||
|
||||
if( target is BaseCreature && from != null && delay == TimeSpan.Zero )
|
||||
((BaseCreature)target).OnDamagedBySpell( from );
|
||||
{
|
||||
BaseCreature c = (BaseCreature) target;
|
||||
|
||||
c.OnHarmfulSpell( from );
|
||||
c.OnDamagedBySpell( from );
|
||||
}
|
||||
}
|
||||
|
||||
public static void DoLeech( int damageGiven, Mobile from, Mobile target )
|
||||
|
|
@ -1097,7 +1115,12 @@ namespace Server.Spells
|
|||
WeightOverloading.DFA = DFAlgorithm.Standard;
|
||||
|
||||
if( m_Target is BaseCreature && m_From != null )
|
||||
((BaseCreature)m_Target).OnDamagedBySpell( m_From );
|
||||
{
|
||||
BaseCreature c = (BaseCreature) m_Target;
|
||||
|
||||
c.OnHarmfulSpell( m_From );
|
||||
c.OnDamagedBySpell( m_From );
|
||||
}
|
||||
|
||||
if( m_Spell != null )
|
||||
m_Spell.RemoveDelayedDamageContext( m_Target );
|
||||
|
|
|
|||
|
|
@ -32,12 +32,7 @@ namespace Server.Spells.Chivalry
|
|||
if ( !base.CheckCast() )
|
||||
return false;
|
||||
|
||||
if ( Caster.Skills[SkillName.Chivalry].Value < RequiredSkill )
|
||||
{
|
||||
Caster.SendLocalizedMessage( 1060172, RequiredSkill.ToString( "F1" ) ); // You must have at least ~1_SKILL_REQUIREMENT~ Chivalry to use this ability,
|
||||
return false;
|
||||
}
|
||||
else if ( Caster.TithingPoints < RequiredTithing )
|
||||
if ( Caster.TithingPoints < RequiredTithing )
|
||||
{
|
||||
Caster.SendLocalizedMessage( 1060173, RequiredTithing.ToString() ); // You must have at least ~1_TITHE_REQUIREMENT~ Tithing Points to use this ability,
|
||||
return false;
|
||||
|
|
@ -60,12 +55,7 @@ namespace Server.Spells.Chivalry
|
|||
|
||||
int mana = ScaleMana( RequiredMana );
|
||||
|
||||
if ( Caster.Skills[SkillName.Chivalry].Value < RequiredSkill )
|
||||
{
|
||||
Caster.SendLocalizedMessage( 1060172, RequiredSkill.ToString( "F1" ) ); // You must have at least ~1_SKILL_REQUIREMENT~ Chivalry to use this ability,
|
||||
return false;
|
||||
}
|
||||
else if ( Caster.TithingPoints < requiredTithing )
|
||||
if ( Caster.TithingPoints < requiredTithing )
|
||||
{
|
||||
Caster.SendLocalizedMessage( 1060173, RequiredTithing.ToString() ); // You must have at least ~1_TITHE_REQUIREMENT~ Tithing Points to use this ability,
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ namespace Server.Spells.Fifth
|
|||
SpellHelper.CheckReflect( (int)this.Circle, ref from, ref target );
|
||||
|
||||
int damage = (int)((Caster.Skills[SkillName.Magery].Value + Caster.Int) / 5);
|
||||
|
||||
|
||||
if ( damage > 60 )
|
||||
damage = 60;
|
||||
|
||||
|
|
@ -104,8 +104,8 @@ namespace Server.Spells.Fifth
|
|||
if ( lowestStat > 150 )
|
||||
lowestStat = 150;
|
||||
|
||||
int damage = (highestStat - lowestStat) / 4;//less damage
|
||||
|
||||
double damage = GetDamageScalar(m)*(highestStat - lowestStat) / 4;//less damage
|
||||
|
||||
if ( damage > 45 )
|
||||
damage = 45;
|
||||
|
||||
|
|
|
|||
|
|
@ -78,9 +78,11 @@ namespace Server.Spells.Fifth
|
|||
}
|
||||
|
||||
m.Paralyze( TimeSpan.FromSeconds( duration ) );
|
||||
|
||||
|
||||
m.PlaySound( 0x204 );
|
||||
m.FixedEffect( 0x376A, 6, 1 );
|
||||
|
||||
HarmfulSpell( m );
|
||||
}
|
||||
|
||||
FinishSequence();
|
||||
|
|
|
|||
|
|
@ -187,6 +187,9 @@ namespace Server.Spells.Fifth
|
|||
if ( m.ApplyPoison( m_Caster, p ) == ApplyPoisonResult.Poisoned )
|
||||
if ( SpellHelper.CanRevealCaster( m ) )
|
||||
m_Caster.RevealingAction();
|
||||
|
||||
if ( m is BaseCreature )
|
||||
( (BaseCreature) m ).OnHarmfulSpell( m_Caster );
|
||||
}
|
||||
|
||||
public override bool OnMoveOver( Mobile m )
|
||||
|
|
|
|||
|
|
@ -51,6 +51,8 @@ namespace Server.Spells.First
|
|||
TimeSpan length = SpellHelper.GetDuration( Caster, m );
|
||||
|
||||
BuffInfo.AddBuff( m, new BuffInfo( BuffIcon.Clumsy, 1075831, length, m, percentage.ToString() ) );
|
||||
|
||||
HarmfulSpell( m );
|
||||
}
|
||||
|
||||
FinishSequence();
|
||||
|
|
|
|||
|
|
@ -51,6 +51,8 @@ namespace Server.Spells.First
|
|||
TimeSpan length = SpellHelper.GetDuration( Caster, m );
|
||||
|
||||
BuffInfo.AddBuff( m, new BuffInfo( BuffIcon.FeebleMind, 1075833, length, m, percentage.ToString() ) );
|
||||
|
||||
HarmfulSpell( m );
|
||||
}
|
||||
|
||||
FinishSequence();
|
||||
|
|
|
|||
|
|
@ -51,6 +51,8 @@ namespace Server.Spells.First
|
|||
TimeSpan length = SpellHelper.GetDuration( Caster, m );
|
||||
|
||||
BuffInfo.AddBuff( m, new BuffInfo( BuffIcon.Weaken, 1075837, length, m, percentage.ToString() ) );
|
||||
|
||||
HarmfulSpell( m );
|
||||
}
|
||||
|
||||
FinishSequence();
|
||||
|
|
|
|||
|
|
@ -81,7 +81,9 @@ namespace Server.Spells.Fourth
|
|||
|
||||
string args = String.Format("{0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}", percentage, percentage, percentage, 10, 10, 10, 10);
|
||||
|
||||
BuffInfo.AddBuff(m, new BuffInfo(BuffIcon.Curse, 1075835, 1075836, length, m, args.ToString()));
|
||||
BuffInfo.AddBuff( m, new BuffInfo( BuffIcon.Curse, 1075835, 1075836, length, m, args.ToString() ) );
|
||||
|
||||
HarmfulSpell( m );
|
||||
}
|
||||
|
||||
FinishSequence();
|
||||
|
|
|
|||
|
|
@ -201,6 +201,9 @@ namespace Server.Spells.Fourth
|
|||
|
||||
AOS.Damage( m, m_Caster, damage, 0, 100, 0, 0, 0 );
|
||||
m.PlaySound( 0x208 );
|
||||
|
||||
if ( m is BaseCreature )
|
||||
((BaseCreature) m).OnHarmfulSpell( m_Caster );
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
@ -278,6 +281,9 @@ namespace Server.Spells.Fourth
|
|||
|
||||
AOS.Damage( m, caster, damage, 0, 100, 0, 0, 0 );
|
||||
m.PlaySound( 0x208 );
|
||||
|
||||
if ( m is BaseCreature )
|
||||
((BaseCreature) m).OnHarmfulSpell( caster );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -98,6 +98,8 @@ namespace Server.Spells.Fourth
|
|||
m.FixedParticles( 0x374A, 10, 15, 5032, EffectLayer.Head );
|
||||
m.PlaySound( 0x1F8 );
|
||||
}
|
||||
|
||||
HarmfulSpell( m );
|
||||
}
|
||||
|
||||
FinishSequence();
|
||||
|
|
|
|||
|
|
@ -380,6 +380,7 @@ namespace Server.Spells.Necromancy
|
|||
corpse.ItemID = Utility.Random( 0xECA, 9 ); // bone graphic
|
||||
corpse.Hue = 0;
|
||||
corpse.ProcessDelta();
|
||||
corpse.Animated = true;
|
||||
|
||||
Register( caster, summoned );
|
||||
}
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@ namespace Server.Spells.Necromancy
|
|||
BuffInfo.AddBuff ( m, new BuffInfo ( BuffIcon.BloodOathCurse, 1075661, duration, m, Caster.Name.ToString () ) );
|
||||
|
||||
m_Table[m] = timer;
|
||||
|
||||
HarmfulSpell( m );
|
||||
}
|
||||
|
||||
FinishSequence();
|
||||
|
|
|
|||
|
|
@ -84,6 +84,8 @@ namespace Server.Spells.Necromancy
|
|||
|
||||
for ( int i = 0; i < mods.Length; ++i )
|
||||
m.AddResistanceMod( mods[i] );
|
||||
|
||||
HarmfulSpell( m );
|
||||
}
|
||||
|
||||
FinishSequence();
|
||||
|
|
|
|||
|
|
@ -68,6 +68,11 @@ namespace Server.Spells.Necromancy
|
|||
TimeSpan duration = TimeSpan.FromSeconds((Caster.Skills[SkillName.SpiritSpeak].Value / 12) + 1.0);
|
||||
|
||||
Timer.DelayCall(duration, new TimerStateCallback(EffectExpire_Callback), m);
|
||||
|
||||
HarmfulSpell( m );
|
||||
|
||||
BuffInfo.AddBuff(m, new BuffInfo(BuffIcon.EvilOmen, 1075647, 1075648, duration, m));
|
||||
|
||||
}
|
||||
|
||||
FinishSequence();
|
||||
|
|
|
|||
|
|
@ -60,6 +60,8 @@ namespace Server.Spells.Necromancy
|
|||
SetMindRotScalar( Caster, m, 1.25, duration );
|
||||
else
|
||||
SetMindRotScalar( Caster, m, 2.00, duration );
|
||||
|
||||
HarmfulSpell( m );
|
||||
}
|
||||
|
||||
FinishSequence();
|
||||
|
|
|
|||
|
|
@ -82,6 +82,7 @@ namespace Server.Spells.Necromancy
|
|||
Misc.WeightOverloading.DFA = Misc.DFAlgorithm.Standard;
|
||||
|
||||
//SpellHelper.Damage( this, m, damage, 100, 0, 0, 0, 0, Misc.DFAlgorithm.PainSpike );
|
||||
HarmfulSpell( m );
|
||||
}
|
||||
|
||||
FinishSequence();
|
||||
|
|
|
|||
|
|
@ -66,8 +66,47 @@ namespace Server.Spells.Necromancy
|
|||
|
||||
m_Table[m] = t;
|
||||
}
|
||||
|
||||
HarmfulSpell( m );
|
||||
}
|
||||
|
||||
//Calculations for the buff bar
|
||||
double spiritlevel = Caster.Skills[SkillName.SpiritSpeak].Value / 10;
|
||||
if (spiritlevel < 4)
|
||||
spiritlevel = 4;
|
||||
int d_MinDamage = 4;
|
||||
int d_MaxDamage = ((int)spiritlevel + 1) * 3;
|
||||
string args = String.Format("{0}\t{1}", d_MinDamage, d_MaxDamage);
|
||||
|
||||
int i_Count = (int)spiritlevel;
|
||||
int i_MaxCount = i_Count;
|
||||
int i_HitDelay = 5;
|
||||
int i_Length = i_HitDelay;
|
||||
|
||||
while (i_Count > 1)
|
||||
{
|
||||
--i_Count;
|
||||
if (i_HitDelay > 1)
|
||||
{
|
||||
if (i_MaxCount < 5)
|
||||
{
|
||||
--i_HitDelay;
|
||||
}
|
||||
else
|
||||
{
|
||||
int delay = (int)(Math.Ceiling((1.0 + (5 * i_Count)) / i_MaxCount));
|
||||
|
||||
if (delay <= 5)
|
||||
i_HitDelay = delay;
|
||||
else
|
||||
i_HitDelay = 5;
|
||||
}
|
||||
}
|
||||
i_Length += i_HitDelay;
|
||||
}
|
||||
TimeSpan t_Duration = TimeSpan.FromSeconds(i_Length);
|
||||
BuffInfo.AddBuff(m, new BuffInfo(BuffIcon.Strangle, 1075794, 1075795, t_Duration, m, args.ToString()));
|
||||
|
||||
FinishSequence();
|
||||
}
|
||||
|
||||
|
|
@ -171,6 +210,9 @@ namespace Server.Spells.Necromancy
|
|||
damage *= 1.75;
|
||||
|
||||
AOS.Damage( m_Target, m_From, (int)damage, 0, 0, 0, 100, 0 );
|
||||
|
||||
if ( 0.60 <= Utility.RandomDouble() ) // OSI: randomly revealed between first and third damage tick, guessing 60% chance
|
||||
m_Target.RevealingAction();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -89,19 +89,19 @@ namespace Server.Spells.Seventh
|
|||
else if ( !Core.AOS )
|
||||
damage /= targets.Count;
|
||||
|
||||
double toDeal;
|
||||
for ( int i = 0; i < targets.Count; ++i )
|
||||
{
|
||||
toDeal = damage;
|
||||
Mobile m = targets[i];
|
||||
|
||||
double toDeal = damage;
|
||||
|
||||
if ( !Core.AOS && CheckResisted( m ) )
|
||||
{
|
||||
toDeal *= 0.5;
|
||||
|
||||
m.SendLocalizedMessage( 501783 ); // You feel yourself resisting magical energy.
|
||||
}
|
||||
|
||||
toDeal *= GetDamageScalar( m );
|
||||
Caster.DoHarmful( m );
|
||||
SpellHelper.Damage( this, m, toDeal, 0, 0, 0, 0, 100 );
|
||||
|
||||
|
|
|
|||
|
|
@ -84,6 +84,8 @@ namespace Server.Spells.Seventh
|
|||
m.FixedParticles( 0x374A, 10, 15, 5054, EffectLayer.Head );
|
||||
m.PlaySound( 0x1F9 );
|
||||
}
|
||||
|
||||
HarmfulSpell( m );
|
||||
}
|
||||
|
||||
FinishSequence();
|
||||
|
|
|
|||
|
|
@ -87,20 +87,21 @@ namespace Server.Spells.Seventh
|
|||
damage = (damage * 2) / targets.Count;
|
||||
else if ( !Core.AOS )
|
||||
damage /= targets.Count;
|
||||
|
||||
|
||||
double toDeal;
|
||||
for ( int i = 0; i < targets.Count; ++i )
|
||||
{
|
||||
Mobile m = targets[i];
|
||||
|
||||
double toDeal = damage;
|
||||
toDeal = damage;
|
||||
|
||||
if ( !Core.AOS && CheckResisted( m ) )
|
||||
{
|
||||
toDeal *= 0.5;
|
||||
damage *= 0.5;
|
||||
|
||||
m.SendLocalizedMessage( 501783 ); // You feel yourself resisting magical energy.
|
||||
}
|
||||
|
||||
toDeal *= GetDamageScalar( m );
|
||||
Caster.DoHarmful( m );
|
||||
SpellHelper.Damage( this, m, toDeal, 0, 100, 0, 0, 0 );
|
||||
|
||||
|
|
|
|||
|
|
@ -75,6 +75,8 @@ namespace Server.Spells.Sixth
|
|||
|
||||
m.FixedParticles( 0x374A, 10, 15, 5028, EffectLayer.Waist );
|
||||
m.PlaySound( 0x1FB );
|
||||
|
||||
HarmfulSpell( m );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -188,6 +188,9 @@ namespace Server.Spells.Sixth
|
|||
|
||||
m.PlaySound( 0x204 );
|
||||
m.FixedEffect( 0x376A, 10, 16 );
|
||||
|
||||
if ( m is BaseCreature )
|
||||
((BaseCreature) m).OnHarmfulSpell( m_Caster );
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
|
|||
|
|
@ -93,6 +93,8 @@ namespace Server.Spells.Third
|
|||
|
||||
m.FixedParticles( 0x374A, 10, 15, 5021, EffectLayer.Waist );
|
||||
m.PlaySound( 0x205 );
|
||||
|
||||
HarmfulSpell( m );
|
||||
}
|
||||
|
||||
FinishSequence();
|
||||
|
|
|
|||
|
|
@ -66,7 +66,6 @@ namespace Server.Spells.Third
|
|||
Effects.SendLocationParticles( EffectItem.Create( item.Location, item.Map, EffectItem.DefaultDuration ), 0x376A, 9, 32, 5022 );
|
||||
Effects.PlaySound( item.Location, item.Map, 0x1F5 );
|
||||
|
||||
item.DisplayTo( Caster );
|
||||
item.OnItemUsed( Caster, item );
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue