From c7f8a29f1a9c34fadf89ff59ac1779f491f6e8fa Mon Sep 17 00:00:00 2001 From: eos Date: Sun, 1 Apr 2012 03:16:00 +0000 Subject: [PATCH] - Added hues to elven glasses. - Aegis of Grace now spawns with 255 durability. - Corrected a TimeoutTeleporter issue causing them to re-teleport mobiles on server restart. - Fixed SA doors for house customization. --- .../Armor/Glasses/AnthropomorphistGlasses.cs | 7 +- Scripts/Items/Armor/Glasses/ArtsGlasses.cs | 7 +- .../Items/Armor/Glasses/FoldedSteelGlasses.cs | 7 +- .../Items/Armor/Glasses/LightOfWayGlasses.cs | 7 +- Scripts/Items/Armor/Glasses/LyricalGlasses.cs | 7 +- .../Items/Armor/Glasses/MaceShieldGlasses.cs | 7 +- .../Items/Armor/Glasses/MaritimeGlasses.cs | 7 +- .../Items/Armor/Glasses/NecromanticGlasses.cs | 7 +- .../Items/Armor/Glasses/PoisonedGlasses.cs | 7 +- .../Armor/Glasses/TreasureTrinketGlasses.cs | 7 +- Scripts/Items/Armor/Glasses/WizardsGlasses.cs | 7 +- .../Items/Minor Artifacts/ML/AegisOfGrace.cs | 3 + Scripts/Items/Misc/Teleporter.cs | 7 ++ Scripts/Multis/HouseFoundation.cs | 74 +++++++++++++++++++ 14 files changed, 150 insertions(+), 11 deletions(-) diff --git a/Scripts/Items/Armor/Glasses/AnthropomorphistGlasses.cs b/Scripts/Items/Armor/Glasses/AnthropomorphistGlasses.cs index 437c6e628..8b578f1d7 100644 --- a/Scripts/Items/Armor/Glasses/AnthropomorphistGlasses.cs +++ b/Scripts/Items/Armor/Glasses/AnthropomorphistGlasses.cs @@ -23,6 +23,8 @@ namespace Server.Items Attributes.BonusHits = 5; Attributes.RegenMana = 3; Attributes.ReflectPhysical = 20; + + Hue = 0x80; } public AnthropomorphistGlasses( Serial serial ) : base( serial ) { @@ -31,13 +33,16 @@ namespace Server.Items public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); - writer.Write( (int) 0 ); + writer.Write( (int) 1 ); } public override void Deserialize(GenericReader reader) { base.Deserialize( reader ); int version = reader.ReadInt(); + + if ( version == 0 && Hue == 0 ) + Hue = 0x80; } } } diff --git a/Scripts/Items/Armor/Glasses/ArtsGlasses.cs b/Scripts/Items/Armor/Glasses/ArtsGlasses.cs index cd06e6956..44994c170 100644 --- a/Scripts/Items/Armor/Glasses/ArtsGlasses.cs +++ b/Scripts/Items/Armor/Glasses/ArtsGlasses.cs @@ -22,6 +22,8 @@ namespace Server.Items Attributes.BonusStr = 5; Attributes.BonusInt = 5; Attributes.BonusHits = 15; + + Hue = 0x73; } public ArtsGlasses( Serial serial ) : base( serial ) { @@ -30,13 +32,16 @@ namespace Server.Items public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); - writer.Write( (int) 0 ); + writer.Write( (int) 1 ); } public override void Deserialize(GenericReader reader) { base.Deserialize( reader ); int version = reader.ReadInt(); + + if ( version == 0 && Hue == 0 ) + Hue = 0x73; } } } diff --git a/Scripts/Items/Armor/Glasses/FoldedSteelGlasses.cs b/Scripts/Items/Armor/Glasses/FoldedSteelGlasses.cs index d49caff36..ad27ea94a 100644 --- a/Scripts/Items/Armor/Glasses/FoldedSteelGlasses.cs +++ b/Scripts/Items/Armor/Glasses/FoldedSteelGlasses.cs @@ -22,6 +22,8 @@ namespace Server.Items Attributes.BonusStr = 8; Attributes.NightSight = 1; Attributes.DefendChance = 15; + + Hue = 0x47E; } public FoldedSteelGlasses( Serial serial ) : base( serial ) { @@ -30,13 +32,16 @@ namespace Server.Items public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); - writer.Write( (int) 0 ); + writer.Write( (int) 1 ); } public override void Deserialize(GenericReader reader) { base.Deserialize( reader ); int version = reader.ReadInt(); + + if ( version == 0 && Hue == 0 ) + Hue = 0x47E; } } } diff --git a/Scripts/Items/Armor/Glasses/LightOfWayGlasses.cs b/Scripts/Items/Armor/Glasses/LightOfWayGlasses.cs index 750e59c96..375eb853a 100644 --- a/Scripts/Items/Armor/Glasses/LightOfWayGlasses.cs +++ b/Scripts/Items/Armor/Glasses/LightOfWayGlasses.cs @@ -22,6 +22,8 @@ namespace Server.Items Attributes.BonusStr = 7; Attributes.BonusInt = 5; Attributes.WeaponDamage = 30; + + Hue = 0x256; } public LightOfWayGlasses( Serial serial ) : base( serial ) { @@ -30,13 +32,16 @@ namespace Server.Items public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); - writer.Write( (int) 0 ); + writer.Write( (int) 1 ); } public override void Deserialize(GenericReader reader) { base.Deserialize( reader ); int version = reader.ReadInt(); + + if ( version == 0 && Hue == 0 ) + Hue = 0x256; } } } diff --git a/Scripts/Items/Armor/Glasses/LyricalGlasses.cs b/Scripts/Items/Armor/Glasses/LyricalGlasses.cs index 3648b5fd1..ee2d52715 100644 --- a/Scripts/Items/Armor/Glasses/LyricalGlasses.cs +++ b/Scripts/Items/Armor/Glasses/LyricalGlasses.cs @@ -22,6 +22,8 @@ namespace Server.Items WeaponAttributes.HitLowerDefend = 20; Attributes.NightSight = 1; Attributes.ReflectPhysical = 15; + + Hue = 0x47F; } public LyricalGlasses( Serial serial ) : base( serial ) { @@ -30,13 +32,16 @@ namespace Server.Items public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); - writer.Write( (int) 0 ); + writer.Write( (int) 1 ); } public override void Deserialize(GenericReader reader) { base.Deserialize( reader ); int version = reader.ReadInt(); + + if ( version == 0 && Hue == 0 ) + Hue = 0x47F; } } } diff --git a/Scripts/Items/Armor/Glasses/MaceShieldGlasses.cs b/Scripts/Items/Armor/Glasses/MaceShieldGlasses.cs index b298cdfb8..ee6affb15 100644 --- a/Scripts/Items/Armor/Glasses/MaceShieldGlasses.cs +++ b/Scripts/Items/Armor/Glasses/MaceShieldGlasses.cs @@ -22,6 +22,8 @@ namespace Server.Items WeaponAttributes.HitLowerDefend = 30; Attributes.BonusStr = 10; Attributes.BonusDex = 5; + + Hue = 0x1DD; } public MaceShieldGlasses( Serial serial ) : base( serial ) { @@ -30,13 +32,16 @@ namespace Server.Items public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); - writer.Write( (int) 0 ); + writer.Write( (int) 1 ); } public override void Deserialize(GenericReader reader) { base.Deserialize( reader ); int version = reader.ReadInt(); + + if ( version == 0 && Hue == 0 ) + Hue = 0x1DD; } } } diff --git a/Scripts/Items/Armor/Glasses/MaritimeGlasses.cs b/Scripts/Items/Armor/Glasses/MaritimeGlasses.cs index 216fd3bd0..f004ef656 100644 --- a/Scripts/Items/Armor/Glasses/MaritimeGlasses.cs +++ b/Scripts/Items/Armor/Glasses/MaritimeGlasses.cs @@ -22,6 +22,8 @@ namespace Server.Items Attributes.Luck = 150; Attributes.NightSight = 1; Attributes.ReflectPhysical = 20; + + Hue = 0x581; } public MaritimeGlasses( Serial serial ) : base( serial ) { @@ -30,13 +32,16 @@ namespace Server.Items public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); - writer.Write( (int) 0 ); + writer.Write( (int) 1 ); } public override void Deserialize(GenericReader reader) { base.Deserialize( reader ); int version = reader.ReadInt(); + + if ( version == 0 && Hue == 0 ) + Hue = 0x581; } } } diff --git a/Scripts/Items/Armor/Glasses/NecromanticGlasses.cs b/Scripts/Items/Armor/Glasses/NecromanticGlasses.cs index a4652756f..7cc2be5ae 100644 --- a/Scripts/Items/Armor/Glasses/NecromanticGlasses.cs +++ b/Scripts/Items/Armor/Glasses/NecromanticGlasses.cs @@ -21,6 +21,8 @@ namespace Server.Items { Attributes.LowerManaCost = 15; Attributes.LowerRegCost = 30; + + Hue = 0x22D; } public NecromanticGlasses( Serial serial ) : base( serial ) { @@ -29,13 +31,16 @@ namespace Server.Items public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); - writer.Write( (int) 0 ); + writer.Write( (int) 1 ); } public override void Deserialize(GenericReader reader) { base.Deserialize( reader ); int version = reader.ReadInt(); + + if ( version == 0 && Hue == 0 ) + Hue = 0x22D; } } } diff --git a/Scripts/Items/Armor/Glasses/PoisonedGlasses.cs b/Scripts/Items/Armor/Glasses/PoisonedGlasses.cs index ee54410df..f457d4133 100644 --- a/Scripts/Items/Armor/Glasses/PoisonedGlasses.cs +++ b/Scripts/Items/Armor/Glasses/PoisonedGlasses.cs @@ -21,6 +21,8 @@ namespace Server.Items { Attributes.BonusStam = 3; Attributes.RegenStam = 4; + + Hue = 0x113; } public PoisonedGlasses( Serial serial ) : base( serial ) { @@ -29,13 +31,16 @@ namespace Server.Items public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); - writer.Write( (int) 0 ); + writer.Write( (int) 1 ); } public override void Deserialize(GenericReader reader) { base.Deserialize( reader ); int version = reader.ReadInt(); + + if ( version == 0 && Hue == 0 ) + Hue = 0x113; } } } diff --git a/Scripts/Items/Armor/Glasses/TreasureTrinketGlasses.cs b/Scripts/Items/Armor/Glasses/TreasureTrinketGlasses.cs index f1181069d..6ed821840 100644 --- a/Scripts/Items/Armor/Glasses/TreasureTrinketGlasses.cs +++ b/Scripts/Items/Armor/Glasses/TreasureTrinketGlasses.cs @@ -22,6 +22,8 @@ namespace Server.Items Attributes.BonusInt = 10; Attributes.BonusHits = 5; Attributes.SpellDamage = 10; + + Hue = 0x1C2; } public TreasureTrinketGlasses( Serial serial ) : base( serial ) { @@ -30,13 +32,16 @@ namespace Server.Items public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); - writer.Write( (int) 0 ); + writer.Write( (int) 1 ); } public override void Deserialize(GenericReader reader) { base.Deserialize( reader ); int version = reader.ReadInt(); + + if ( version == 0 && Hue == 0 ) + Hue = 0x1C2; } } } diff --git a/Scripts/Items/Armor/Glasses/WizardsGlasses.cs b/Scripts/Items/Armor/Glasses/WizardsGlasses.cs index 419b73571..a87d6729c 100644 --- a/Scripts/Items/Armor/Glasses/WizardsGlasses.cs +++ b/Scripts/Items/Armor/Glasses/WizardsGlasses.cs @@ -22,6 +22,8 @@ namespace Server.Items Attributes.BonusMana = 10; Attributes.RegenMana = 3; Attributes.SpellDamage = 15; + + Hue = 0x2B0; } public WizardsGlasses( Serial serial ) : base( serial ) { @@ -30,13 +32,16 @@ namespace Server.Items public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); - writer.Write( (int) 0 ); + writer.Write( (int) 1 ); } public override void Deserialize(GenericReader reader) { base.Deserialize( reader ); int version = reader.ReadInt(); + + if ( version == 0 && Hue == 0 ) + Hue = 0x2B0; } } } diff --git a/Scripts/Items/Minor Artifacts/ML/AegisOfGrace.cs b/Scripts/Items/Minor Artifacts/ML/AegisOfGrace.cs index 683dc2c1a..b831beb1e 100644 --- a/Scripts/Items/Minor Artifacts/ML/AegisOfGrace.cs +++ b/Scripts/Items/Minor Artifacts/ML/AegisOfGrace.cs @@ -17,6 +17,9 @@ namespace Server.Items public override ArmorMaterialType MaterialType{ get{ return ArmorMaterialType.Dragon; } } public override CraftResource DefaultResource{ get{ return CraftResource.Iron; } } + public override int InitMinHits{ get{ return 255; } } + public override int InitMaxHits{ get{ return 255; } } + [Constructable] public AegisOfGrace() { diff --git a/Scripts/Items/Misc/Teleporter.cs b/Scripts/Items/Misc/Teleporter.cs index b513ab9dc..e3ecf1aad 100644 --- a/Scripts/Items/Misc/Teleporter.cs +++ b/Scripts/Items/Misc/Teleporter.cs @@ -759,6 +759,13 @@ namespace Server.Items } } + public override void DoTeleport( Mobile m ) + { + m_Teleporting.Remove( m ); + + base.DoTeleport( m ); + } + public override bool OnMoveOver( Mobile m ) { if ( Active && ( m.Player || Creatures ) ) diff --git a/Scripts/Multis/HouseFoundation.cs b/Scripts/Multis/HouseFoundation.cs index 00866a2ef..822d83307 100644 --- a/Scripts/Multis/HouseFoundation.cs +++ b/Scripts/Multis/HouseFoundation.cs @@ -344,6 +344,52 @@ namespace Server.Multis case 1: door = new GenericHouseDoor( facing, 0x368B, 0xEC, 0x3E7 ); break; //shadow } } + else if( itemID >= 0x409B && itemID < 0x40A3 ) + { + door = new GenericHouseDoor( GetSADoorFacing( itemID - 0x409B ), itemID, 0xEA, 0xF1, false ); + } + else if( itemID >= 0x410C && itemID < 0x4114 ) + { + door = new GenericHouseDoor( GetSADoorFacing( itemID - 0x410C ), itemID, 0xEA, 0xF1, false ); + } + else if( itemID >= 0x41C2 && itemID < 0x41CA ) + { + door = new GenericHouseDoor( GetSADoorFacing( itemID - 0x41C2 ), itemID, 0xEA, 0xF1, false ); + } + else if( itemID >= 0x41CF && itemID < 0x41D7 ) + { + door = new GenericHouseDoor( GetSADoorFacing( itemID - 0x41CF ), itemID, 0xEA, 0xF1, false ); + } + else if( itemID >= 0x436E && itemID < 0x437E ) + { + /* These ones had to be different... + * Offset 0 2 4 6 8 10 12 14 + * DoorFacing 2 3 2 3 6 7 6 7 + */ + int offset = itemID - 0x436E; + DoorFacing facing = (DoorFacing)( ( offset / 2 + 2 * ( ( 1 + offset / 4 ) % 2 ) ) % 8 ); + door = new GenericHouseDoor( facing, itemID, 0xEA, 0xF1, false ); + } + else if( itemID >= 0x46DD && itemID < 0x46E5 ) + { + door = new GenericHouseDoor( GetSADoorFacing( itemID - 0x46DD ), itemID, 0xEB, 0xF2, false ); + } + else if( itemID >= 0x4D22 && itemID < 0x4D2A ) + { + door = new GenericHouseDoor( GetSADoorFacing( itemID - 0x4D22 ), itemID, 0xEA, 0xF1, false ); + } + else if( itemID >= 0x50C8 && itemID < 0x50D0 ) + { + door = new GenericHouseDoor( GetSADoorFacing( itemID - 0x50C8 ), itemID, 0xEA, 0xF1, false ); + } + else if( itemID >= 0x50D0 && itemID < 0x50D8 ) + { + door = new GenericHouseDoor( GetSADoorFacing( itemID - 0x50D0 ), itemID, 0xEA, 0xF1, false ); + } + else if( itemID >= 0x5142 && itemID < 0x514A ) + { + door = new GenericHouseDoor( GetSADoorFacing( itemID - 0x5142 ), itemID, 0xF0, 0xEF, false ); + } if( door != null ) { @@ -420,6 +466,14 @@ namespace Server.Multis } } + private static DoorFacing GetSADoorFacing( int offset ) + { + /* Offset 0 2 4 6 + * DoorFacing 2 3 6 7 + */ + return (DoorFacing)( ( offset / 2 + 2 * ( 1 + offset / 4 ) ) % 8 ); + } + public void AddFixture( Item item, MultiTileEntry mte ) { m_Fixtures.Add( item ); @@ -1894,6 +1948,26 @@ namespace Server.Multis return true; else if( itemID >= 0x367B && itemID < 0x369B ) return true; + #region SA doors + else if( itemID >= 0x409B && itemID < 0x40A3 ) + return true; + else if( itemID >= 0x410C && itemID < 0x4114 ) + return true; + else if( itemID >= 0x41C2 && itemID < 0x41CA ) + return true; + else if( itemID >= 0x41CF && itemID < 0x41D7 ) + return true; + else if( itemID >= 0x436E && itemID < 0x437E ) + return true; + else if( itemID >= 0x46DD && itemID < 0x46E5 ) + return true; + else if( itemID >= 0x4D22 && itemID < 0x4D2A ) + return true; + else if( itemID >= 0x50C8 && itemID < 0x50D8 ) + return true; + else if( itemID >= 0x5142 && itemID < 0x514A ) + return true; + #endregion return false; }