public void Read(GenericReader reader) { int version = reader.ReadInt(); Collection = (Collection)reader.ReadInt(); Points = reader.ReadLong(); StartTier = reader.ReadLong(); NextTier = reader.ReadLong(); DailyDecay = reader.ReadLong(); Tier = reader.ReadInt(); DonationTitle = QuestReader.Object(reader); for (int i = reader.ReadInt(); i > 0; i--) { List <object> list = new List <object>(); for (int j = reader.ReadInt(); j > 0; j--) { list.Add(QuestReader.Object(reader)); } Tiers.Add(list); } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); m_Points = reader.ReadLong(); m_StartTier = reader.ReadLong(); m_NextTier = reader.ReadLong(); m_DailyDecay = reader.ReadLong(); m_Tier = reader.ReadInt(); m_DonationTitle = QuestReader.Object(reader); Init(); for (int i = reader.ReadInt(); i > 0; i--) { List <object> list = new List <object>(); for (int j = reader.ReadInt(); j > 0; j--) { list.Add(QuestReader.Object(reader)); } m_Tiers.Add(list); } if (CantWalk) { Frozen = true; } }
public SearchCriteria(GenericReader reader) { int version = reader.ReadInt(); Details = new List <SearchDetail>(); if (version > 1) { Auction = reader.ReadBool(); } if (version != 0) { EntryPrice = reader.ReadBool(); } SearchType = (Layer)reader.ReadInt(); SearchName = reader.ReadString(); SortBy = (SortBy)reader.ReadInt(); MinPrice = reader.ReadLong(); MaxPrice = reader.ReadLong(); int count = reader.ReadInt(); for (int i = 0; i < count; i++) { Details.Add(new SearchDetail(reader)); } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); this.m_Points = reader.ReadLong(); this.m_StartTier = reader.ReadLong(); this.m_NextTier = reader.ReadLong(); this.m_DailyDecay = reader.ReadLong(); this.m_Tier = reader.ReadInt(); this.Init(); for (int i = reader.ReadInt(); i > 0; i--) { List <object> list = new List <object>(); for (int j = reader.ReadInt(); j > 0; j--) { list.Add(QuestReader.Object(reader)); } this.m_Tiers.Add(list); } }
public void Deserialize(GenericReader reader) { m_ColorStates[0] = reader.ReadLong(); m_ColorStates[1] = reader.ReadLong(); m_ColorStates[2] = reader.ReadLong(); m_ColorStates[3] = reader.ReadLong(); UnlockColor(0, EColorRarity.Common); // make sure the first common color is unlocked }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); reader.GetVersion(); FlagsCaptured = reader.ReadLong(); FlagsDropped = reader.ReadLong(); FlagsStolen = reader.ReadLong(); FlagsReturned = reader.ReadLong(); }
public ExchangeDay(GenericReader reader) { int version = reader.ReadInt(); HighestPrice = reader.ReadDouble(); LowestPrice = reader.ReadDouble(); TotalQuantity = reader.ReadLong(); TotalRevenue = reader.ReadLong(); Average = reader.ReadDouble(); Day = reader.ReadInt(); }
public Auction(AuctionSafe safe, GenericReader reader) { Safe = safe; int version = reader.ReadInt(); Owner = reader.ReadMobile(); AuctionItem = reader.ReadItem(); CurrentBid = reader.ReadLong(); StartBid = reader.ReadLong(); Buyout = reader.ReadLong(); Description = reader.ReadString(); Duration = reader.ReadInt(); StartTime = reader.ReadDateTime(); OnGoing = reader.ReadBool(); Bids = new List <BidEntry>(); int count = reader.ReadInt(); for (int i = 0; i < count; i++) { PlayerMobile m = reader.ReadMobile() as PlayerMobile; BidEntry entry = new BidEntry(m, reader); if (m != null) { Bids.Add(entry); if (entry.CurrentBid > 0 && (HighestBid == null || entry.CurrentBid > HighestBid.CurrentBid)) { HighestBid = entry; } } } count = reader.ReadInt(); if (count > 0) { BidHistory = new List <HistoryEntry>(); } for (int i = 0; i < count; i++) { BidHistory.Add(new HistoryEntry(reader)); } if (HasBegun) { Auctions.Add(this); } }
private static void ReadIndex( GenericReader idx, out Type type, out Serial serial, out Serial parent, out long index, out long length) { type = idx.ReadType(); serial = idx.ReadInt(); parent = idx.ReadInt(); index = idx.ReadLong(); length = idx.ReadLong(); }
public void Deserialize(GenericReader reader) { var version = reader.ReadInt(); Deleted = reader.ReadBool(); Owner = reader.ReadMobile <PlayerMobile>(); switch (version) { case 0: { _Points = reader.ReadLong(); History = reader.ReadBlock(r => r.ReadTypeCreate <PvPProfileHistory>(this, r)) ?? new PvPProfileHistory(this); Subscriptions = reader.ReadBlockList( r => { var serial = r.ReadTypeCreate <PvPSerial>(r) ?? new PvPSerial(r); return(AutoPvP.FindBattleByID(serial)); }, Subscriptions); } break; } }
public void Deserialize(GenericReader reader) { int version = reader.GetVersion(); switch (version) { case 0: { Account = reader.ReadAccount(); Credits = reader.ReadLong(); Transactions = reader.ReadDictionary( () => { if (reader.ReadBool()) { DonationTransaction t = new DonationTransaction(reader); return(new KeyValuePair <string, DonationTransaction>(t.ID, t)); } return(new KeyValuePair <string, DonationTransaction>(null, null)); }); Gifts = reader.ReadDictionary( () => { string k = reader.ReadString(); string v = reader.ReadString(); return(new KeyValuePair <string, string>(k, v)); }); } break; } }
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.ReadLong(); if (m_Boat == null) { Delete(); } break; } } if (IsOpen) { m_CloseTimer = new CloseTimer(this); m_CloseTimer.Start(); } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); m_market = reader.ReadString(); m_type = reader.ReadInt(); m_uniqueID = reader.ReadLong(); string type = reader.ReadString(); if (type != null) { m_itemType = ScriptCompiler.FindTypeByFullName(type); } if (version >= 2) { m_amountStart = reader.ReadInt(); m_amountCurrent = reader.ReadInt(); m_unitPrice = reader.ReadInt(); } else { m_amountStart = 1; m_amountCurrent = 1; m_unitPrice = 1; } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 1: m_Instance = reader.ReadItem() as PrimevalLichPuzzle; m_Altar = reader.ReadItem() as ChampionSpawn; m_Key = reader.ReadLong(); m_Successful = reader.ReadMobile(); m_Levers = reader.ReadStrongItemList <PrimevalLichPuzzleLever>(); break; } if (null == m_Levers) { m_Levers = new List <PrimevalLichPuzzleLever>(); } // if ( null != m_Instance && m_Instance.Deleted && this == m_Instance ) // { // m_Instance = null; // return; // } // // remove if no altar exists // if ( null == m_Altar ) // Timer.DelayCall( TimeSpan.FromSeconds( 0.0 ), new TimerCallback( Delete ) ); // ResetLevers(); }
public void Deserialize(GenericReader reader) { int version = reader.GetVersion(); switch (version) { case 0: { ID = reader.ReadString(); _State = reader.ReadFlag <DonationTransactionState>(); Account = reader.ReadAccount(); Email = reader.ReadString(); Total = reader.ReadDecimal(); _Credit = reader.ReadLong(); _Time = reader.ReadDouble(); Version = reader.ReadInt(); _InternalVersion = reader.ReadInt(); _Notes = reader.ReadString(); _Extra = reader.ReadString(); DeliverFrom = reader.ReadMobile(); DeliverTo = reader.ReadMobile(); DeliveryTime = reader.ReadDouble(); } break; } }
public void Deserialize(GenericReader reader) { int version = reader.ReadInt(); switch (version) { case 0: { m_TransactionID = reader.ReadLong(); m_Date = reader.ReadDateTime(); m_TransType = (TransactionType)reader.ReadInt(); ResName = reader.ReadString(); Amount = reader.ReadInt(); Price = reader.ReadDouble(); NewAmount = reader.ReadInt(); VendorID = (Serial)reader.ReadInt(); break; } default: { Console.WriteLine("Error: Invalid save version for Resource Transaction."); break; } } }
public void Deserialize(GenericReader reader) { var version = reader.GetVersion(); switch (version) { case 1: Bonus = reader.ReadLong(); goto case 0; case 0: { ID = reader.ReadString(); _State = reader.ReadFlag <TransactionState>(); Account = reader.ReadAccount(); Email = reader.ReadString(); Total = reader.ReadDouble(); Credit = reader.ReadLong(); Time = version > 0 ? reader.ReadTimeStamp() : reader.ReadDouble(); Version = reader.ReadInt(); if (version < 1) { reader.ReadInt(); // InternalVersion } Notes = reader.ReadString(); Extra = reader.ReadString(); if (version > 0) { DeliveredTo = reader.ReadMobile(); DeliveryTime = reader.ReadTimeStamp(); } else { reader.ReadMobile(); // DeliverFrom DeliveredTo = reader.ReadMobile(); DeliveryTime = reader.ReadDouble(); } } break; } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); reader.GetVersion(); PointsTotal = reader.ReadLong(); PointsGained = reader.ReadLong(); PointsLost = reader.ReadLong(); Kills = reader.ReadLong(); Deaths = reader.ReadLong(); Resurrections = reader.ReadLong(); DamageTaken = reader.ReadLong(); DamageDone = reader.ReadLong(); HealingTaken = reader.ReadLong(); HealingDone = reader.ReadLong(); }
public BidEntry(PlayerMobile m, GenericReader reader) { Mobile = m; int version = reader.ReadInt(); CurrentBid = reader.ReadLong(); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 0: Gold = reader.ReadLong(); Tokens = reader.ReadLong(); break; case 1: DateLastPaid = reader.ReadDateTime(); goto case 0; } }
public HistoryEntry(GenericReader reader) { int version = reader.ReadInt(); Mobile = reader.ReadMobile(); Bid = reader.ReadLong(); ShowRealBid = reader.ReadBool(); BidTime = reader.ReadDateTime(); }
private bool FindPosition(GenericReader rcreader) { ((BinaryFileReader)rcreader).Seek(0, SeekOrigin.Begin); if (rcreader.End()) { return(false); } int rcversion = rcreader.ReadInt(); switch (rcversion) { case 0: { long tableposition = rcreader.ReadLong(); Console.WriteLine("Tableposition: {0}", tableposition); ((BinaryFileReader)rcreader).Seek(tableposition, SeekOrigin.Begin); while (!rcreader.End()) { string typename = rcreader.ReadString(); long location = rcreader.ReadLong(); Console.WriteLine("{0}, {1}", typename, location); if (typename == m_Type.FullName) { ((BinaryFileReader)rcreader).Seek(location, SeekOrigin.Begin); return(true); } } break; } default: { throw new Exception("ResourcePool error: Invalid consignments.dat save version"); } } return(false); }
public void Deserialize(GenericReader reader) { var version = reader.GetVersion(); switch (version) { case 1: case 0: { Account = reader.ReadAccount(); Credit = reader.ReadLong(); Transactions = reader.ReadDictionary( r => { string k = null; DonationTransaction v = null; if (r.ReadBool()) { if (version > 0) { k = r.ReadString(); v = AutoDonate.Transactions.GetValue(k); } else { v = new DonationTransaction(r); k = v.ID; AutoDonate.Transactions[k] = v; } } return new KeyValuePair<string, DonationTransaction>(k, v); }, Transactions); if (version < 1) // Gifts { reader.ReadDictionary( () => { var k = reader.ReadString(); var v = reader.ReadString(); return new KeyValuePair<string, string>(k, v); }); } } break; } }
public BestWave(GenericReader reader) { int version = reader.ReadInt(); Waves = reader.ReadInt(); TotalScore = reader.ReadLong(); Date = reader.ReadString(); Score = new Dictionary <Mobile, long>(); int cnt = reader.ReadInt(); for (int i = 0; i < cnt; i++) { Mobile m = reader.ReadMobile(); long score = reader.ReadLong(); if (m != null) { Score[m] = score; } } }
private static void ReadLength(GenericReader idx, bool reset, out long length, out int count) { var index = idx.Seek(0, SeekOrigin.Current); idx.Seek(4, SeekOrigin.Begin); length = idx.ReadLong(); count = idx.ReadInt(); if (reset) { idx.Seek(index, SeekOrigin.Begin); } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); this.Init(); if (version == 0) { this.m_Points = reader.ReadLong(); this.m_StartTier = reader.ReadLong(); this.m_NextTier = reader.ReadLong(); this.m_DailyDecay = reader.ReadLong(); this.m_Tier = reader.ReadInt(); this.m_DonationTitle = QuestReader.Object(reader); for (int i = reader.ReadInt(); i > 0; i--) { List <object> list = new List <object>(); for (int j = reader.ReadInt(); j > 0; j--) { list.Add(QuestReader.Object(reader)); } this.m_Tiers.Add(list); } CollectionsSystem.RegisterMobile(this); } if (this.CantWalk) { this.Frozen = true; } }
public override void Deserialize(GenericReader reader) { City = (City)reader.ReadInt(); base.Deserialize(reader); int version = reader.ReadInt(); CompletedTrades = reader.ReadInt(); Governor = reader.ReadMobile(); GovernorElect = reader.ReadMobile(); PendingGovernor = reader.ReadBool(); Treasury = reader.ReadLong(); ActiveTradeDeal = (TradeDeal)reader.ReadInt(); TradeDealStart = reader.ReadDateTime(); NextTradeDealCheck = reader.ReadDateTime(); CanUtilize = reader.ReadBool(); Headline = reader.ReadString(); Body = reader.ReadString(); PostedOn = reader.ReadDateTime(); if (reader.ReadInt() == 0) { Election = new CityElection(this, reader); } else { Election = new CityElection(this); } if (this.City == City.Britain) { _CitizenWait = new Dictionary <Mobile, DateTime>(); int count = reader.ReadInt(); for (int i = 0; i < count; i++) { Mobile m = reader.ReadMobile(); DateTime dt = reader.ReadDateTime(); if (m != null && dt > DateTime.UtcNow) { _CitizenWait[m] = dt; } } Timer.DelayCall(TimeSpan.FromSeconds(10), TimeSpan.FromSeconds(10), OnTick); } }
public static bool SubRead(GenericReader reader, Action <GenericReader> deserializer) { if (reader == null) { return(false); } using (var s = new MemoryStream()) { var length = reader.ReadLong(); while (s.Length < length) { s.WriteByte(reader.ReadByte()); } if (deserializer != null) { s.Position = 0; var r = new BinaryFileReader(new BinaryReader(s)); try { deserializer(r); } catch (Exception e) { Console.WriteLine("Quest Load Failure: {0}", Utility.FormatDelegate(deserializer)); Console.WriteLine(e); return(false); } finally { r.Close(); } } } return(true); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); if (version == 1) { m_CanDropInWhenLocked = reader.ReadBool(); m_CanSeeInWhenLocked = reader.ReadBool(); } m_IsShipwreckedItem = reader.ReadBool(); m_TrapOnLockpick = reader.ReadBool(); m_RequiredSkill = reader.ReadInt(); m_MaxLockLevel = reader.ReadInt(); m_KeyValue = reader.ReadLong(); m_LockLevel = reader.ReadInt(); m_Locked = reader.ReadBool(); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); Owner = reader.ReadMobile <PlayerMobile>(); switch (version) { case 0: { Credit = reader.ReadLong(); Registry = reader.ReadBlockList(() => new ConquestState(reader)); } break; } Sync(); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); m_MaxRange = reader.ReadInt(); m_Link = reader.ReadItem(); if (version < 2 || m_MaxRange == 0) { m_MaxRange = 3; } m_Description = reader.ReadString(); m_KeyVal = reader.ReadLong(); LootType = LootType.Blessed; }
public void Deserialize(GenericReader reader) { int version = reader.ReadInt(); //Category set by the collections this belongs to LastExchangeTime = reader.ReadDateTime(); LastPrice = reader.ReadDouble(); LastQuantity = reader.ReadInt(); AveragePrice = reader.ReadDouble(); HighestDayQuantity = reader.ReadLong(); HighestDayPrice = reader.ReadDouble(); LowestDayPrice = reader.ReadDouble(); HighestPrice = reader.ReadDouble(); LowestPrice = reader.ReadDouble(); TotalQuantity = reader.ReadLong(); int count = reader.ReadInt(); for (int i = 0; i < count; i++) { ExchangeDay ed = new ExchangeDay(reader); ExchangeDayList.Add(ed); if (i == count - 1) CurrentDay = ed; } count = reader.ReadInt(); for (int i = 0; i < count; i++) { BuyInfo bi = new BuyInfo(reader); BuyInfoList.Add(bi); bi.Info = this; } count = reader.ReadInt(); for (int i = 0; i < count; i++) { SellInfo si= new SellInfo(reader); SellInfoList.Add(si); si.Info = this; } m_SalesInfo1 = CustomSaving.DeserializeStringArray(reader); m_SalesInfo2 = CustomSaving.DeserializeStringArray(reader); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 29: { m_GauntletPoints = reader.ReadDouble(); m_SSNextSeed = reader.ReadDateTime(); m_SSSeedExpire = reader.ReadDateTime(); m_SSSeedLocation = reader.ReadPoint3D(); m_SSSeedMap = reader.ReadMap(); m_LevelExp = reader.ReadLong(); m_Exp = reader.ReadLong(); m_Level = reader.ReadInt(); m_ExpTitle = reader.ReadString(); m_VASTotalMonsterFame = reader.ReadInt(); m_Quests = QuestReader.Quests(reader, this); m_Chains = QuestReader.Chains(reader); m_Collections = new Dictionary<Collection, int>(); m_CollectionTitles = new List<object>(); for (int i = reader.ReadInt(); i > 0; i--) { m_Collections.Add((Collection)reader.ReadInt(), reader.ReadInt()); } for (int i = reader.ReadInt(); i > 0; i--) { m_CollectionTitles.Add(QuestReader.Object(reader)); } m_SelectedTitle = reader.ReadInt(); goto case 28; } case 28: { m_PeacedUntil = reader.ReadDateTime(); goto case 27; } case 27: { m_AnkhNextUse = reader.ReadDateTime(); goto case 26; } case 26: { m_AutoStabled = reader.ReadStrongMobileList(); goto case 25; } case 25: { int recipeCount = reader.ReadInt(); if (recipeCount > 0) { m_AcquiredRecipes = new Dictionary<int, bool>(); for (int i = 0; i < recipeCount; i++) { int r = reader.ReadInt(); if (reader.ReadBool()) //Don't add in recipies which we haven't gotten or have been removed { m_AcquiredRecipes.Add(r, true); } } } goto case 24; } case 24: { m_LastHonorLoss = reader.ReadDeltaTime(); goto case 23; } case 23: { m_ChampionTitles = new ChampionTitleInfo(reader); goto case 22; } case 22: { m_LastValorLoss = reader.ReadDateTime(); goto case 21; } case 21: { m_ToTItemsTurnedIn = reader.ReadEncodedInt(); m_ToTTotalMonsterFame = reader.ReadInt(); goto case 20; } case 20: { m_AllianceMessageHue = reader.ReadEncodedInt(); m_GuildMessageHue = reader.ReadEncodedInt(); goto case 19; } case 19: { int rank = reader.ReadEncodedInt(); int maxRank = RankDefinition.Ranks.Length - 1; if (rank > maxRank) { rank = maxRank; } m_GuildRank = RankDefinition.Ranks[rank]; m_LastOnline = reader.ReadDateTime(); goto case 18; } case 18: { m_SolenFriendship = (SolenFriendship)reader.ReadEncodedInt(); goto case 17; } case 17: // changed how DoneQuests is serialized case 16: { m_Quest = QuestSerializer.DeserializeQuest(reader); if (m_Quest != null) { m_Quest.From = this; } int count = reader.ReadEncodedInt(); if (count > 0) { m_DoneQuests = new List<QuestRestartInfo>(); for (int i = 0; i < count; ++i) { Type questType = QuestSerializer.ReadType(QuestSystem.QuestTypes, reader); DateTime restartTime; if (version < 17) { restartTime = DateTime.MaxValue; } else { restartTime = reader.ReadDateTime(); } m_DoneQuests.Add(new QuestRestartInfo(questType, restartTime)); } } m_Profession = reader.ReadEncodedInt(); goto case 15; } case 15: { m_LastCompassionLoss = reader.ReadDeltaTime(); goto case 14; } case 14: { m_CompassionGains = reader.ReadEncodedInt(); if (m_CompassionGains > 0) { m_NextCompassionDay = reader.ReadDeltaTime(); } goto case 13; } case 13: // just removed m_PayedInsurance list case 12: { m_BOBFilter = new BOBFilter(reader); goto case 11; } case 11: { if (version < 13) { var payed = reader.ReadStrongItemList(); for (int i = 0; i < payed.Count; ++i) { payed[i].PayedInsurance = true; } } goto case 10; } case 10: { if (reader.ReadBool()) { m_HairModID = reader.ReadInt(); m_HairModHue = reader.ReadInt(); m_BeardModID = reader.ReadInt(); m_BeardModHue = reader.ReadInt(); } goto case 9; } case 9: { SavagePaintExpiration = reader.ReadTimeSpan(); if (SavagePaintExpiration > TimeSpan.Zero) { BodyMod = (Female ? 184 : 183); HueMod = 0; } goto case 8; } case 8: { m_NpcGuild = (NpcGuild)reader.ReadInt(); m_NpcGuildJoinTime = reader.ReadDateTime(); m_NpcGuildGameTime = reader.ReadTimeSpan(); goto case 7; } case 7: { m_PermaFlags = reader.ReadStrongMobileList(); goto case 6; } case 6: { NextTailorBulkOrder = reader.ReadTimeSpan(); goto case 5; } case 5: { NextSmithBulkOrder = reader.ReadTimeSpan(); goto case 4; } case 4: { m_LastJusticeLoss = reader.ReadDeltaTime(); m_JusticeProtectors = reader.ReadStrongMobileList(); goto case 3; } case 3: { m_LastSacrificeGain = reader.ReadDeltaTime(); m_LastSacrificeLoss = reader.ReadDeltaTime(); m_AvailableResurrects = reader.ReadInt(); goto case 2; } case 2: { m_Flags = (PlayerFlag)reader.ReadInt(); goto case 1; } case 1: { m_LongTermElapse = reader.ReadTimeSpan(); m_ShortTermElapse = reader.ReadTimeSpan(); m_GameTime = reader.ReadTimeSpan(); goto case 0; } case 0: { if (version < 26) { m_AutoStabled = new List<Mobile>(); } break; } } if (version < 29) { m_SSNextSeed = m_SSSeedExpire = DateTime.UtcNow; m_SSSeedLocation = Point3D.Zero; } if (m_RecentlyReported == null) { m_RecentlyReported = new List<Mobile>(); } #region QueensLoyaltySystem if (version < 29) { m_LevelExp = 2000; m_Exp = 0; m_Level = 0; m_ExpTitle = "Friend of TerMur"; } #endregion #region Mondain's Legacy if (m_Quests == null) { m_Quests = new List<BaseQuest>(); } if (m_Chains == null) { m_Chains = new Dictionary<QuestChain, BaseChain>(); } if (m_DoneQuests == null) { m_DoneQuests = new List<QuestRestartInfo>(); } if (m_Collections == null) { m_Collections = new Dictionary<Collection, int>(); } if (m_CollectionTitles == null) { m_CollectionTitles = new List<object>(); } #endregion // Professions weren't verified on 1.0 RC0 if (!CharacterCreation.VerifyProfession(m_Profession)) { m_Profession = 0; } if (m_PermaFlags == null) { m_PermaFlags = new List<Mobile>(); } if (m_JusticeProtectors == null) { m_JusticeProtectors = new List<Mobile>(); } if (m_BOBFilter == null) { m_BOBFilter = new BOBFilter(); } if (m_GuildRank == null) { m_GuildRank = RankDefinition.Member; //Default to member if going from older version to new version (only time it should be null) } if (m_LastOnline == DateTime.MinValue && Account != null) { m_LastOnline = ((Account)Account).LastLogin; } if (m_ChampionTitles == null) { m_ChampionTitles = new ChampionTitleInfo(); } var list = Stabled; for (int i = 0; i < list.Count; ++i) { BaseCreature bc = list[i] as BaseCreature; if (bc != null) { bc.IsStabled = true; bc.StabledBy = this; } } CheckAtrophies(this); if (Hidden) //Hiding is the only buff where it has an effect that's serialized. { AddBuff(new BuffInfo(BuffIcon.HidingAndOrStealth, 1075655)); } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch ( version ) { case 1: m_Instance = reader.ReadItem() as PrimevalLichPuzzle; this.m_Altar = reader.ReadItem() as ChampionSpawn; this.m_Key = reader.ReadLong(); this.m_Successful = reader.ReadMobile(); this.m_Levers = reader.ReadStrongItemList<PrimevalLichPuzzleLever>(); break; } if (null == this.m_Levers) this.m_Levers = new List<PrimevalLichPuzzleLever>(); // if ( null != m_Instance && m_Instance.Deleted && this == m_Instance ) // { // m_Instance = null; // return; // } // // remove if no altar exists // if ( null == m_Altar ) // Timer.DelayCall( TimeSpan.FromSeconds( 0.0 ), new TimerCallback( Delete ) ); // ResetLevers(); }
public void Read(GenericReader reader) { int version = reader.ReadInt(); Collection = (Collection)reader.ReadInt(); Points = reader.ReadLong(); StartTier = reader.ReadLong(); NextTier = reader.ReadLong(); DailyDecay = reader.ReadLong(); Tier = reader.ReadInt(); DonationTitle = QuestReader.Object(reader); for (int i = reader.ReadInt(); i > 0; i--) { List<object> list = new List<object>(); for (int j = reader.ReadInt(); j > 0; j--) list.Add(QuestReader.Object(reader)); Tiers.Add(list); } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); this.m_Points = reader.ReadLong(); this.m_StartTier = reader.ReadLong(); this.m_NextTier = reader.ReadLong(); this.m_DailyDecay = reader.ReadLong(); this.m_Tier = reader.ReadInt(); this.m_DonationTitle = QuestReader.Object(reader); this.Init(); for (int i = reader.ReadInt(); i > 0; i --) { List<object> list = new List<object>(); for (int j = reader.ReadInt(); j > 0; j --) list.Add(QuestReader.Object(reader)); this.m_Tiers.Add(list); } if (this.CantWalk) this.Frozen = true; }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 14: { m_IsImbued = reader.ReadBool(); goto case 13; } case 13: case 12: { #region Runic Reforging m_ReforgedPrefix = (ReforgedPrefix)reader.ReadInt(); m_ReforgedSuffix = (ReforgedSuffix)reader.ReadInt(); m_ItemPower = (ItemPower)reader.ReadInt(); m_BlockRepair = reader.ReadBool(); #endregion #region Stygian Abyss m_DImodded = reader.ReadBool(); m_SearingWeapon = reader.ReadBool(); goto case 11; } case 11: { m_TimesImbued = reader.ReadInt(); #endregion goto case 10; } case 10: { m_BlessedBy = reader.ReadMobile(); m_EngravedText = reader.ReadString(); m_Slayer3 = (TalismanSlayerName)reader.ReadInt(); SetFlag flags = (SetFlag)reader.ReadEncodedInt(); if (GetSaveFlag(flags, SetFlag.Attributes)) { m_SetAttributes = new AosAttributes(this, reader); } else { m_SetAttributes = new AosAttributes(this); } if (GetSaveFlag(flags, SetFlag.WeaponAttributes)) { m_SetSelfRepair = (new AosWeaponAttributes(this, reader)).SelfRepair; } if (GetSaveFlag(flags, SetFlag.SkillBonuses)) { m_SetSkillBonuses = new AosSkillBonuses(this, reader); } else { m_SetSkillBonuses = new AosSkillBonuses(this); } if (GetSaveFlag(flags, SetFlag.Hue)) { m_SetHue = reader.ReadInt(); } if (GetSaveFlag(flags, SetFlag.LastEquipped)) { m_LastEquipped = reader.ReadBool(); } if (GetSaveFlag(flags, SetFlag.SetEquipped)) { m_SetEquipped = reader.ReadBool(); } if (GetSaveFlag(flags, SetFlag.SetSelfRepair)) { m_SetSelfRepair = reader.ReadEncodedInt(); } goto case 5; } case 9: case 8: case 7: case 6: case 5: { SaveFlag flags; if(version < 13) flags = (SaveFlag)reader.ReadInt(); else flags = (SaveFlag)reader.ReadLong(); 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)) { if (version < 9) { m_Speed = reader.ReadInt(); } else { m_Speed = reader.ReadFloat(); } } 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 * 5); ((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.EngravedText)) { m_EngravedText = reader.ReadString(); } #region Stygian Abyss if (version > 9 && GetSaveFlag(flags, SaveFlag.xAbsorptionAttributes)) { m_SAAbsorptionAttributes = new SAAbsorptionAttributes(this, reader); } else { m_SAAbsorptionAttributes = new SAAbsorptionAttributes(this); } if (version >= 13 && GetSaveFlag(flags, SaveFlag.xNegativeAttributes)) { m_NegativeAttributes = new NegativeAttributes(this, reader); } else { m_NegativeAttributes = new NegativeAttributes(this); } #endregion 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 * 5); ((Mobile)Parent).AddSkillMod(m_SkillMod); } break; } } #region Mondain's Legacy Sets if (m_SetAttributes == null) { m_SetAttributes = new AosAttributes(this); } if (m_SetSkillBonuses == null) { m_SetSkillBonuses = new AosSkillBonuses(this); } #endregion 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 (Parent is Mobile && (strBonus != 0 || dexBonus != 0 || intBonus != 0)) { Mobile m = (Mobile)Parent; string modName = 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 } }