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:
asayre 2006-08-19 23:24:47 +00:00
parent c3eb5cebc6
commit ce54fe8635
28 changed files with 1495 additions and 1290 deletions

View file

@ -11,7 +11,7 @@ namespace Server.Items
public ElvenWashBasinEastAddon()
{
AddComponent( new AddonComponent( 0x30DF ), 0, 0, 0 );
AddComponent( new AddonComponent( 0x30E0 ), 0, -1, 0 );
AddComponent( new AddonComponent( 0x30E0 ), 0, 1, 0 );
}
public ElvenWashBasinEastAddon( Serial serial ) : base( serial )

View file

@ -18,6 +18,7 @@ namespace Server.Items
{
Hue = 0x4F5;
ArmorAttributes.DurabilityBonus = 100;
this.HitPoints = this.MaxHitPoints = 255; //Cause the Durability bonus and such and the min/max hits as well as all other hits being whole #'s...
Attributes.BonusStam = 8;
Attributes.AttackChance = 20;
}
@ -30,7 +31,7 @@ namespace Server.Items
{
base.Serialize( writer );
writer.Write( (int) 1 );
writer.Write( (int) 2 );
}
public override void Deserialize(GenericReader reader)
@ -39,6 +40,12 @@ namespace Server.Items
int version = reader.ReadInt();
if( version <= 1 )
{
if( this.HitPoints > 255 || this.MaxHitPoints > 255 )
this.HitPoints = this.MaxHitPoints = 255;
}
if ( version < 1 )
{
if ( Hue == 0x559 )

View file

@ -265,24 +265,26 @@ namespace Server.Items
}
}
public class AnkhEast : Item
[TypeAlias( "Server.Items.AnkhEast" )]
public class AnkhNorth : Item
{
private InternalItem m_Item;
[Constructable]
public AnkhEast() : this( false )
public AnkhNorth() : this( false )
{
}
[Constructable]
public AnkhEast( bool bloodied ) : base( bloodied ? 0x1E5D : 0x4 )
public AnkhNorth( bool bloodied ) : base( bloodied ? 0x1E5D : 0x4 )
{
Movable = false;
m_Item = new InternalItem( bloodied, this );
}
public AnkhEast( Serial serial ) : base( serial )
public AnkhNorth( Serial serial )
: base( serial )
{
}
@ -352,9 +354,10 @@ namespace Server.Items
private class InternalItem : Item
{
private AnkhEast m_Item;
private AnkhNorth m_Item;
public InternalItem( bool bloodied, AnkhEast item ) : base( bloodied ? 0x1E5C : 0x5 )
public InternalItem( bool bloodied, AnkhNorth item )
: base( bloodied ? 0x1E5C : 0x5 )
{
Movable = false;
@ -426,7 +429,7 @@ namespace Server.Items
int version = reader.ReadInt();
m_Item = reader.ReadItem() as AnkhEast;
m_Item = reader.ReadItem() as AnkhNorth;
}
}
}

View file

@ -63,9 +63,18 @@ namespace Server.Items
{
int amount = 10 + (int)(10.0 * (attacker.Skills[SkillName.Bushido].Value - 50.0) / 70.0 + 5);
AOS.Damage( defender, attacker, amount, 100, 0, 0, 0, 0 );
AOS.Damage( defender, attacker, amount, 100, 0, 0, 0, 0 );
defender.Paralyze( TimeSpan.FromSeconds( 3.0 ) );
if( Server.Items.ParalyzingBlow.IsImmune( defender ) ) //Does it still do damage?
{
attacker.SendLocalizedMessage( 1070804 ); // Your target resists paralysis.
defender.SendLocalizedMessage( 1070813 ); // You resist paralysis.
}
else
{
defender.Paralyze( TimeSpan.FromSeconds( 3.0 ) );
Server.Items.ParalyzingBlow.BeginImmunity( defender, Server.Items.ParalyzingBlow.FreezeDelayDuration );
}
}
}
}

View file

@ -41,7 +41,7 @@ namespace Server.Items
int version = reader.ReadInt();
if ( Slayer == SlayerName.None )
Slayer = SlayerName.DaemonDismissal;
Slayer = SlayerName.Exorcism;
}
}
}

View file

@ -1389,9 +1389,9 @@ namespace Server.Items
if ( (m_Slayer == SlayerName.Silver || m_Slayer2 == SlayerName.Silver) && context != null && context.Type != typeof( HorrificBeastSpell ) )
factor *= 1.25; // Every necromancer transformation other than horrific beast takes an additional 25% damage
if ( attacker is PlayerMobile )
if ( attacker is PlayerMobile && !(Core.ML && defender is PlayerMobile ))
{
PlayerMobile pmAttacker = (PlayerMobile) attacker;
PlayerMobile pmAttacker = (PlayerMobile) attacker;
if ( pmAttacker.HonorActive && pmAttacker.InRange( defender, 1 ) )
factor *= 1.25;
@ -1797,7 +1797,7 @@ namespace Server.Items
foreach ( Mobile m in from.GetMobilesInRange( 10 ) )
{
if ( from != m && defender != m && SpellHelper.ValidIndirectTarget( from, m ) && from.CanBeHarmful( m, false ) && from.InLOS( m ) )
if ( from != m && defender != m && SpellHelper.ValidIndirectTarget( from, m ) && from.CanBeHarmful( m, false ) && ( !Core.ML || from.InLOS( m ) ) )
list.Add( m );
}