Bug fix for :
skillcaps and things that exceed it Possible threading issue Addition of Generic FindItemsByType - List<T> findItemsByType<T>() Change to make polymorph not have a timer and instead a toggle skill KiAttack no longer works with ranged weapons Poison strike speed and damage changed Necro spells now affected by FC Must have atleast 50 weapon skill if no shield equipped to use Evasion Stalking bonus capped at 10 + skill/10 Stalking bonus now Clears Bugfix w/Guilds Crashguard Exception message moved closer to the top of the file. Character creation of Pallys and necros using advanced skills now gives skill items Honor no longer works on Players Pre-ML area HitArea attacks nolonger require LoS Serialization fix for BladeOfTheRighteous RidingSwipe now has paralyzation immunity as with NerveStrike and ParaBlow AnkhEast renamed to AnkhNorth LeggingsOfBane no longer have 510 HP ElvenWashBasinEastAddon Fixed AnsellaGryen won't be renamed each time the server Restarts DiseasedCats are properly named Localization fixes in DefBlacksmithy BearMasks/DearMAsks and things that extend from them now can be repaired
This commit is contained in:
parent
c3eb5cebc6
commit
ce54fe8635
28 changed files with 1495 additions and 1290 deletions
|
|
@ -21,14 +21,28 @@ namespace Server.Spells.Bushido
|
|||
|
||||
public override bool CheckCast()
|
||||
{
|
||||
if ( Caster.FindItemOnLayer( Layer.TwoHanded ) as BaseShield != null )
|
||||
|
||||
if( Caster.FindItemOnLayer( Layer.TwoHanded ) as BaseShield != null )
|
||||
return base.CheckCast();
|
||||
|
||||
if ( Caster.FindItemOnLayer( Layer.OneHanded ) as BaseWeapon != null )
|
||||
return base.CheckCast();
|
||||
//Intentional having a Shield check override all.
|
||||
|
||||
BaseWeapon weap = Caster.FindItemOnLayer( Layer.OneHanded ) as BaseWeapon;
|
||||
|
||||
if( weap == null )
|
||||
weap = Caster.FindItemOnLayer( Layer.TwoHanded ) as BaseWeapon;
|
||||
|
||||
if( weap != null )
|
||||
{
|
||||
if( Core.ML && Caster.Skills[weap.Skill].Value < 50 )
|
||||
{
|
||||
//Does UBW affect this?
|
||||
Caster.SendLocalizedMessage( 1076206 ); // Your skill with your equipped weapon must be 50 or higher to use Evasion.
|
||||
return false;
|
||||
}
|
||||
|
||||
if ( Caster.FindItemOnLayer( Layer.TwoHanded ) as BaseWeapon != null )
|
||||
return base.CheckCast();
|
||||
}
|
||||
|
||||
Caster.SendLocalizedMessage( 1062944 ); // You must have a weapon or a shield equipped to use this ability!
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ namespace Server.Spells.Necromancy
|
|||
|
||||
public override bool ClearHandsOnCast{ get{ return false; } }
|
||||
|
||||
public override int CastDelayFastScalar{ get{ return 0; } } // Necromancer spells are not effected by fast cast items, though they are by fast cast recovery
|
||||
public override int CastDelayFastScalar{ get{ return (Core.SE? base.CastDelayFastScalar : 0); } } // Necromancer spells are not effected by fast cast items, though they are by fast cast recovery
|
||||
|
||||
public NecromancerSpell( Mobile caster, Item scroll, SpellInfo info ) : base( caster, scroll, info )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -10,7 +10,8 @@ namespace Server.Spells.Necromancy
|
|||
{
|
||||
private static SpellInfo m_Info = new SpellInfo(
|
||||
"Poison Strike", "In Vas Nox",
|
||||
SpellCircle.Fourth, // 0.5 + 1.0 = 1.5s base cast delay
|
||||
(Core.ML ? SpellCircle.Fifth : // 0.5 + 1.25 = 1.75s base cast delay
|
||||
SpellCircle.Fourth), // 0.5 + 1.0 = 1.5s base cast delay
|
||||
203,
|
||||
9031,
|
||||
Reagent.NoxCrystal
|
||||
|
|
@ -46,7 +47,7 @@ namespace Server.Spells.Necromancy
|
|||
Effects.SendLocationParticles( EffectItem.Create( m.Location, m.Map, EffectItem.DefaultDuration ), 0x36B0, 1, 14, 63, 7, 9915, 0 );
|
||||
Effects.PlaySound( m.Location, m.Map, 0x229 );
|
||||
|
||||
double damage = Utility.RandomMinMax( 36, 40 ) * ((300 + (GetDamageSkill( Caster ) * 9)) / 1000);
|
||||
double damage = Utility.RandomMinMax( (Core.ML ? 32 : 36), 40 ) * ((300 + (GetDamageSkill( Caster ) * 9)) / 1000);
|
||||
|
||||
Map map = m.Map;
|
||||
|
||||
|
|
|
|||
|
|
@ -37,6 +37,18 @@ namespace Server.Spells.Ninjitsu
|
|||
return false;
|
||||
}
|
||||
|
||||
if( Core.ML )
|
||||
{
|
||||
BaseRanged ranged = from.Weapon as BaseRanged;
|
||||
|
||||
if( ranged != null )
|
||||
{
|
||||
from.SendLocalizedMessage( 1075858 ); // You can only use this with melee attacks.
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return base.Validate( from );
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -61,7 +61,10 @@ namespace Server.Spells.Seventh
|
|||
}
|
||||
else if ( !Caster.CanBeginAction( typeof( PolymorphSpell ) ) )
|
||||
{
|
||||
Caster.SendLocalizedMessage( 1005559 ); // This spell is already in effect.
|
||||
if( Core.ML )
|
||||
EndPolymorph( Caster );
|
||||
else
|
||||
Caster.SendLocalizedMessage( 1005559 ); // This spell is already in effect.
|
||||
return false;
|
||||
}
|
||||
else if ( m_NewBody == 0 )
|
||||
|
|
@ -92,7 +95,10 @@ namespace Server.Spells.Seventh
|
|||
}
|
||||
else if ( !Caster.CanBeginAction( typeof( PolymorphSpell ) ) )
|
||||
{
|
||||
Caster.SendLocalizedMessage( 1005559 ); // This spell is already in effect.
|
||||
if( Core.ML )
|
||||
EndPolymorph( Caster );
|
||||
else
|
||||
Caster.SendLocalizedMessage( 1005559 ); // This spell is already in effect.
|
||||
}
|
||||
else if ( Necromancy.TransformationSpell.UnderTransformation( Caster ) )
|
||||
{
|
||||
|
|
@ -134,13 +140,16 @@ namespace Server.Spells.Seventh
|
|||
BaseArmor.ValidateMobile( Caster );
|
||||
BaseClothing.ValidateMobile( Caster );
|
||||
|
||||
StopTimer( Caster );
|
||||
if( !Core.ML )
|
||||
{
|
||||
StopTimer( Caster );
|
||||
|
||||
Timer t = new InternalTimer( Caster );
|
||||
Timer t = new InternalTimer( Caster );
|
||||
|
||||
m_Timers[Caster] = t;
|
||||
m_Timers[Caster] = t;
|
||||
|
||||
t.Start();
|
||||
t.Start();
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
@ -167,6 +176,19 @@ namespace Server.Spells.Seventh
|
|||
return ( t != null );
|
||||
}
|
||||
|
||||
private static void EndPolymorph( Mobile m )
|
||||
{
|
||||
if( !m.CanBeginAction( typeof( PolymorphSpell ) ) )
|
||||
{
|
||||
m.BodyMod = 0;
|
||||
m.HueMod = -1;
|
||||
m.EndAction( typeof( PolymorphSpell ) );
|
||||
|
||||
BaseArmor.ValidateMobile( m );
|
||||
BaseClothing.ValidateMobile( m );
|
||||
}
|
||||
}
|
||||
|
||||
private class InternalTimer : Timer
|
||||
{
|
||||
private Mobile m_Owner;
|
||||
|
|
@ -186,15 +208,7 @@ namespace Server.Spells.Seventh
|
|||
|
||||
protected override void OnTick()
|
||||
{
|
||||
if ( !m_Owner.CanBeginAction( typeof( PolymorphSpell ) ) )
|
||||
{
|
||||
m_Owner.BodyMod = 0;
|
||||
m_Owner.HueMod = -1;
|
||||
m_Owner.EndAction( typeof( PolymorphSpell ) );
|
||||
|
||||
BaseArmor.ValidateMobile( m_Owner );
|
||||
BaseClothing.ValidateMobile( m_Owner );
|
||||
}
|
||||
EndPolymorph( m_Owner );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue