public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 1: case 0: { m_MultiID = reader.ReadInt(); m_Offset = reader.ReadPoint3D(); m_ShipName = reader.ReadString(); if ( version == 0 ) reader.ReadUInt(); break; } } if ( LootType == LootType.Newbied ) LootType = LootType.Blessed; if ( Weight == 0.0 ) Weight = 1.0; }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 0: { m_Boat = reader.ReadItem() as BaseBoat; m_Side = (PlankSide) reader.ReadInt(); m_Locked = reader.ReadBool(); m_KeyValue = reader.ReadUInt(); if ( m_Boat == null ) Delete(); break; } } if ( IsOpen ) { m_CloseTimer = new CloseTimer( this ); m_CloseTimer.Start(); } }
public KeyInfo( GenericReader reader ) { int version = reader.ReadInt(); m_KeyVal = reader.ReadUInt(); m_Description = reader.ReadString(); m_MaxRange = reader.ReadInt(); m_Link = reader.ReadItem(); m_Type = (KeyType)reader.ReadInt(); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 0: { m_Owner = reader.ReadItem() as BaseHouse; m_OrgOwner = reader.ReadMobile(); m_KeyOwner = reader.ReadUInt(); break; } } if (this.Name == "a house sign") { this.Name = null; } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 2: { m_MaxRange = reader.ReadInt(); goto case 1; } case 1: { m_Link = reader.ReadItem(); goto case 0; } case 0: { if (version < 2 || m_MaxRange == 0) { m_MaxRange = 3; } m_Description = reader.ReadString(); m_KeyVal = reader.ReadUInt(); break; } } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 1: case 0: { m_MultiID = reader.ReadInt(); m_Offset = reader.ReadPoint3D(); m_ShipName = reader.ReadString(); if (version == 0) { reader.ReadUInt(); } break; } } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 0: { m_KeyValue = reader.ReadUInt(); m_Open = reader.ReadBool(); m_Locked = reader.ReadBool(); m_OpenedID = reader.ReadInt(); m_ClosedID = reader.ReadInt(); m_OpenedSound = reader.ReadInt(); m_ClosedSound = reader.ReadInt(); m_Offset = reader.ReadPoint3D(); m_Link = reader.ReadItem() as BaseDoor; m_Timer = new InternalTimer(this); if (m_Open) { m_Timer.Start(); } if (Server.Items.DoorType.IsDungeonDoor(this)) { Locked = false; } break; } } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 0: { m_Boat = reader.ReadItem() as BaseGalleon; m_Side = (BoatRopeSide)reader.ReadInt(); m_Locked = reader.ReadBool(); m_KeyValue = reader.ReadUInt(); if (m_Boat == null) { Delete(); } break; } } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 1: { m_CustomClosedID = reader.ReadInt(); m_CustomOpenedID = reader.ReadInt(); m_Facing = (DoorFacing)reader.ReadInt(); m_KeyValue = reader.ReadUInt(); m_Open = reader.ReadBool(); m_Locked = reader.ReadBool(); m_OpenedID = reader.ReadInt(); m_ClosedID = reader.ReadInt(); m_OpenedSound = reader.ReadInt(); m_ClosedSound = reader.ReadInt(); m_Offset = reader.ReadPoint3D(); m_Link = reader.ReadItem() as BaseDoor; m_Timer = new InternalTimer(this); if (m_Open) { m_Timer.Start(); } break; // NO FALLTHROUGH } case 0: { m_KeyValue = reader.ReadUInt(); m_Open = reader.ReadBool(); m_Locked = reader.ReadBool(); m_OpenedID = reader.ReadInt(); m_ClosedID = reader.ReadInt(); m_OpenedSound = reader.ReadInt(); m_ClosedSound = reader.ReadInt(); m_Offset = reader.ReadPoint3D(); m_Link = reader.ReadItem() as BaseDoor; m_Timer = new InternalTimer(this); if (m_Open) { m_Timer.Start(); } // bring ver 0 up to ver 1 for (int i = 0; i < 8; i++) { if (m_Offset == m_Offsets[i]) { m_OpenedID -= 2 * i; m_ClosedID -= 2 * i; m_CustomClosedID = -1; m_CustomOpenedID = -1; m_Offset = Point3D.Zero; m_Facing = (DoorFacing)i; break; } } if (m_Offset != Point3D.Zero) { m_Facing = DoorFacing.EastCCW; m_CustomOpenedID = m_OpenedID; m_CustomClosedID = m_ClosedID; } break; } } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { /* Erzse - GuildID is now saved. */ case 1: { m_Guild = reader.ReadEncodedInt(); goto case 0; } /* end Erzse */ case 0: { m_KeyValue = reader.ReadUInt(); m_Open = reader.ReadBool(); m_Locked = reader.ReadBool(); m_OpenedID = reader.ReadInt(); m_ClosedID = reader.ReadInt(); m_OpenedSound = reader.ReadInt(); m_ClosedSound = reader.ReadInt(); m_Offset = reader.ReadPoint3D(); m_Link = reader.ReadItem() as BaseDoor; m_Timer = new InternalTimer( this ); if ( m_Open ) m_Timer.Start(); break; } } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 1: if (reader.ReadBool()) { data = new uint[LotteryConstants.Picks]; for (uint i = 0; i < LotteryConstants.Picks; i++) data[i] = reader.ReadUInt(); drawing = reader.ReadUInt(); } break; } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 2: { m_MaxRange = reader.ReadInt(); goto case 1; } case 1: { m_Link = reader.ReadItem(); goto case 0; } case 0: { if ( version < 2 || m_MaxRange == 0 ) m_MaxRange = 3; m_Description = reader.ReadString(); m_KeyVal = reader.ReadUInt(); break; } } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 0: drawing = reader.ReadUInt(); for (uint i = 0; i < jackpot.Length; i++) { jackpot[i] = reader.ReadULong(); } for (uint i = 0; i < awards.Length; i++) { awards[i] = reader.ReadULong(); } award = reader.ReadULong(); given = reader.ReadULong(); destroyed = reader.ReadULong(); mode = (LotteryBasketMode)reader.ReadInt(); if (reader.ReadBool()) { outcome = new uint[LotteryConstants.Picks]; for (uint p = 0; p < LotteryConstants.Picks; p++) { outcome[p] = reader.ReadUInt(); } } uint count = reader.ReadUInt(); for (uint i = 0; i < count; i++) { int id = reader.ReadInt(); uint[] data = new uint[LotteryConstants.Picks]; for (uint p = 0; p < LotteryConstants.Picks; p++) { data[p] = reader.ReadUInt(); } RegisteredTicket rt = new RegisteredTicket(id, data); rt.Class = reader.ReadInt(); tickets[id] = rt; } count = reader.ReadUInt(); for (uint i = 0; i < count; i++) { int id = reader.ReadInt(); uint[] data = new uint[LotteryConstants.Picks]; for (uint p = 0; p < LotteryConstants.Picks; p++) { data[p] = reader.ReadUInt(); } incoming[id] = new RegisteredTicket(id, data); } board = reader.ReadItem(); itemPrize = reader.ReadBool(); break; case 1: drawing = reader.ReadUInt(); for (uint i = 0; i < drawingCount.Length; i++) { drawingCount[i] = reader.ReadUInt(); } for (uint i = 0; i < jackpot.Length; i++) { jackpot[i] = reader.ReadULong(); } for (uint i = 0; i < awards.Length; i++) { awards[i] = reader.ReadULong(); } for (uint i = 0; i < winners.Length; i++) { winners[i] = reader.ReadInt(); } oldParticipants = reader.ReadUInt(); award = reader.ReadULong(); given = reader.ReadULong(); destroyed = reader.ReadULong(); mode = (LotteryBasketMode)reader.ReadInt(); if (reader.ReadBool()) { outcome = new uint[LotteryConstants.Picks]; for (uint p = 0; p < LotteryConstants.Picks; p++) { outcome[p] = reader.ReadUInt(); } } count = reader.ReadUInt(); for (uint i = 0; i < count; i++) { int id = reader.ReadInt(); uint[] data = new uint[LotteryConstants.Picks]; for (uint p = 0; p < LotteryConstants.Picks; p++) { data[p] = reader.ReadUInt(); } RegisteredTicket rt = new RegisteredTicket(id, data); rt.Class = reader.ReadInt(); tickets[id] = rt; } count = reader.ReadUInt(); for (uint i = 0; i < count; i++) { int id = reader.ReadInt(); uint[] data = new uint[LotteryConstants.Picks]; for (uint p = 0; p < LotteryConstants.Picks; p++) { data[p] = reader.ReadUInt(); } incoming[id] = new RegisteredTicket(id, data); } board = reader.ReadItem(); itemPrize = reader.ReadBool(); break; } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 5: { m_MultiID = reader.ReadInt(); m_Offset = reader.ReadPoint3D(); m_ShipName = reader.ReadString(); m_BoatItem = reader.ReadItem() as BaseBoat; break; } case 4: { switch (reader.ReadInt()) { default: case 0: break; case 1: m_PilotEntry = new PilotEntry(reader); break; } goto case 3; } case 3: { m_BaseHue = reader.ReadInt(); if (version < 5) { reader.ReadItem(); } reader.ReadItem(); m_Owner = reader.ReadMobile(); goto case 2; } case 2: { switch (reader.ReadInt()) { default: case 0: break; case 1: m_SecurityEntry = new SecurityEntry(null, reader); break; } goto case 1; } case 1: case 0: { m_MultiID = reader.ReadInt(); m_Offset = reader.ReadPoint3D(); m_ShipName = reader.ReadString(); if (version == 0) { reader.ReadUInt(); } break; } } if (LootType == LootType.Newbied) { LootType = LootType.Blessed; } if (Weight == 0.0) { Weight = 1.0; } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); m_Side = (PlankSide)reader.ReadInt(); m_Locked = reader.ReadBool(); m_KeyValue = reader.ReadUInt(); if (IsOpen) { m_CloseTimer = new CloseTimer(this); m_CloseTimer.Start(); } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch( version ) { case 2: { _lockLevel = reader.ReadInt(); _maxLockLevel = reader.ReadInt(); _requiredSkill = reader.ReadInt(); _hasLock = reader.ReadBool(); goto case 1; } case 1: { _timed = reader.ReadBool(); _timeToClose = reader.ReadTimeSpan(); goto case 0; } case 0: { m_KeyValue = reader.ReadUInt(); m_Open = reader.ReadBool(); m_Locked = reader.ReadBool(); m_OpenedID = reader.ReadInt(); m_ClosedID = reader.ReadInt(); m_OpenedSound = reader.ReadInt(); m_ClosedSound = reader.ReadInt(); m_Offset = reader.ReadPoint3D(); m_Link = reader.ReadItem() as BaseDoor; break; } } }
public KeyringEntry( GenericReader reader ) { int version = reader.ReadByte(); switch ( version ) { case 0: { m_KeyValue = reader.ReadUInt(); m_Link = reader.ReadItem(); m_MaxRange = reader.ReadInt(); m_ItemID = reader.ReadInt(); m_LootType = (LootType)reader.ReadByte(); m_Description = reader.ReadString(); break; } } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch ( version ) { case 7: { m_Locker = reader.ReadMobile(); goto case 6; } case 6: { this.m_Crafter = reader.ReadMobile(); goto case 5; } case 5: { this.m_IsShipwreckedItem = reader.ReadBool(); goto case 4; } case 4: { this.m_RequiredSkill = reader.ReadInt(); goto case 3; } case 3: { this.m_MaxLockLevel = reader.ReadInt(); goto case 2; } case 2: { this.m_KeyValue = reader.ReadUInt(); goto case 1; } case 1: { this.m_LockLevel = reader.ReadInt(); goto case 0; } case 0: { if (version < 3) this.m_MaxLockLevel = 100; if (version < 4) { if ((this.m_MaxLockLevel - this.m_LockLevel) == 40) { this.m_RequiredSkill = this.m_LockLevel + 6; this.m_LockLevel = this.m_RequiredSkill - 10; this.m_MaxLockLevel = this.m_RequiredSkill + 39; } else { this.m_RequiredSkill = this.m_LockLevel; } } this.m_Locked = reader.ReadBool(); break; } } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 0: { m_Boat = reader.ReadItem() as BaseGalleon; m_Side = (BoatRopeSide) reader.ReadInt(); m_Locked = reader.ReadBool(); m_KeyValue = reader.ReadUInt(); if ( m_Boat == null ) Delete(); break; } } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 8: case 7: case 6: case 5: { SaveFlag flags = (SaveFlag)reader.ReadUInt(); if ( GetSaveFlag( flags, SaveFlag.DamageLevel ) ) { m_DamageLevel = (WeaponDamageLevel)reader.ReadInt(); if ( m_DamageLevel > WeaponDamageLevel.Vanq ) m_DamageLevel = WeaponDamageLevel.Ruin; } if ( GetSaveFlag( flags, SaveFlag.AccuracyLevel ) ) { m_AccuracyLevel = (WeaponAccuracyLevel)reader.ReadInt(); if ( m_AccuracyLevel > WeaponAccuracyLevel.Supremely ) m_AccuracyLevel = WeaponAccuracyLevel.Accurate; } if ( GetSaveFlag( flags, SaveFlag.DurabilityLevel ) ) { m_DurabilityLevel = (WeaponDurabilityLevel)reader.ReadInt(); if ( m_DurabilityLevel > WeaponDurabilityLevel.Indestructible ) m_DurabilityLevel = WeaponDurabilityLevel.Durable; } if ( GetSaveFlag( flags, SaveFlag.Quality ) ) m_Quality = (WeaponQuality)reader.ReadInt(); else m_Quality = WeaponQuality.Regular; if ( GetSaveFlag( flags, SaveFlag.Hits ) ) m_Hits = reader.ReadInt(); if ( GetSaveFlag( flags, SaveFlag.MaxHits ) ) m_MaxHits = reader.ReadInt(); if ( GetSaveFlag( flags, SaveFlag.Slayer ) ) m_Slayer = (SlayerName)reader.ReadInt(); if ( GetSaveFlag( flags, SaveFlag.Poison ) ) m_Poison = Poison.Deserialize( reader ); if ( GetSaveFlag( flags, SaveFlag.PoisonCharges ) ) m_PoisonCharges = reader.ReadInt(); if ( GetSaveFlag( flags, SaveFlag.Crafter ) ) m_Crafter = reader.ReadMobile(); if ( GetSaveFlag( flags, SaveFlag.Identified ) ) m_Identified = ( version >= 6 || reader.ReadBool() ); if ( GetSaveFlag( flags, SaveFlag.StrReq ) ) m_StrReq = reader.ReadInt(); else m_StrReq = -1; if ( GetSaveFlag( flags, SaveFlag.DexReq ) ) m_DexReq = reader.ReadInt(); else m_DexReq = -1; if ( GetSaveFlag( flags, SaveFlag.IntReq ) ) m_IntReq = reader.ReadInt(); else m_IntReq = -1; if ( GetSaveFlag( flags, SaveFlag.MinDamage ) ) m_MinDamage = reader.ReadInt(); else m_MinDamage = -1; if ( GetSaveFlag( flags, SaveFlag.MaxDamage ) ) m_MaxDamage = reader.ReadInt(); else m_MaxDamage = -1; if ( GetSaveFlag( flags, SaveFlag.HitSound ) ) m_HitSound = reader.ReadInt(); else m_HitSound = -1; if ( GetSaveFlag( flags, SaveFlag.MissSound ) ) m_MissSound = reader.ReadInt(); else m_MissSound = -1; if ( GetSaveFlag( flags, SaveFlag.Speed ) ) m_Speed = reader.ReadInt(); else m_Speed = -1; if ( GetSaveFlag( flags, SaveFlag.MaxRange ) ) m_MaxRange = reader.ReadInt(); else m_MaxRange = -1; if ( GetSaveFlag( flags, SaveFlag.Skill ) ) m_Skill = (SkillName)reader.ReadInt(); else m_Skill = (SkillName)(-1); if ( GetSaveFlag( flags, SaveFlag.Type ) ) m_Type = (WeaponType)reader.ReadInt(); else m_Type = (WeaponType)(-1); if ( GetSaveFlag( flags, SaveFlag.Animation ) ) m_Animation = (WeaponAnimation)reader.ReadInt(); else m_Animation = (WeaponAnimation)(-1); if ( GetSaveFlag( flags, SaveFlag.Resource ) ) m_Resource = (CraftResource)reader.ReadInt(); else m_Resource = CraftResource.Iron; if ( GetSaveFlag( flags, SaveFlag.xAttributes ) ) m_AosAttributes = new AosAttributes( this, reader ); else m_AosAttributes = new AosAttributes( this ); if ( GetSaveFlag( flags, SaveFlag.xWeaponAttributes ) ) m_AosWeaponAttributes = new AosWeaponAttributes( this, reader ); else m_AosWeaponAttributes = new AosWeaponAttributes( this ); if ( UseSkillMod && m_AccuracyLevel != WeaponAccuracyLevel.Regular && Parent is Mobile ) { m_SkillMod = new DefaultSkillMod( AccuracySkill, true, (int)m_AccuracyLevel * AccuracySkillBonus ); ((Mobile)Parent).AddSkillMod( m_SkillMod ); } if ( version < 7 && m_AosWeaponAttributes.MageWeapon != 0 ) m_AosWeaponAttributes.MageWeapon = 30 - m_AosWeaponAttributes.MageWeapon; if ( Core.AOS && m_AosWeaponAttributes.MageWeapon != 0 && m_AosWeaponAttributes.MageWeapon != 30 && Parent is Mobile ) { m_MageMod = new DefaultSkillMod( SkillName.Magery, true, -30 + m_AosWeaponAttributes.MageWeapon ); ((Mobile)Parent).AddSkillMod( m_MageMod ); } if ( GetSaveFlag( flags, SaveFlag.PlayerConstructed ) ) m_PlayerConstructed = true; if( GetSaveFlag( flags, SaveFlag.SkillBonuses ) ) m_AosSkillBonuses = new AosSkillBonuses( this, reader ); else m_AosSkillBonuses = new AosSkillBonuses( this ); if( GetSaveFlag( flags, SaveFlag.Slayer2 ) ) m_Slayer2 = (SlayerName)reader.ReadInt(); if( GetSaveFlag( flags, SaveFlag.ElementalDamages ) ) m_AosElementDamages = new AosElementAttributes( this, reader ); else m_AosElementDamages = new AosElementAttributes( this ); if ( GetSaveFlag( flags, SaveFlag.MagicAffect ) ) m_PreUORMagEff = (PreUORMagEff)reader.ReadInt(); else m_PreUORMagEff = PreUORMagEff.None; if ( GetSaveFlag( flags, SaveFlag.AffectCharges ) ) MagEffCharges = reader.ReadInt(); else MagEffCharges = 0; break; } case 4: { m_Slayer = (SlayerName)reader.ReadInt(); goto case 3; } case 3: { m_StrReq = reader.ReadInt(); m_DexReq = reader.ReadInt(); m_IntReq = reader.ReadInt(); goto case 2; } case 2: { m_Identified = reader.ReadBool(); goto case 1; } case 1: { m_MaxRange = reader.ReadInt(); goto case 0; } case 0: { if ( version == 0 ) m_MaxRange = 1; // default if ( version < 5 ) { m_Resource = CraftResource.Iron; m_AosAttributes = new AosAttributes( this ); m_AosWeaponAttributes = new AosWeaponAttributes( this ); m_AosElementDamages = new AosElementAttributes( this ); m_AosSkillBonuses = new AosSkillBonuses( this ); } m_MinDamage = reader.ReadInt(); m_MaxDamage = reader.ReadInt(); m_Speed = reader.ReadInt(); m_HitSound = reader.ReadInt(); m_MissSound = reader.ReadInt(); m_Skill = (SkillName)reader.ReadInt(); m_Type = (WeaponType)reader.ReadInt(); m_Animation = (WeaponAnimation)reader.ReadInt(); m_DamageLevel = (WeaponDamageLevel)reader.ReadInt(); m_AccuracyLevel = (WeaponAccuracyLevel)reader.ReadInt(); m_DurabilityLevel = (WeaponDurabilityLevel)reader.ReadInt(); m_Quality = (WeaponQuality)reader.ReadInt(); m_Crafter = reader.ReadMobile(); m_Poison = Poison.Deserialize( reader ); m_PoisonCharges = reader.ReadInt(); if ( m_StrReq == OldStrengthReq ) m_StrReq = -1; if ( m_DexReq == OldDexterityReq ) m_DexReq = -1; if ( m_IntReq == OldIntelligenceReq ) m_IntReq = -1; if ( m_MinDamage == OldMinDamage ) m_MinDamage = -1; if ( m_MaxDamage == OldMaxDamage ) m_MaxDamage = -1; if ( m_HitSound == OldHitSound ) m_HitSound = -1; if ( m_MissSound == OldMissSound ) m_MissSound = -1; if ( m_Speed == OldSpeed ) m_Speed = -1; if ( m_MaxRange == OldMaxRange ) m_MaxRange = -1; if ( m_Skill == OldSkill ) m_Skill = (SkillName)(-1); if ( m_Type == OldType ) m_Type = (WeaponType)(-1); if ( m_Animation == OldAnimation ) m_Animation = (WeaponAnimation)(-1); if ( UseSkillMod && m_AccuracyLevel != WeaponAccuracyLevel.Regular && Parent is Mobile ) { m_SkillMod = new DefaultSkillMod( AccuracySkill, true, (int)m_AccuracyLevel * AccuracySkillBonus); ((Mobile)Parent).AddSkillMod( m_SkillMod ); } break; } } if ( Core.AOS && Parent is Mobile ) m_AosSkillBonuses.AddTo( (Mobile)Parent ); int strBonus = m_AosAttributes.BonusStr; int dexBonus = m_AosAttributes.BonusDex; int intBonus = m_AosAttributes.BonusInt; if ( this.Parent is Mobile && (strBonus != 0 || dexBonus != 0 || intBonus != 0) ) { Mobile m = (Mobile)this.Parent; string modName = this.Serial.ToString(); if ( strBonus != 0 ) m.AddStatMod( new StatMod( StatType.Str, modName + "Str", strBonus, TimeSpan.Zero ) ); if ( dexBonus != 0 ) m.AddStatMod( new StatMod( StatType.Dex, modName + "Dex", dexBonus, TimeSpan.Zero ) ); if ( intBonus != 0 ) m.AddStatMod( new StatMod( StatType.Int, modName + "Int", intBonus, TimeSpan.Zero ) ); } if ( Parent is Mobile ) ((Mobile)Parent).CheckStatTimers(); if ( m_Hits <= 0 && m_MaxHits <= 0 ) { m_Hits = m_MaxHits = Utility.RandomMinMax( InitMinHits, InitMaxHits ); } if ( version < 6 ) m_PlayerConstructed = true; // we don't know, so, assume it's crafted }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); version = reader.ReadInt(); if (version > 8) m_RelockOnClose = reader.ReadBool(); if (version > 7) m_Picker = reader.ReadMobile(); if( version > 6 ) m_ClosesAutomatically = reader.ReadBool(); m_TrapLevel = reader.ReadInt(); m_TrapPower = reader.ReadInt(); m_TrapType = (TrapType)reader.ReadInt(); m_TrapOnLockpick = reader.ReadBool(); m_RequiredSkill = reader.ReadInt(); m_MaxLockLevel = reader.ReadInt(); m_LockLevel = reader.ReadInt(); m_KeyValue = reader.ReadUInt(); m_Open = reader.ReadBool(); m_Locked = reader.ReadBool(); m_OpenedID = reader.ReadInt(); m_ClosedID = reader.ReadInt(); m_OpenedSound = reader.ReadInt(); m_ClosedSound = reader.ReadInt(); m_Offset = reader.ReadPoint3D(); m_Link = reader.ReadItem() as BaseDoor; m_Timer = new InternalTimer( this ); if ( m_Open && m_ClosesAutomatically ) m_Timer.Start(); if( this.LockLevel < 100 ) this.LockLevel = 100; if( this.RequiredSkill < 100 ) this.RequiredSkill = 100; }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 7: { m_Locker = reader.ReadMobile(); goto case 6; } case 6: { this.m_Crafter = reader.ReadMobile(); goto case 5; } case 5: { this.m_IsShipwreckedItem = reader.ReadBool(); goto case 4; } case 4: { this.m_RequiredSkill = reader.ReadInt(); goto case 3; } case 3: { this.m_MaxLockLevel = reader.ReadInt(); goto case 2; } case 2: { this.m_KeyValue = reader.ReadUInt(); goto case 1; } case 1: { this.m_LockLevel = reader.ReadInt(); goto case 0; } case 0: { if (version < 3) { this.m_MaxLockLevel = 100; } if (version < 4) { if ((this.m_MaxLockLevel - this.m_LockLevel) == 40) { this.m_RequiredSkill = this.m_LockLevel + 6; this.m_LockLevel = this.m_RequiredSkill - 10; this.m_MaxLockLevel = this.m_RequiredSkill + 39; } else { this.m_RequiredSkill = this.m_LockLevel; } } this.m_Locked = reader.ReadBool(); break; } } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 1: { m_CustomClosedID = reader.ReadInt(); m_CustomOpenedID = reader.ReadInt(); m_Facing = (DoorFacing)reader.ReadInt(); m_KeyValue = reader.ReadUInt(); m_Open = reader.ReadBool(); m_Locked = reader.ReadBool(); m_OpenedID = reader.ReadInt(); m_ClosedID = reader.ReadInt(); m_OpenedSound = reader.ReadInt(); m_ClosedSound = reader.ReadInt(); m_Offset = reader.ReadPoint3D(); m_Link = reader.ReadItem() as BaseDoor; m_Timer = new InternalTimer( this ); if ( m_Open ) m_Timer.Start(); break; // NO FALLTHROUGH } case 0: { m_KeyValue = reader.ReadUInt(); m_Open = reader.ReadBool(); m_Locked = reader.ReadBool(); m_OpenedID = reader.ReadInt(); m_ClosedID = reader.ReadInt(); m_OpenedSound = reader.ReadInt(); m_ClosedSound = reader.ReadInt(); m_Offset = reader.ReadPoint3D(); m_Link = reader.ReadItem() as BaseDoor; m_Timer = new InternalTimer( this ); if ( m_Open ) m_Timer.Start(); // bring ver 0 up to ver 1 for (int i = 0; i < 8; i++) { if (m_Offset == m_Offsets[i]) { m_OpenedID -= 2 * i; m_ClosedID -= 2 * i; m_CustomClosedID = -1; m_CustomOpenedID = -1; m_Offset = Point3D.Zero; m_Facing = (DoorFacing)i; break; } } if (m_Offset != Point3D.Zero) { m_Facing = DoorFacing.EastCCW; m_CustomOpenedID = m_OpenedID; m_CustomClosedID = m_ClosedID; } break; } } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch ( version ) { case 0: drawing = reader.ReadUInt(); for (uint i = 0; i < jackpot.Length; i++) jackpot[i] = reader.ReadULong(); for (uint i = 0; i < awards.Length; i++) awards[i] = reader.ReadULong(); award = reader.ReadULong(); given = reader.ReadULong(); destroyed = reader.ReadULong(); mode = (LotteryBasketMode)reader.ReadInt(); if (reader.ReadBool()) { outcome = new uint[LotteryConstants.Picks]; for (uint p = 0; p < LotteryConstants.Picks; p++) outcome[p] = reader.ReadUInt(); } uint count = reader.ReadUInt(); for (uint i = 0; i < count; i++) { int id = reader.ReadInt(); uint[] data = new uint[LotteryConstants.Picks]; for (uint p = 0; p < LotteryConstants.Picks; p++) data[p] = reader.ReadUInt(); RegisteredTicket rt = new RegisteredTicket(id, data); rt.Class = reader.ReadInt(); tickets[id] = rt; } count = reader.ReadUInt(); for (uint i = 0; i < count; i++) { int id = reader.ReadInt(); uint[] data = new uint[LotteryConstants.Picks]; for (uint p = 0; p < LotteryConstants.Picks; p++) data[p] = reader.ReadUInt(); incoming[id] = new RegisteredTicket(id, data); } board = reader.ReadItem(); itemPrize = reader.ReadBool(); break; case 1: drawing = reader.ReadUInt(); for (uint i = 0; i < drawingCount.Length; i++) drawingCount[i] = reader.ReadUInt(); for (uint i = 0; i < jackpot.Length; i++) jackpot[i] = reader.ReadULong(); for (uint i = 0; i < awards.Length; i++) awards[i] = reader.ReadULong(); for (uint i = 0; i < winners.Length; i++) winners[i] = reader.ReadInt(); oldParticipants = reader.ReadUInt(); award = reader.ReadULong(); given = reader.ReadULong(); destroyed = reader.ReadULong(); mode = (LotteryBasketMode)reader.ReadInt(); if (reader.ReadBool()) { outcome = new uint[LotteryConstants.Picks]; for (uint p = 0; p < LotteryConstants.Picks; p++) outcome[p] = reader.ReadUInt(); } count = reader.ReadUInt(); for (uint i = 0; i < count; i++) { int id = reader.ReadInt(); uint[] data = new uint[LotteryConstants.Picks]; for (uint p = 0; p < LotteryConstants.Picks; p++) data[p] = reader.ReadUInt(); RegisteredTicket rt = new RegisteredTicket(id, data); rt.Class = reader.ReadInt(); tickets[id] = rt; } count = reader.ReadUInt(); for (uint i = 0; i < count; i++) { int id = reader.ReadInt(); uint[] data = new uint[LotteryConstants.Picks]; for (uint p = 0; p < LotteryConstants.Picks; p++) data[p] = reader.ReadUInt(); incoming[id] = new RegisteredTicket(id, data); } board = reader.ReadItem(); itemPrize = reader.ReadBool(); break; } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 1: { key_KeyVal = reader.ReadUInt(); key_Description = reader.ReadString(); key_Max = reader.ReadInt(); key_Delay = TimeSpan.Parse(reader.ReadString()); i_Door = reader.ReadItem(); goto case 0; } case 0: { m_SpawnRange = reader.ReadInt(); m_WayPoint = reader.ReadItem() as WayPoint; m_MinDelay = reader.ReadTimeSpan(); m_MaxDelay = reader.ReadTimeSpan(); m_Count = reader.ReadInt(); m_Team = reader.ReadInt(); m_HomeRange = reader.ReadInt(); m_Running = reader.ReadBool(); TimeSpan ts = TimeSpan.Zero; if (m_Running) { ts = reader.ReadDeltaTime() - DateTime.Now; } int size = reader.ReadInt(); m_CreaturesName = new ArrayList(size); for (int i = 0; i < size; ++i) { string typeName = reader.ReadString(); m_CreaturesName.Add(typeName); if (SpawnerType.GetType(typeName) == null) { if (m_WarnTimer == null) { m_WarnTimer = new gWarnTimer(); } m_WarnTimer.Add(Location, Map, typeName); } } int count = reader.ReadInt(); m_Creatures = new ArrayList(count); for (int i = 0; i < count; ++i) { IEntity e = World.FindEntity(reader.ReadInt()); if (e != null) { m_Creatures.Add(e); } } if (m_Running) { DoTimer(ts); } break; } } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 7: { // remove m_TrapOnLockpick // see case 6 goto case 6; } case 6: { m_IsShipwreckedItem = reader.ReadBool(); if (version < 7) { reader.ReadBool(); // m_TrapOnLockpick } goto case 5; } case 5: { m_AutoReset = reader.ReadBool(); m_AutoResetTime = reader.ReadTimeSpan(); if (m_AutoReset == true) { m_AutoResetTimer = new AutoResetTimer(this, m_AutoResetTime); m_AutoResetTimer.Start(); } goto case 4; } case 4: { m_RequiredSkill = reader.ReadInt(); goto case 3; } case 3: { m_MaxLockLevel = reader.ReadInt(); goto case 2; } case 2: { m_KeyValue = reader.ReadUInt(); goto case 1; } case 1: { m_LockLevel = reader.ReadInt(); goto case 0; } case 0: { if (version < 3) m_MaxLockLevel = 100; if (version < 4) { if ((m_MaxLockLevel - m_LockLevel) == 40) { m_RequiredSkill = m_LockLevel + 6; m_LockLevel = m_RequiredSkill - 10; m_LockLevel = m_RequiredSkill + 39; } else { m_RequiredSkill = m_LockLevel; } } m_Locked = reader.ReadBool(); break; } } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 0: { m_KeyValue = reader.ReadUInt(); m_Open = reader.ReadBool(); m_Locked = reader.ReadBool(); m_OpenedID = reader.ReadInt(); m_ClosedID = reader.ReadInt(); m_OpenedSound = reader.ReadInt(); m_ClosedSound = reader.ReadInt(); m_Offset = reader.ReadPoint3D(); m_Link = reader.ReadItem() as BaseDoor; m_Timer = new InternalTimer( this ); if ( m_Open ) m_Timer.Start(); break; } } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch( version ) { case 0: { i_Description = reader.ReadString(); i_KeyVal = reader.ReadUInt(); i_Uses = reader.ReadInt(); i_Max = reader.ReadInt(); i_Delay = TimeSpan.Parse( reader.ReadString() ); break; } } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 8: { m_PlayerConstructed = reader.ReadBool(); m_Resource = (CraftResource)reader.ReadInt(); m_Quality = (ItemQuality)reader.ReadInt(); goto case 7; } case 7: { m_Crafter = reader.ReadMobile(); goto case 6; } case 6: { m_IsShipwreckedItem = reader.ReadBool(); goto case 5; } case 5: { m_TrapOnLockpick = reader.ReadBool(); goto case 4; } case 4: { m_RequiredSkill = reader.ReadInt(); goto case 3; } case 3: { m_MaxLockLevel = reader.ReadInt(); goto case 2; } case 2: { m_KeyValue = reader.ReadUInt(); goto case 1; } case 1: { m_LockLevel = reader.ReadInt(); goto case 0; } case 0: { if (version < 3) { m_MaxLockLevel = 100; } if (version < 4) { if ((m_MaxLockLevel - m_LockLevel) == 40) { m_RequiredSkill = m_LockLevel + 6; m_LockLevel = m_RequiredSkill - 10; m_MaxLockLevel = m_RequiredSkill + 39; } else { m_RequiredSkill = m_LockLevel; } } m_Locked = reader.ReadBool(); break; } } }
public void Deserialize(GenericReader reader) { Flag = reader.ReadFlag <DataType>(); Type = Flag.ToType(); switch (Flag) { case DataType.Null: Value = null; break; case DataType.Bool: Value = reader.ReadBool(); break; case DataType.Char: Value = reader.ReadChar(); break; case DataType.Byte: Value = reader.ReadByte(); break; case DataType.SByte: Value = reader.ReadSByte(); break; case DataType.Short: Value = reader.ReadShort(); break; case DataType.UShort: Value = reader.ReadUShort(); break; case DataType.Int: Value = reader.ReadInt(); break; case DataType.UInt: Value = reader.ReadUInt(); break; case DataType.Long: Value = reader.ReadLong(); break; case DataType.ULong: Value = reader.ReadULong(); break; case DataType.Float: Value = reader.ReadFloat(); break; case DataType.Decimal: Value = reader.ReadDecimal(); break; case DataType.Double: Value = reader.ReadDouble(); break; case DataType.String: Value = reader.ReadString() ?? String.Empty; break; case DataType.DateTime: Value = reader.ReadDateTime(); break; case DataType.TimeSpan: Value = reader.ReadTimeSpan(); break; } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 6: { m_IsShipwreckedItem = reader.ReadBool(); goto case 5; } case 5: { m_TrapOnLockpick = reader.ReadBool(); goto case 4; } case 4: { m_RequiredSkill = reader.ReadInt(); goto case 3; } case 3: { m_MaxLockLevel = reader.ReadInt(); goto case 2; } case 2: { m_KeyValue = reader.ReadUInt(); goto case 1; } case 1: { m_LockLevel = reader.ReadInt(); goto case 0; } case 0: { if (version < 3) { m_MaxLockLevel = 100; } if (version < 4) { if ((m_MaxLockLevel - m_LockLevel) == 40) { m_RequiredSkill = m_LockLevel + 6; m_LockLevel = m_RequiredSkill - 10; m_MaxLockLevel = m_RequiredSkill + 39; } else { m_RequiredSkill = m_LockLevel; } } m_Locked = reader.ReadBool(); break; } } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); // version 0 this.m_Names = reader.ReadUInt(); this.m_Values = new int[reader.ReadEncodedInt()]; for (int i = 0; i < this.m_Values.Length; ++i) this.m_Values[i] = reader.ReadEncodedInt(); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 6: { m_IsShipwreckedItem = reader.ReadBool(); goto case 5; } case 5: { m_TrapOnLockpick = reader.ReadBool(); goto case 4; } case 4: { m_RequiredSkill = reader.ReadInt(); goto case 3; } case 3: { m_MaxLockLevel = reader.ReadInt(); goto case 2; } case 2: { m_KeyValue = reader.ReadUInt(); goto case 1; } case 1: { m_LockLevel = reader.ReadInt(); goto case 0; } case 0: { if ( version < 3 ) m_MaxLockLevel = 100; if ( version < 4 ) { if ( (m_MaxLockLevel - m_LockLevel) == 40 ) { m_RequiredSkill = m_LockLevel + 6; m_LockLevel = m_RequiredSkill - 10; m_MaxLockLevel = m_RequiredSkill + 39; } else { m_RequiredSkill = m_LockLevel; } } m_Locked = reader.ReadBool(); break; } } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); int count; bool loadedDynamicDecay = false; switch ( version ) { case 16: { int stage = reader.ReadInt(); if (stage != -1) { m_CurrentStage = (DecayLevel)stage; m_NextDecayStage = reader.ReadDateTime(); loadedDynamicDecay = true; } goto case 15; } case 15: //Maka { m_HouseKeyVal = reader.ReadUInt(); goto case 14; } case 14: { m_RelativeBanLocation = reader.ReadPoint3D(); goto case 13; } case 13: // removed ban location serialization case 12: { m_VendorRentalContracts = reader.ReadItemList(); m_InternalizedVendors = reader.ReadMobileList(); int relocatedCount = reader.ReadEncodedInt(); for ( int i = 0; i < relocatedCount; i++ ) { Point3D relLocation = reader.ReadPoint3D(); IEntity entity = World.FindEntity( reader.ReadInt() ); if ( entity != null ) m_RelocatedEntities.Add( new RelocatedEntity( entity, relLocation ) ); } int inventoryCount = reader.ReadEncodedInt(); for ( int i = 0; i < inventoryCount; i++ ) { VendorInventory inventory = new VendorInventory( this, reader ); m_VendorInventories.Add( inventory ); } goto case 11; } case 11: { m_LastRefreshed = reader.ReadDateTime(); m_RestrictDecay = reader.ReadBool(); goto case 10; } case 10: // just a signal for updates case 9: { m_Visits = reader.ReadInt(); goto case 8; } case 8: { m_Price = reader.ReadInt(); goto case 7; } case 7: { m_Access = reader.ReadMobileList(); goto case 6; } case 6: { m_BuiltOn = reader.ReadDateTime(); m_LastTraded = reader.ReadDateTime(); goto case 5; } case 5: // just removed fields case 4: { m_Addons = reader.ReadItemList(); goto case 3; } case 3: { count = reader.ReadInt(); m_Secures = new ArrayList( count ); for ( int i = 0; i < count; ++i ) { SecureInfo info = new SecureInfo( reader ); if ( info.Item != null ) { info.Item.IsSecure = true; m_Secures.Add( info ); } } goto case 2; } case 2: { m_Public = reader.ReadBool(); goto case 1; } case 1: { if ( version < 13 ) reader.ReadPoint3D(); // house ban location goto case 0; } case 0: { if ( version < 14 ) m_RelativeBanLocation = BaseBanLocation; if ( version < 12 ) { m_VendorRentalContracts = new ArrayList(); m_InternalizedVendors = new ArrayList(); } if ( version < 4 ) m_Addons = new ArrayList(); if ( version < 7 ) m_Access = new ArrayList(); if ( version < 8 ) m_Price = DefaultPrice; m_Owner = reader.ReadMobile(); if ( version < 5 ) { count = reader.ReadInt(); for(int i=0;i<count;i++) reader.ReadRect2D(); } UpdateRegion(); m_CoOwners = reader.ReadMobileList(); m_Friends = reader.ReadMobileList(); m_Bans = reader.ReadMobileList(); m_Sign = reader.ReadItem() as HouseSign; m_Trash = reader.ReadItem() as TrashBarrel; m_Doors = reader.ReadItemList(); m_LockDowns = reader.ReadItemList(); for ( int i = 0; i < m_LockDowns.Count; ++i ) ((Item)m_LockDowns[i]).IsLockedDown = true; for ( int i = 0; i < m_VendorRentalContracts.Count; ++i ) ((Item)m_VendorRentalContracts[i]).IsLockedDown = true; if ( version < 3 ) { ArrayList items = reader.ReadItemList(); m_Secures = new ArrayList( items.Count ); for ( int i = 0; i < items.Count; ++i ) { Container c = items[i] as Container; if ( c != null ) { c.IsSecure = true; m_Secures.Add( new SecureInfo( c, SecureLevel.CoOwners ) ); } } } m_MaxLockDowns = reader.ReadInt(); m_MaxSecures = reader.ReadInt(); if ( (Map == null || Map == Map.Internal) && Location == Point3D.Zero ) Delete(); if ( m_Owner != null ) { List<BaseHouse> list = null; m_Table.TryGetValue( m_Owner, out list ); if ( list == null ) m_Table[m_Owner] = list = new List<BaseHouse>(); list.Add( this ); } break; } } if ( version <= 1 ) ChangeSignType( 0xBD2 );//private house, plain brass sign if ( version < 10 ) { /* NOTE: This can exceed the house lockdown limit. It must be this way, because * we do not want players' items to decay without them knowing. Or not even * having a chance to fix it themselves. */ Timer.DelayCall( TimeSpan.Zero, new TimerCallback( FixLockdowns_Sandbox ) ); } if ( version < 11 ) m_LastRefreshed = DateTime.Now + TimeSpan.FromHours( 24 * Utility.RandomDouble() ); if (DynamicDecay.Enabled && !loadedDynamicDecay) { DecayLevel old = GetOldDecayLevel(); if (old == DecayLevel.DemolitionPending) old = DecayLevel.Collapsed; SetDynamicDecay(old); } if ( !CheckDecay() ) { if ( RelocatedEntities.Count > 0 ) Timer.DelayCall( TimeSpan.Zero, new TimerCallback( RestoreRelocatedEntities ) ); if ( m_Owner == null && m_Friends.Count == 0 && m_CoOwners.Count == 0 ) Timer.DelayCall( TimeSpan.FromSeconds( 10.0 ), new TimerCallback( Delete ) ); } }