public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadEncodedInt(); m_Spawned = reader.ReadStrongMobileList<Mobile>(); }
private static bool Deserialize(GenericReader reader) { reader.ReadBlockDictionary( () => { string name = reader.ReadString(); var players = reader.ReadStrongMobileList<PlayerMobile>(); return new KeyValuePair<string, List<PlayerMobile>>(name, players); }); return true; }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadEncodedInt(); m_Topic = new string[reader.ReadEncodedInt()]; for ( int i = 0; i < m_Topic.Length; i++ ) m_Topic[i] = reader.ReadString(); m_Yes = reader.ReadStrongMobileList(); m_No = reader.ReadStrongMobileList(); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 161: this.NumberOfItemsCookedRecently = reader.ReadInt(); this.CookingXpLastAwardedOn = reader.ReadDateTime(); goto case 160; case 160: this.lastSecondWind = reader.ReadDateTime(); goto case 159; case 159: { this.lastCharge = reader.ReadDateTime(); this.chargeCooldown = reader.ReadInt(); goto case 158; } case 158: SmithTesting = reader.ReadBool(); goto case 157; case 157: m_ConsecratedItems = reader.ReadInt(); goto case 156; case 156: m_CanBeFaithful = reader.ReadBool();goto case 155; case 155: m_HCWound = reader.ReadDateTime(); goto case 154; case 154: m_Maimings = reader.ReadInt(); goto case 153; case 153: { m_CustomAvatarID1 = reader.ReadInt(); m_CustomAvatarID2 = reader.ReadInt(); m_CustomAvatarID3 = reader.ReadInt(); m_IsHardcore = reader.ReadBool(); goto case 152; } case 152: GroupInfo.Deserialize(reader, Group); goto case 151; case 151: m_IsApprentice = reader.ReadBool(); goto case 150; case 150: m_AvatarID = reader.ReadInt(); goto case 149; case 149: case 148: case 147: case 146: case 145: case 144: { Disguise.Deserialize( reader ); MyDisguises.Deserialize( reader ); goto case 143; } case 143: m_GemHarvesting = reader.ReadBool(); goto case 142; case 142: { m_CanBeThief = reader.ReadBool(); m_LastCottonFlaxHarvest = reader.ReadDateTime(); goto case 141; } case 141: case 140: m_CraftingSpecialization = reader.ReadString(); goto case 139; case 139: m_Forging = reader.ReadBool(); goto case 138; case 138: m_ImperialGuard = reader.ReadBool(); goto case 137; case 137: m_ExtraCPRewards = reader.ReadInt(); goto case 136; case 136: m_EmptyBankBoxOn = reader.ReadDateTime(); goto case 135; case 135: m_OldMapChar = reader.ReadBool(); goto case 134; case 134: { int guilds = reader.ReadInt(); for( int i = 0; i < guilds; i++ ) { CustomGuildInfo guild = new CustomGuildInfo( reader ); if( guild != null && guild.GuildStone != null ) CustomGuilds.Add( guild.GuildStone, guild ); } goto case 133; } case 133: m_ChosenDeity = (ChosenDeity)reader.ReadInt(); goto case 132; case 132: m_WikiConfig = reader.ReadString(); goto case 131; case 131: case 130: case 129: { m_ReforgeLocation = reader.ReadPoint3D(); m_ReforgeMap = reader.ReadMap(); m_Reforging = reader.ReadBool(); m_ReforgesLeft = reader.ReadInt(); goto case 128; } case 128: case 127: { m_Technique = reader.ReadString(); m_TechniqueLevel = reader.ReadInt(); m_MediumPieces = reader.ReadInt(); m_HeavyPieces = reader.ReadInt(); goto case 126; } case 126: m_VampSight = reader.ReadBool(); goto case 125; case 125: m_FreeForRP = reader.ReadBool(); goto case 124; case 124: m_VampSafety = reader.ReadBool(); goto case 123; case 123: { m_LastTimeGhouled = reader.ReadDateTime(); m_YearOfDeath = reader.ReadInt(); m_MonthOfDeath = reader.ReadInt(); m_DayOfDeath = reader.ReadInt(); m_IsVampire = reader.ReadBool(); m_MaxBPs = reader.ReadInt(); m_BPs = reader.ReadInt(); m_AutoVampHeal = reader.ReadBool(); goto case 122; } case 122: case 121: m_LogMsgs = reader.ReadBool(); goto case 120; case 120: m_PureDodge = reader.ReadBool(); goto case 119; case 119: m_Tents = reader.ReadStrongItemList(); goto case 118; case 118: m_CraftContainer = (Container)reader.ReadItem(); goto case 117; case 117: case 116: m_SpellBook = (CustomSpellBook)reader.ReadItem(); goto case 115; case 115: case 114: { CustomGuildInfo test = null; if( version < 134 ) test = new CustomGuildInfo( reader ); goto case 113; } case 113: case 112: case 111: case 110: case 109: { m_CurrentCommand = (SongList)reader.ReadInt(); goto case 108; } case 108: { m_SpeedHack = reader.ReadBool(); goto case 107; } case 107: { m_LogoutTime = reader.ReadDateTime(); goto case 106; } case 106: { m_FakeAge = reader.ReadString(); m_FakeLooks = reader.ReadString(); goto case 105; } case 105: { this.NameMod = reader.ReadString(); m_AutoPicking = reader.ReadBool(); goto case 104; } case 104: goto case 103; case 103: { m_SmoothPicking = reader.ReadBool(); goto case 102; } case 102: { m_HasStash = reader.ReadBool(); goto case 101; } case 101: { m_FakeHair = reader.ReadInt(); m_FakeHairHue = reader.ReadInt(); m_FakeFacialHair = reader.ReadInt(); m_FakeFacialHairHue = reader.ReadInt(); m_FakeHue = reader.ReadInt(); m_FakeRPTitle = reader.ReadString(); m_FakeTitlePrefix = reader.ReadString(); goto case 100; } case 100: goto case 99; case 99: goto case 98; case 98: goto case 97; case 97: goto case 96; case 96: { m_FixedRun = reader.ReadBool(); goto case 95; } case 95: { m_LightPieces = reader.ReadInt(); goto case 94; } case 94: { m_ArmourPieces = reader.ReadInt(); goto case 93; } case 93: { m_LightPenalty = reader.ReadInt(); m_MediumPenalty = reader.ReadInt(); m_HeavyPenalty = reader.ReadInt(); goto case 92; } case 92: goto case 91; case 91: { m_FixedRage = reader.ReadBool(); goto case 90; } case 90: goto case 89; case 89: goto case 88; case 88: goto case 87; case 87: goto case 86; case 86: { m_FixedReflexes = reader.ReadBool(); goto case 85; } case 85: { m_FixedStyles = reader.ReadBool(); goto case 84; } case 84: { m_NextMending = reader.ReadDateTime(); goto case 83; } case 83: { m_FixedStatPoints = reader.ReadBool(); goto case 82; } case 82: { m_XPFromCrafting = reader.ReadBool(); m_XPFromKilling = reader.ReadBool(); goto case 81; } case 81: { m_HarvestedCrops = reader.ReadInt(); m_NextHarvestAllowed = reader.ReadDateTime(); goto case 80; } case 80: { m_Spar = reader.ReadBool(); goto case 79; } case 79: { m_HideStatus = reader.ReadBool(); goto case 78; } case 78: { m_DayOfBirth = reader.ReadString(); m_MonthOfBirth = reader.ReadString(); m_YearOfBirth = reader.ReadString(); goto case 77; } case 77: { m_AlyrianGuard = reader.ReadBool(); m_AzhuranGuard = reader.ReadBool(); m_KhemetarGuard = reader.ReadBool(); m_MhordulGuard = reader.ReadBool(); m_TyreanGuard = reader.ReadBool(); m_VhalurianGuard = reader.ReadBool(); goto case 76; } case 76: { m_HearAll = reader.ReadInt(); goto case 75; } case 75: { m_Friendship = new Friendship( reader ); goto case 74; } case 74: { m_CPCapOffset = reader.ReadInt(); m_CPSpent = reader.ReadInt(); goto case 73; } case 73: { m_Description2 = reader.ReadString(); m_Description3 = reader.ReadString(); goto case 72; } case 72: { m_NextBirthday = reader.ReadDateTime(); m_MaxAge = reader.ReadInt(); goto case 71; } case 71: { m_Age = reader.ReadInt(); goto case 70; } case 70: { m_LoggedOutPets = reader.ReadStrongMobileList(); goto case 69; } case 69: { m_RecreateXP = reader.ReadInt(); m_RecreateCP = reader.ReadInt(); goto case 68; } case 68: { m_LastOffenseToNature = reader.ReadDateTime(); goto case 66; } case 66: { Mobile mob = null; if( version < 92 ) mob = reader.ReadMobile(); goto case 65; } case 65: { m_LastDonationLife = reader.ReadDateTime(); goto case 64; } case 64: { m_Lives = reader.ReadInt(); goto case 63; } case 63: { m_AllyList = reader.ReadStrongMobileList(); goto case 62; } case 62: { m_Height = reader.ReadInt(); m_Weight = reader.ReadInt(); goto case 61; } case 61: { m_NextAllowance = reader.ReadDateTime(); goto case 60; } case 60: { m_Backgrounds = new Backgrounds( reader ); goto case 59; } case 59: { m_Description = reader.ReadString(); goto case 58; } case 58: { m_Masterwork = new Masterwork( reader ); goto case 57; } case 57: { m_RacialResources = new RacialResources( reader ); goto case 56; } case 56: { m_KnownLanguages = new KnownLanguages( reader ); goto case 55; } case 55: { m_SpokenLanguage = (KnownLanguage)reader.ReadInt(); goto case 54; } case 54: { m_RPTitle = reader.ReadString(); m_TitlePrefix = reader.ReadString(); goto case 53; } case 53: { m_FocusedShot = reader.ReadInt(); m_SwiftShot = reader.ReadInt(); goto case 52; } case 52: { m_WeaponSpecialization = reader.ReadString(); m_SecondSpecialization = reader.ReadString(); goto case 51; } case 51: { m_CombatStyles = new CombatStyles( reader ); m_SearingBreath = reader.ReadInt(); m_SwipingClaws = reader.ReadInt(); m_TempestuousSea = reader.ReadInt(); m_SilentHowl = reader.ReadInt(); m_ThunderingHooves = reader.ReadInt(); m_VenomousWay = reader.ReadInt(); goto case 50; } case 50: { m_RageHits = reader.ReadInt(); m_RageFeatLevel = reader.ReadInt(); goto case 49; } case 49: { int test = reader.ReadInt(); goto case 48; } case 48: { m_LastChargeStep = reader.ReadDateTime(); goto case 47; } case 47: { m_FormerDirection = (Direction)reader.ReadInt(); m_ChargeSteps = reader.ReadInt(); goto case 46; } case 46: { m_Trample = reader.ReadBool(); goto case 45; } case 45: { m_FlurryOfBlows = reader.ReadInt(); goto case 44; } case 44: { m_FocusedAttack = reader.ReadInt(); m_FightingStance = (FeatList)reader.ReadInt(); goto case 43; } case 43: { m_Intimidated = reader.ReadInt(); goto case 42; } case 42: { m_HasHuntingHoundBonus = reader.ReadBool(); goto case 41; } case 41: { m_HuntingHound = reader.ReadMobile(); m_FreeToUse = reader.ReadBool(); goto case 40; } case 40: { m_Informants = new Informants( reader ); goto case 39; } case 39: { m_EscortPrisoner = reader.ReadMobile(); goto case 38; } case 38: { m_CanBeReplaced = reader.ReadBool(); goto case 37; } case 37: { m_BackToBack = reader.ReadBool(); goto case 36; } case 36: { m_Crippled = reader.ReadBool(); goto case 35; } case 35: { m_CleaveAttack = reader.ReadBool(); goto case 34; } case 34: goto case 33; case 33: { goto case 32; } case 32: { m_SpecialAttack = (FeatList)reader.ReadInt(); m_OffensiveFeat = (FeatList)reader.ReadInt(); goto case 31; } case 31: { m_Feats = new Feats( reader ); goto case 30; } case 30: { m_Subclass = (Subclass)reader.ReadInt(); m_Advanced = (Advanced)reader.ReadInt(); goto case 29; } case 29: { m_CanBeMage = reader.ReadBool(); goto case 28; } case 28: { m_Level = reader.ReadInt(); m_XP = reader.ReadInt(); m_NextLevel = reader.ReadInt(); m_CP = reader.ReadInt(); goto case 27; } case 27: { m_StatPoints = reader.ReadInt(); m_SkillPoints = reader.ReadInt(); m_FeatSlots = reader.ReadInt(); goto case 26; } case 26: { m_Class = (Class)reader.ReadInt(); m_Nation = (Nation)reader.ReadInt(); 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 = Guilds.RankDefinition.Ranks.Length -1; if( rank > maxRank ) rank = maxRank; m_GuildRank = Guilds.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 Engines.BulkOrders.BOBFilter( reader ); goto case 11; } case 11: { if ( version < 13 ) { List<Item> 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(); // We cannot call SetHairMods( -1, -1 ) here because the items have not yet loaded Timer.DelayCall( TimeSpan.Zero, new TimerCallback( RevertHair ) ); } 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(); if (version < 147) m_Crimes = reader.ReadInt(); //CrimesList if (version < 148) { m_CrimesList = new Dictionary<Mobiles.Nation, int>(); m_CrimesList.Add(Nation.Alyrian, 0); m_CrimesList.Add(Nation.Azhuran, 0); m_CrimesList.Add(Nation.Khemetar, 0); m_CrimesList.Add(Nation.Mhordul, 0); m_CrimesList.Add(Nation.Tyrean, 0); m_CrimesList.Add(Nation.Vhalurian, 0); m_CrimesList.Add(Nation.Imperial, 0); m_CrimesList.Add(Nation.Sovereign, 0); m_CrimesList.Add(Nation.Society, 0); int count = reader.ReadInt(); for (int i = 0; i < count; i++) { Nation n = (Nation)reader.ReadInt(); int c = reader.ReadInt(); //m_CrimesList.Add(n, c); } } else { m_CrimesList = new Dictionary<Mobiles.Nation, int>(); int count = reader.ReadInt(); for (int i = 0; i < count; i++) { Nation n = (Nation)reader.ReadInt(); int c = reader.ReadInt(); m_CrimesList.Add(n, c); } } m_NextCriminalAct = reader.ReadDateTime(); m_CriminalActivity = reader.ReadBool(); m_Disguised = reader.ReadBool(); m_LastDisguiseTime = reader.ReadDateTime(); if (version < 149) { m_LastDeath = DateTime.Now - TimeSpan.FromDays(1); } else m_LastDeath = reader.ReadDateTime(); goto case 0; } case 0: { break; } } if (m_AvatarID == 0) m_AvatarID = 1076; //m_CrimesList.Add(Nation.Insularii, 0); if (m_CustomAvatarID1 == 0) m_CustomAvatarID1 = 1076; if (m_CustomAvatarID2 == 0) m_CustomAvatarID2 = 1076; if (m_CustomAvatarID3 == 0) m_CustomAvatarID3 = 1076; // 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 Engines.BulkOrders.BOBFilter(); if( m_GuildRank == null ) m_GuildRank = Guilds.RankDefinition.Member; //Default to member if going from older verstion 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(); List<Mobile> list = this.Stabled; for ( int i = 0; i < list.Count; ++i ) { BaseCreature bc = list[i] as BaseCreature; if ( bc != null ) bc.IsStabled = true; } CheckAtrophies( this ); /*if( Hidden ) //Hiding is the only buff where it has an effect that's serialized. AddBuff( new BuffInfo( BuffIcon.HidingAndOrStealth, 1075655 ) );*/ if( this.Lives >= 0 && !this.Alive && this.Corpse != null ) this.SendGump( new DeathGump( this, 15, this.Corpse ) ); if( this.Backpack is ArmourBackpack ) { ArmourBackpack pack = this.Backpack as ArmourBackpack; pack.Attributes.NightSight = 0; } if( version < 135 && AccessLevel < AccessLevel.GameMaster ) OldMapChar = true; if( version < 141 ) { FixSkillCost( FeatInfo.FeatCost.High, FeatInfo.FeatCost.Medium, Feats.GetFeatLevel(FeatList.Magery) ); FixSkillCost( FeatInfo.FeatCost.High, FeatInfo.FeatCost.Low, Feats.GetFeatLevel(FeatList.Concentration) ); } if( version < 145 ) { m_TitlePrefix = null; m_RPTitle = "the Alyrian"; if( m_Nation == Nation.Alyrian ) m_RPTitle = "the Alyrian"; else if( m_Nation == Nation.Azhuran ) m_RPTitle = "the Azhuran"; else if( m_Nation == Nation.Khemetar ) m_RPTitle = "the Khemetar"; else if( m_Nation == Nation.Mhordul ) m_RPTitle = "the Mhordul"; else if( m_Nation == Nation.Tyrean ) m_RPTitle = "the Tyrean"; else if( m_Nation == Nation.Vhalurian ) m_RPTitle = "the Vhalurian"; } m_Intimidated = 0; #region Removing Healing and HairStyling as feats and returning to players their CP if (Feats.GetFeatLevel(FeatList.Healing) == 3) { Feats.FeatDictionary[FeatList.Healing].AttemptRemoval(this, 3, true); } if (Feats.GetFeatLevel(FeatList.Healing) == 2) { Feats.FeatDictionary[FeatList.Healing].AttemptRemoval(this, 2, true); } if (Feats.GetFeatLevel(FeatList.Healing) == 1) { Feats.FeatDictionary[FeatList.Healing].AttemptRemoval(this, 1, true); } if (Feats.GetFeatLevel(FeatList.HairStyling) == 3) { Feats.FeatDictionary[FeatList.HairStyling].AttemptRemoval(this, 3, true); } if (Feats.GetFeatLevel(FeatList.HairStyling) == 2) { Feats.FeatDictionary[FeatList.HairStyling].AttemptRemoval(this, 2, true); } if (Feats.GetFeatLevel(FeatList.HairStyling) == 1) { Feats.FeatDictionary[FeatList.HairStyling].AttemptRemoval(this, 1, true); } #endregion m_Deserialized = true; }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 34: { //SYSTEM IMION Setname //Odczytywanie danych int count = reader.ReadInt(); m_SetNames = new Dictionary<int, string>(); for (int i = 0; i < count; i++) { int ri = reader.ReadInt(); string rs = reader.ReadString(); m_SetNames.Add(ri, rs); //Console.WriteLine(); //Console.WriteLine("{0}: {1}: {2}", DateTime.Now, ri, rs); } goto case 33; //SYSTEM IMION <-- KONIEC } case 33: { //Timer od oslonki po wskrzeszeniu DateTime ADShield = reader.ReadDateTime(); DateTime Shield = ADShield; Shield = Shield.AddMinutes(PlayerMobile.c_ADShield); if (Shield.CompareTo(DateTime.Now) > 0) { TimeSpan Minutes = Shield.Subtract(DateTime.Now); this.m_ADShieldTimer = new ADShieldTimer(this, Minutes.TotalMinutes); this.m_ADShieldTimer.Start(); this.m_ADShieldTime = ADShield; } ////////// goto case 32; } case 32: { int huesCount = reader.ReadInt(); if( huesCount > 0 ) { m_LanguageHues = new Dictionary<int, int>(); for( int i = 0; i < huesCount; i++ ) { int key = reader.ReadInt(); int v = reader.ReadInt(); m_LanguageHues.Add( key, v ); } } goto case 31; } case 31: { //SYSTEM IMION //Odczytywanie danych int count = reader.ReadInt(); m_KnewNames = new List<int>(); for (int i = 0; i < count; i++) { int ri = reader.ReadInt(); //string rs = reader.ReadString(); this.m_KnewNames.Add(ri); //Console.WriteLine(); //Console.WriteLine("{0}: {1}: {2}", DateTime.Now, ri, rs); } goto case 30; //SYSTEM IMION <-- KONIEC } case 30: { this.PDcount = reader.ReadInt(); goto case 29; } case 29: { //LISTA PD int i = reader.ReadInt(); //Console.Write("array size: " + i); for(int n = 0; n < i; n++ ){ int Amount = reader.ReadInt(); string GM_name = reader.ReadString(); string Reason = reader.ReadString(); //Console.Write(n + ": Amount -" + Amount + "\n"); //Console.Write(n + ":GM_name-" + GM_name + "\n"); //Console.Write(n + ": Reason-" + Reason + "\n"); this.ListaPD.Add(new Object[3] {Amount, GM_name, Reason} ); } //////////////// goto case 28; } case 28: { //Timer od umierania i wskrzeszania DateTime DeathTime = reader.ReadDateTime(); DateTime ResTime = DeathTime; ResTime = ResTime.AddMinutes(PlayerMobile.c_DeathTime); if(ResTime.CompareTo(DateTime.Now) > 0){ TimeSpan Minutes = ResTime.Subtract(DateTime.Now); this.m_DeathTimer = new DeathTimer(this, Minutes.TotalMinutes); this.m_DeathTimer.Start(); this.m_DeathTime = DeathTime; } ////////// 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 = Guilds.RankDefinition.Ranks.Length -1; if( rank > maxRank ) rank = maxRank; m_GuildRank = Guilds.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 Engines.BulkOrders.BOBFilter( reader ); goto case 11; } case 11: { if ( version < 13 ) { List<Item> 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 (m_RecentlyReported == null) m_RecentlyReported = new List<Mobile>(); // 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 Engines.BulkOrders.BOBFilter(); if( m_GuildRank == null ) m_GuildRank = Guilds.RankDefinition.Member; //Default to member if going from older verstion 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(); if ( AccessLevel > AccessLevel.Player ) m_IgnoreMobiles = true; List<Mobile> list = this.Stabled; for ( int i = 0; i < list.Count; ++i ) { BaseCreature bc = list[i] as BaseCreature; if ( bc != null ) bc.IsStabled = true; } 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(); m_CurrentAI = (AIType)reader.ReadInt(); m_DefaultAI = (AIType)reader.ReadInt(); m_iRangePerception = reader.ReadInt(); m_iRangeFight = reader.ReadInt(); m_iTeam = reader.ReadInt(); m_dActiveSpeed = reader.ReadDouble(); m_dPassiveSpeed = reader.ReadDouble(); m_dCurrentSpeed = reader.ReadDouble(); if ( m_iRangePerception == OldRangePerception ) m_iRangePerception = DefaultRangePerception; m_pHome.X = reader.ReadInt(); m_pHome.Y = reader.ReadInt(); m_pHome.Z = reader.ReadInt(); if ( version >= 1 ) { m_iRangeHome = reader.ReadInt(); int i, iCount; iCount = reader.ReadInt(); for ( i=0; i< iCount; i++ ) { string str = reader.ReadString(); Type type = Type.GetType( str ); if ( type != null ) { m_arSpellAttack.Add( type ); } } iCount = reader.ReadInt(); for ( i=0; i< iCount; i++ ) { string str = reader.ReadString(); Type type = Type.GetType( str ); if ( type != null ) { m_arSpellDefense.Add( type ); } } } else { m_iRangeHome = 0; } if ( version >= 2 ) { m_FightMode = ( FightMode )reader.ReadInt(); m_bControlled = reader.ReadBool(); m_ControlMaster = reader.ReadMobile(); m_ControlTarget = reader.ReadMobile(); m_ControlDest = reader.ReadPoint3D(); m_ControlOrder = (OrderType) reader.ReadInt(); m_dMinTameSkill = reader.ReadDouble(); if ( version < 9 ) reader.ReadDouble(); m_bTamable = reader.ReadBool(); m_bSummoned = reader.ReadBool(); if ( m_bSummoned ) { m_SummonEnd = reader.ReadDeltaTime(); new UnsummonTimer( m_ControlMaster, this, m_SummonEnd - DateTime.Now ).Start(); } m_iControlSlots = reader.ReadInt(); } else { m_FightMode = FightMode.Closest; m_bControlled = false; m_ControlMaster = null; m_ControlTarget = null; m_ControlOrder = OrderType.None; } if ( version >= 3 ) m_Loyalty = reader.ReadInt(); else m_Loyalty = MaxLoyalty; // Wonderfully Happy if ( version >= 4 ) m_CurrentWayPoint = reader.ReadItem() as WayPoint; if ( version >= 5 ) m_SummonMaster = reader.ReadMobile(); if ( version >= 6 ) { m_HitsMax = reader.ReadInt(); m_StamMax = reader.ReadInt(); m_ManaMax = reader.ReadInt(); m_DamageMin = reader.ReadInt(); m_DamageMax = reader.ReadInt(); } if ( version >= 7 ) { m_PhysicalResistance = reader.ReadInt(); m_PhysicalDamage = reader.ReadInt(); m_FireResistance = reader.ReadInt(); m_FireDamage = reader.ReadInt(); m_ColdResistance = reader.ReadInt(); m_ColdDamage = reader.ReadInt(); m_PoisonResistance = reader.ReadInt(); m_PoisonDamage = reader.ReadInt(); m_EnergyResistance = reader.ReadInt(); m_EnergyDamage = reader.ReadInt(); } if ( version >= 8 ) m_Owners = reader.ReadStrongMobileList(); else m_Owners = new List<Mobile>(); if ( version >= 10 ) { m_IsDeadPet = reader.ReadBool(); m_IsBonded = reader.ReadBool(); m_BondingBegin = reader.ReadDateTime(); m_OwnerAbandonTime = reader.ReadDateTime(); } if ( version >= 11 ) m_HasGeneratedLoot = reader.ReadBool(); else m_HasGeneratedLoot = true; if ( version >= 12 ) m_Paragon = reader.ReadBool(); else m_Paragon = false; if ( version >= 13 && reader.ReadBool() ) m_Friends = reader.ReadStrongMobileList(); else if ( version < 13 && m_ControlOrder >= OrderType.Unfriend ) ++m_ControlOrder; if ( version < 16 && Loyalty != MaxLoyalty ) Loyalty *= 10; double activeSpeed = m_dActiveSpeed; double passiveSpeed = m_dPassiveSpeed; SpeedInfo.GetSpeeds( this, ref activeSpeed, ref passiveSpeed ); bool isStandardActive = false; for ( int i = 0; !isStandardActive && i < m_StandardActiveSpeeds.Length; ++i ) isStandardActive = ( m_dActiveSpeed == m_StandardActiveSpeeds[i] ); bool isStandardPassive = false; for ( int i = 0; !isStandardPassive && i < m_StandardPassiveSpeeds.Length; ++i ) isStandardPassive = ( m_dPassiveSpeed == m_StandardPassiveSpeeds[i] ); if ( isStandardActive && m_dCurrentSpeed == m_dActiveSpeed ) m_dCurrentSpeed = activeSpeed; else if ( isStandardPassive && m_dCurrentSpeed == m_dPassiveSpeed ) m_dCurrentSpeed = passiveSpeed; if ( isStandardActive && !m_Paragon ) m_dActiveSpeed = activeSpeed; if ( isStandardPassive && !m_Paragon ) m_dPassiveSpeed = passiveSpeed; if ( version >= 14 ) { m_RemoveIfUntamed = reader.ReadBool(); m_RemoveStep = reader.ReadInt(); } TimeSpan deleteTime = TimeSpan.Zero; if ( version >= 17 ) deleteTime = reader.ReadTimeSpan(); if ( deleteTime > TimeSpan.Zero || LastOwner != null && !Controlled && !IsStabled ) { if ( deleteTime == TimeSpan.Zero ) deleteTime = TimeSpan.FromDays( 3.0 ); m_DeleteTimer = new DeleteTimer( this, deleteTime ); m_DeleteTimer.Start(); } if( version <= 14 && m_Paragon && Hue == 0x31 ) { Hue = Paragon.Hue; //Paragon hue fixed, should now be 0x501. } CheckStatTimers(); ChangeAIType(m_CurrentAI); AddFollowers(); if ( IsAnimatedDead ) Spells.Necromancy.AnimateDeadSpell.Register( m_SummonMaster, this ); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 1: { m_RegionBounds = reader.ReadRect2D(); m_Traps = reader.ReadStrongItemList<BaseTrap>(); goto case 0; } case 0: { if ( version < 1 ) { m_Traps = new List<BaseTrap>(); m_RegionBounds = new Rectangle2D( X - 40, Y - 40, 80, 80 ); } m_Creatures = reader.ReadStrongMobileList(); m_TypeName = reader.ReadString(); m_Door = reader.ReadItem<BaseDoor>(); ; m_Addon = reader.ReadItem<BaseAddon>(); ; m_Sequence = reader.ReadItem<GauntletSpawner>(); State = (GauntletSpawnerState)reader.ReadInt(); break; } } }
public Arena( GenericReader reader ) { int version = reader.ReadEncodedInt(); switch ( version ) { case 7: { m_IsGuarded = reader.ReadBool(); goto case 6; } case 6: { m_Ladder = reader.ReadItem() as LadderController; goto case 5; } case 5: { m_Tournament = reader.ReadItem() as TournamentController; m_Announcer = reader.ReadMobile(); goto case 4; } case 4: { m_Name = reader.ReadString(); goto case 3; } case 3: { m_Zone = reader.ReadRect2D(); goto case 2; } case 2: { m_GateIn = reader.ReadPoint3D(); m_GateOut = reader.ReadPoint3D(); m_Teleporter = reader.ReadItem(); goto case 1; } case 1: { m_Players = reader.ReadStrongMobileList(); goto case 0; } case 0: { m_Facet = reader.ReadMap(); m_Bounds = reader.ReadRect2D(); m_Outside = reader.ReadPoint3D(); m_Wall = reader.ReadPoint3D(); if ( version == 0 ) { reader.ReadBool(); m_Players = new List<Mobile>(); } m_Active = reader.ReadBool(); m_Points = new ArenaStartPoints( reader ); if ( m_Active ) { m_Arenas.Add( this ); m_Arenas.Sort(); } break; } } if ( m_Zone.Start != Point2D.Zero && m_Zone.End != Point2D.Zero && m_Facet != null ) m_Region = new SafeZone( m_Zone, m_Outside, m_Facet, m_IsGuarded ); if ( IsOccupied ) Timer.DelayCall( TimeSpan.FromSeconds( 2.0 ), new TimerCallback( Evict ) ); if ( m_Tournament != null ) Timer.DelayCall( TimeSpan.Zero, new TimerCallback( AttachToTournament_Sandbox ) ); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 2: { m_Guardians = reader.ReadStrongMobileList(); m_Temporary = reader.ReadBool(); goto case 1; } case 1: { m_Owner = reader.ReadMobile(); goto case 0; } case 0: { m_Level = reader.ReadInt(); m_DeleteTime = reader.ReadDeltaTime(); m_Lifted = reader.ReadStrongItemList(); if ( version < 2 ) m_Guardians = new List<Mobile>(); break; } } if ( !m_Temporary ) { m_Timer = new DeleteTimer( this, m_DeleteTime ); m_Timer.Start(); } else { Delete(); } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 6: { m_IDList = reader.ReadStrongMobileList(); goto case 5; } case 5: { m_Identified = reader.ReadBool(); m_Charges = reader.ReadInt(); m_ClothEffect = (ClothEffect)reader.ReadEncodedInt(); SaveFlag flags = (SaveFlag)reader.ReadEncodedInt(); if ( GetSaveFlag( flags, SaveFlag.Resource ) ) m_Resource = (CraftResource)reader.ReadEncodedInt(); else m_Resource = DefaultResource; if ( GetSaveFlag( flags, SaveFlag.Attributes ) ) m_AosAttributes = new AosAttributes( this, reader ); else m_AosAttributes = new AosAttributes( this ); if ( GetSaveFlag( flags, SaveFlag.ClothingAttributes ) ) m_AosClothingAttributes = new AosArmorAttributes( this, reader ); else m_AosClothingAttributes = new AosArmorAttributes( this ); if ( GetSaveFlag( flags, SaveFlag.SkillBonuses ) ) m_AosSkillBonuses = new AosSkillBonuses( this, reader ); else m_AosSkillBonuses = new AosSkillBonuses( this ); if ( GetSaveFlag( flags, SaveFlag.Resistances ) ) m_AosResistances = new AosElementAttributes( this, reader ); else m_AosResistances = new AosElementAttributes( this ); if ( GetSaveFlag( flags, SaveFlag.MaxHitPoints ) ) m_MaxHitPoints = reader.ReadEncodedInt(); if ( GetSaveFlag( flags, SaveFlag.HitPoints ) ) m_HitPoints = reader.ReadEncodedInt(); if ( GetSaveFlag( flags, SaveFlag.Crafter ) ) m_Crafter = reader.ReadMobile(); if ( GetSaveFlag( flags, SaveFlag.Quality ) ) m_Quality = (ClothingQuality)reader.ReadEncodedInt(); else m_Quality = ClothingQuality.Regular; if ( GetSaveFlag( flags, SaveFlag.StrReq ) ) m_StrReq = reader.ReadEncodedInt(); else m_StrReq = -1; if ( GetSaveFlag( flags, SaveFlag.PlayerConstructed ) ) m_PlayerConstructed = true; break; } case 4: { m_Resource = (CraftResource)reader.ReadInt(); goto case 3; } case 3: { m_AosAttributes = new AosAttributes( this, reader ); m_AosClothingAttributes = new AosArmorAttributes( this, reader ); m_AosSkillBonuses = new AosSkillBonuses( this, reader ); m_AosResistances = new AosElementAttributes( this, reader ); goto case 2; } case 2: { m_PlayerConstructed = reader.ReadBool(); goto case 1; } case 1: { m_Crafter = reader.ReadMobile(); m_Quality = (ClothingQuality)reader.ReadInt(); break; } case 0: { m_Crafter = null; m_Quality = ClothingQuality.Regular; break; } } if ( version < 2 ) m_PlayerConstructed = true; // we don't know, so, assume it's crafted if ( version < 3 ) { m_AosAttributes = new AosAttributes( this ); m_AosClothingAttributes = new AosArmorAttributes( this ); m_AosSkillBonuses = new AosSkillBonuses( this ); m_AosResistances = new AosElementAttributes( this ); } if ( version < 4 ) m_Resource = DefaultResource; if ( m_MaxHitPoints == 0 && m_HitPoints == 0 ) m_HitPoints = m_MaxHitPoints = Utility.RandomMinMax( InitMinHits, InitMaxHits ); Mobile parent = Parent as Mobile; if ( parent != null ) { if ( Core.AOS ) m_AosSkillBonuses.AddTo( parent ); AddStatBonuses( parent ); parent.CheckStatTimers(); } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 0: { m_Items = reader.ReadStrongItemList(); m_Mobiles = reader.ReadStrongMobileList(); m_DecayTime = reader.ReadDeltaTime(); RefreshDecay( false ); break; } } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); m_Effect = (StationaryEffect)reader.ReadInt(); m_Charges = reader.ReadInt(); m_IDList = reader.ReadStrongMobileList(); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); m_Peerless = reader.ReadMobile() as BasePeerless; m_BossLocation = reader.ReadPoint3D(); m_TeleportDest = reader.ReadPoint3D(); m_ExitDest = reader.ReadPoint3D(); m_Deadline = reader.ReadDateTime(); // deserialize master keys m_MasterKeys = reader.ReadStrongItemList(); // deserialize fightes m_Fighters = reader.ReadStrongMobileList(); // deserialize pets m_Pets = new Dictionary<Mobile,List<Mobile>>(); int count = reader.ReadInt(); for ( int i = 0; i < count; i ++ ) m_Pets.Add( reader.ReadMobile(), reader.ReadStrongMobileList() ); m_Spawned = reader.ReadBool(); FinishSequence(); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch( version ) { case 0: { m_Stage1Type = (eStage1Type)reader.ReadInt(); m_Stage2Type = (eStage2Type)reader.ReadInt(); m_Stage3Type = (eStage3Type)reader.ReadInt(); m_Stage4Type = (eStage4Type)reader.ReadInt(); m_ChampionType = (eChampionType)reader.ReadInt(); m_Stage1Count = reader.ReadEncodedInt(); m_Stage2Count = reader.ReadEncodedInt(); m_Stage3Count = reader.ReadEncodedInt(); m_Stage4Count = reader.ReadEncodedInt(); m_CurrentStage = reader.ReadEncodedInt(); m_RewardsEnabled = reader.ReadBool(); m_ArtifactChance = reader.ReadEncodedInt(); m_BlessDeedChance = reader.ReadEncodedInt(); m_MinSpawnZ = reader.ReadEncodedInt(); m_MaxSpawnZ = reader.ReadEncodedInt(); m_Enabled = reader.ReadBool(); m_Broadcast = reader.ReadBool(); m_Top = reader.ReadPoint3D(); m_Bottom = reader.ReadPoint3D(); m_RegionName = reader.ReadString(); m_Spawned = reader.ReadStrongMobileList<BaseCreature>(); break; } } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); m_vendorlist = reader.ReadStrongMobileList(); m_Sign = (CivicSign)reader.ReadItem(); m_Stone = (CityManagementStone)reader.ReadItem(); m_Area = Server.Items.CityManagementStone.ReadRect3DArray( reader ); Frozen = true; foreach ( Mobile m in m_vendorlist ) { m.Frozen = true; } UpdateMarketRegion(); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); m_DamageEntries = new Dictionary<Mobile, int>(); int version = reader.ReadInt(); switch (version) { case 7: { this.m_ExpireDelay = reader.ReadTimeSpan(); this.m_ExpireTime = reader.ReadDeltaTime(); goto case 6; } case 6: { this.m_Champion2 = reader.ReadMobile(); goto case 5; } case 5: { int entries = reader.ReadInt(); Mobile m; int damage; for (int i = 0; i < entries; ++i) { m = reader.ReadMobile(); damage = reader.ReadInt(); if (m == null) continue; this.m_DamageEntries.Add(m, damage); } goto case 4; } case 4: { this.m_ConfinedRoaming = reader.ReadBool(); this.m_HasBeenAdvanced = reader.ReadBool(); goto case 3; } case 3: { this.m_SpawnArea = reader.ReadRect2D(); goto case 2; } case 2: { this.m_RandomizeType = reader.ReadBool(); goto case 1; } case 1: { this.m_Kills = reader.ReadInt(); Spwnd = reader.ReadInt(); goto case 0; } case 0: { bool active = reader.ReadBool(); this.m_Type = (MiniChampType)reader.ReadInt(); this.m_Creatures = reader.ReadStrongMobileList(); this.m_Champion = reader.ReadMobile(); this.m_RestartDelay = reader.ReadTimeSpan(); if (reader.ReadBool()) { this.m_RestartTime = reader.ReadDeltaTime(); BeginRestart(this.m_RestartTime - DateTime.Now); } if (active) this.Start(); break; } } Timer.DelayCall(TimeSpan.Zero, new TimerCallback(UpdateRegion)); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); reader.ReadInt(); AffectedMobiles = reader.ReadStrongMobileList(); for (int i = 0; i < AffectedMobiles.Count; i++) if (AffectedMobiles[i] != null) AffectedMobiles.Clear(); }
public Candidate( GenericReader reader ) { int version = reader.ReadEncodedInt(); switch ( version ) { case 1: { m_Mobile = reader.ReadMobile(); int count = reader.ReadEncodedInt(); m_Voters = new List<Voter>( count ); for ( int i = 0; i < count; ++i ) { Voter voter = new Voter( reader, m_Mobile ); if ( voter.From != null ) m_Voters.Add( voter ); } break; } case 0: { m_Mobile = reader.ReadMobile(); List<Mobile> mobs = reader.ReadStrongMobileList(); m_Voters = new List<Voter>( mobs.Count ); for ( int i = 0; i < mobs.Count; ++i ) m_Voters.Add( new Voter( mobs[i], m_Mobile ) ); break; } } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); m_Mobiles = reader.ReadStrongMobileList(); for ( int i = 0; i < m_Mobiles.Count; ++i ) m_Mobiles[i].Delete(); m_Mobiles.Clear(); for ( int i = Items.Count - 1; i >= 0; --i ) if ( i < Items.Count ) Items[i].Delete(); if ( m_Cache == null ) m_Cache = this; else Delete(); m_Table = new Dictionary<Type, IEntity>(); }
public override void Deserialize(GenericReader reader) { base.Deserialize( reader ); int version = reader.ReadInt(); if ( reader.ReadBool() ) { int count = reader.ReadInt(); //Dictionary count for ( int i = 0; i < count; i++ ) m_Treats.Add( reader.ReadMobile(), reader.ReadStrongMobileList() ); } if ( !BaseHalloweenGiftGiver.IsHalloween() ) Timer.DelayCall( TimeSpan.FromSeconds( 1.0 ), new TimerCallback( DeleteInternal ) ); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); /*int version = */ reader.ReadEncodedInt(); m_Targets = reader.ReadStrongMobileList(); }
public virtual void Deserialize( GenericReader reader ) { int version = reader.ReadInt(); switch ( version ) { case 36: case 35: case 34: { byte hairflag = reader.ReadByte(); if ( ( hairflag & 0x01 ) != 0 ) m_Hair = new HairInfo( reader ); if ( ( hairflag & 0x02 ) != 0 ) m_FacialHair = new FacialHairInfo( reader ); m_InstanceID = reader.ReadInt(); m_Race = reader.ReadRace(); if ( version < 36 ) reader.ReadDeltaTime(); m_TithingPoints = reader.ReadInt(); m_Corpse = reader.ReadItem() as Container; m_CreationTime = reader.ReadDateTime(); m_Stabled = reader.ReadStrongMobileList(); m_CantWalk = reader.ReadBool(); m_Virtues = new VirtueInfo( reader ); m_Thirst = reader.ReadInt(); m_BAC = reader.ReadInt(); m_ShortTermMurders = reader.ReadInt(); if ( version < 35 ) reader.ReadInt(); m_MagicDamageAbsorb = reader.ReadInt(); m_GuildFealty = reader.ReadMobile(); m_Guild = reader.ReadGuild(); m_DisplayGuildTitle = reader.ReadBool(); m_CanSwim = reader.ReadBool(); m_Squelched = reader.ReadBool(); m_Holding = reader.ReadItem(); m_BaseSoundID = reader.ReadInt(); m_DisarmReady = reader.ReadBool(); m_StunReady = reader.ReadBool(); m_StatCap = reader.ReadInt(); m_NameHue = reader.ReadInt(); m_Hunger = reader.ReadInt(); m_Location = reader.ReadPoint3D(); m_Body = new Body( reader.ReadInt() ); m_Name = reader.ReadString(); if ( m_Name != null ) m_Name = string.Intern( m_Name ); m_GuildTitle = reader.ReadString(); m_Criminal = reader.ReadBool(); m_Kills = reader.ReadInt(); m_SpeechHue = reader.ReadInt(); m_EmoteHue = reader.ReadInt(); m_WhisperHue = reader.ReadInt(); m_YellHue = reader.ReadInt(); m_Language = reader.ReadString(); if ( m_Language != null ) m_Language = string.Intern( m_Language ); m_Female = reader.ReadBool(); m_Warmode = reader.ReadBool(); m_Hidden = reader.ReadBool(); m_Direction = (Direction) reader.ReadByte(); m_Hue = reader.ReadInt(); m_Str = reader.ReadInt(); m_Dex = reader.ReadInt(); m_Int = reader.ReadInt(); m_Hits = reader.ReadInt(); m_Stam = reader.ReadInt(); m_Mana = reader.ReadInt(); m_Map = reader.ReadMap(); m_Blessed = reader.ReadBool(); m_Fame = reader.ReadInt(); m_Karma = reader.ReadInt(); m_AccessLevel = (AccessLevel) reader.ReadByte(); m_Skills = new Skills( this, reader ); int itemCount = reader.ReadInt(); m_EquippedItems = new List<Item>( itemCount ); for ( int i = 0; i < itemCount; ++i ) { Item item = reader.ReadItem(); if ( item != null ) m_EquippedItems.Add( item ); } m_IsPlayer = reader.ReadBool(); m_Title = reader.ReadString(); if ( m_Title != null ) m_Title = string.Intern( m_Title ); m_Profile = reader.ReadString(); m_ProfileLocked = reader.ReadBool(); m_AutoPageNotify = reader.ReadBool(); m_LogoutLocation = reader.ReadPoint3D(); m_LogoutMap = reader.ReadMap(); m_StrLock = (StatLockType) reader.ReadByte(); m_DexLock = (StatLockType) reader.ReadByte(); m_IntLock = (StatLockType) reader.ReadByte(); m_StatMods = new List<StatMod>(); if ( reader.ReadBool() ) { m_StuckMenuUses = new DateTime[reader.ReadInt()]; for ( int i = 0; i < m_StuckMenuUses.Length; ++i ) { m_StuckMenuUses[i] = reader.ReadDateTime(); } } else { m_StuckMenuUses = null; } if ( m_IsPlayer && m_Map != Map.Internal ) { m_LogoutLocation = m_Location; m_LogoutMap = m_Map; m_Map = Map.Internal; } if ( m_Map != null ) m_Map.OnEnter( this ); if ( m_Criminal ) { if ( m_ExpireCriminal == null ) m_ExpireCriminal = new ExpireCriminalTimer( this ); m_ExpireCriminal.Start(); } if ( ShouldCheckStatTimers ) CheckStatTimers(); UpdateRegion(); UpdateResistances(); break; } } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 11: { // Version 11, we move all bools to a CorpseFlag m_Flags = (CorpseFlag)reader.ReadInt(); m_TimeOfDeath = reader.ReadDeltaTime(); int count = reader.ReadInt(); for( int i = 0; i < count; ++i ) { Item item = reader.ReadItem(); if( reader.ReadBool() ) SetRestoreInfo( item, reader.ReadPoint3D() ); else if( item != null ) SetRestoreInfo( item, item.Location ); } if( reader.ReadBool() ) BeginDecay( reader.ReadDeltaTime() - DateTime.Now ); m_Looters = reader.ReadStrongMobileList(); m_Killer = reader.ReadMobile(); m_Aggressors = reader.ReadStrongMobileList(); m_Owner = reader.ReadMobile(); m_CorpseName = reader.ReadString(); m_AccessLevel = (AccessLevel)reader.ReadInt(); reader.ReadInt(); // guild reserve m_Kills = reader.ReadInt(); m_EquipItems = reader.ReadStrongItemList(); break; } case 10: { m_TimeOfDeath = reader.ReadDeltaTime(); goto case 9; } case 9: { int count = reader.ReadInt(); for ( int i = 0; i < count; ++i ) { Item item = reader.ReadItem(); if ( reader.ReadBool() ) SetRestoreInfo( item, reader.ReadPoint3D() ); else if ( item != null ) SetRestoreInfo( item, item.Location ); } goto case 8; } case 8: { SetFlag( CorpseFlag.VisitedByTaxidermist, reader.ReadBool() ); goto case 7; } case 7: { if ( reader.ReadBool() ) BeginDecay( reader.ReadDeltaTime() - DateTime.Now ); goto case 6; } case 6: { m_Looters = reader.ReadStrongMobileList(); m_Killer = reader.ReadMobile(); goto case 5; } case 5: { SetFlag( CorpseFlag.Carved, reader.ReadBool() ); goto case 4; } case 4: { m_Aggressors = reader.ReadStrongMobileList(); goto case 3; } case 3: { m_Owner = reader.ReadMobile(); goto case 2; } case 2: { SetFlag( CorpseFlag.NoBones, reader.ReadBool() ); goto case 1; } case 1: { m_CorpseName = reader.ReadString(); goto case 0; } case 0: { if ( version < 10 ) m_TimeOfDeath = DateTime.Now; if ( version < 7 ) BeginDecay( m_DefaultDecayTime ); if ( version < 6 ) m_Looters = new List<Mobile>(); if ( version < 4 ) m_Aggressors = new List<Mobile>(); m_AccessLevel = (AccessLevel)reader.ReadInt(); reader.ReadInt(); // guild reserve m_Kills = reader.ReadInt(); SetFlag( CorpseFlag.Criminal, reader.ReadBool() ); m_EquipItems = reader.ReadStrongItemList(); break; } } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 26: { #region GeNova: Mondain's Legacy 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(); m_Peaced = reader.ReadDateTime(); #endregion 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 = Guilds.RankDefinition.Ranks.Length - 1; if (rank > maxRank) rank = maxRank; m_GuildRank = Guilds.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 Engines.BulkOrders.BOBFilter(reader); goto case 11; } case 11: { if (version < 13) { List<Item> 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(); // We cannot call SetHairMods( -1, -1 ) here because the items have not yet loaded Timer.DelayCall(TimeSpan.Zero, new TimerCallback(RevertHair)); } 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: { break; } } #region GeNova: 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 Engines.BulkOrders.BOBFilter(); if (m_GuildRank == null) m_GuildRank = Guilds.RankDefinition.Member; //Default to member if going from older verstion 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(); List<Mobile> list = this.Stabled; for (int i = 0; i < list.Count; ++i) { BaseCreature bc = list[i] as BaseCreature; if (bc != null) bc.IsStabled = true; } 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); m_DamageEntries = new Dictionary<Mobile, int>(); int version = reader.ReadInt(); switch (version) { case 5: { int entries = reader.ReadInt(); Mobile m; int damage; for (int i = 0; i < entries; ++i) { m = reader.ReadMobile(); damage = reader.ReadInt(); if (m == null) continue; m_DamageEntries.Add(m, damage); } goto case 4; } case 4: { m_ConfinedRoaming = reader.ReadBool(); m_Idol = reader.ReadItem<IdolOfTheChampion>(); m_HasBeenAdvanced = reader.ReadBool(); goto case 3; } case 3: { m_SpawnArea = reader.ReadRect2D(); goto case 2; } case 2: { m_RandomizeType = reader.ReadBool(); goto case 1; } case 1: { if (version < 3) { int oldRange = reader.ReadInt(); m_SpawnArea = new Rectangle2D(new Point2D(X - oldRange, Y - oldRange), new Point2D(X + oldRange, Y + oldRange)); } m_Kills = reader.ReadInt(); goto case 0; } case 0: { if (version < 1) m_SpawnArea = new Rectangle2D(new Point2D(X - 24, Y - 24), new Point2D(X + 24, Y + 24)); //Default was 24 bool active = reader.ReadBool(); m_Type = (ChampionSpawnType)reader.ReadInt(); m_Creatures = reader.ReadStrongMobileList(); m_RedSkulls = reader.ReadStrongItemList(); m_WhiteSkulls = reader.ReadStrongItemList(); m_Platform = reader.ReadItem<ChampionPlatform>(); m_Altar = reader.ReadItem<ChampionAltar>(); m_ExpireDelay = reader.ReadTimeSpan(); m_ExpireTime = reader.ReadDeltaTime(); m_Champion = reader.ReadMobile(); m_RestartDelay = reader.ReadTimeSpan(); if (reader.ReadBool()) { m_RestartTime = reader.ReadDeltaTime(); BeginRestart(m_RestartTime - DateTime.Now); } if (version < 4) { m_Idol = new IdolOfTheChampion(this); m_Idol.MoveToWorld(new Point3D(X, Y, Z - 15), Map); } if (m_Platform == null || m_Altar == null || m_Idol == null) Delete(); else if (active) Start(); break; } } Timer.DelayCall(TimeSpan.Zero, new TimerCallback(UpdateRegion)); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); m_Items = reader.ReadStrongItemList(); m_Mobiles = reader.ReadStrongMobileList(); m_DecayTime = reader.ReadDeltaTime(); RefreshDecay( false ); m_Prisoner = reader.ReadMobile(); m_Camp = (CampType)reader.ReadInt(); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); int test = 0; if (version > 57) { m_Orders = new List<OrderInfo>(); int orderCount = reader.ReadInt(); for (int i = 0; i < orderCount; i++) { OrderInfo newOrder = new OrderInfo("", 1, 1, this); OrderInfo.Deserialize(reader, newOrder); m_Orders.Add(newOrder); } } if (version > 55) { m_Deadly = reader.ReadInt(); } if (version > 54) { m_Nation = (Nation)reader.ReadInt(); m_Government = (GovernmentEntity)reader.ReadItem(); m_Organization = (CustomGuildStone)reader.ReadItem(); } if( version > 53 ) m_AuraType = (AuraType)reader.ReadInt(); if( version > 52 ) m_CustomBreathType = (CustomBreathType)reader.ReadInt(); if( version > 51 ) m_ManeuverResistance = reader.ReadInt(); if( version > 50 ) { m_CantInterrupt = reader.ReadBool(); m_CantParry = reader.ReadBool(); m_HasNoCorpse = reader.ReadBool(); } if( version > 49 ) { int count = reader.ReadInt(); for( int i = 0; i < count; i++ ) m_SecondaryWikiConfigs.Add( reader.ReadString() ); count = reader.ReadInt(); for( int i = 0; i < count; i++ ) { XMLEventType eventType = (XMLEventType)reader.ReadInt(); List<string> list = new List<string>(); int codeCount = reader.ReadInt(); for( int a = 0; a < codeCount; a++ ) list.Add( reader.ReadString() ); m_XMLEventsDatabase.Add( eventType, list ); } } if( version > 48 ) m_RangedAttackType = (RangedAttackType)reader.ReadInt(); if( version > 47 ) m_CustomSkinnableParts = reader.ReadStrongItemList(); if( version > 46 ) { m_NoWoundedMovePenalty = reader.ReadBool(); m_MeleeAttackType = (MeleeAttackType)reader.ReadInt(); } if( version > 45 ) m_WikiConfig = reader.ReadString(); if( version > 44 ) { m_Technique = reader.ReadString(); m_TechniqueLevel = reader.ReadInt(); } if( version > 43 ) m_StableTicket = reader.ReadItem(); if( version > 41 ) m_StabledOwner = reader.ReadMobile(); if( version > 40 ) m_ReceivedNewLoot = reader.ReadBool(); if( version > 39 ) { m_TimeOfDeath = reader.ReadDeltaTime(); if( reader.ReadBool() ) BeginRess( reader.ReadDeltaTime() - DateTime.Now, this.Corpse ); m_Lives = reader.ReadInt(); } if( version > 38 ) m_ReleaseTime = reader.ReadDateTime(); if( version > 37 ) m_MarkedForTermination = reader.ReadBool(); if( version > 36 ) { m_FavouriteStance = reader.ReadString(); m_FavouriteManeuver = reader.ReadString(); } if( version > 34 ) m_CombatStyles = new CombatStyles( reader ); if( version > 32 ) m_Feats = new Feats( reader, true ); if( version > 33 ) m_FixedScales = reader.ReadBool(); if( version > 31 ) { m_NoDeathCondition = reader.ReadBool(); m_NoDeath = reader.ReadBool(); m_NoDeathMsg = reader.ReadString(); m_NoDeathSound = reader.ReadInt(); } if( version > 30 ) this.Frozen = reader.ReadBool(); if( version > 27 ) { m_VanishTime = reader.ReadDateTime(); m_VanishEmote = reader.ReadString(); } m_CreatureGroup = (CreatureGroup)reader.ReadInt(); if( version < 29 ) { test = reader.ReadInt(); m_IsSneaky = test > 0; } else m_IsSneaky = reader.ReadBool(); if( version < 29 ) { test = reader.ReadInt(); m_TakesLifeOnKill = test > 0; } else m_TakesLifeOnKill = reader.ReadBool(); m_Description = reader.ReadString(); m_Intimidated = reader.ReadInt(); if( version < 29 ) { test = reader.ReadInt(); m_IsHuntingHound = test > 0; } else m_IsHuntingHound = reader.ReadBool(); m_XPScale = reader.ReadInt(); m_StatScale = reader.ReadInt(); m_SkillScale = reader.ReadInt(); m_Level = reader.ReadInt(); m_XP = reader.ReadInt(); m_NextLevel = reader.ReadInt(); if( version < 29 ) { test = reader.ReadInt(); m_Warned = test > 0; } else m_Warned = reader.ReadBool(); m_WarningTime = reader.ReadDateTime(); m_BribingTime = reader.ReadDateTime(); m_EmployerFeatLevel = reader.ReadInt(); m_TargetsName = reader.ReadString(); m_Employer = reader.ReadMobile(); m_HiringTime = reader.ReadDateTime(); if( version < 29 ) { test = reader.ReadInt(); m_Bribed = test > 0; } else m_Bribed = reader.ReadBool(); m_LastSeen = reader.ReadDateTime(); if( version < 29 ) { test = reader.ReadInt(); m_CanBeInformant = test > 0; } else m_CanBeInformant = reader.ReadBool(); m_CurrentAI = (AIType)reader.ReadInt(); m_DefaultAI = (AIType)reader.ReadInt(); m_iRangePerception = reader.ReadInt(); m_iRangeFight = reader.ReadInt(); m_iTeam = reader.ReadInt(); m_dActiveSpeed = reader.ReadDouble(); m_dPassiveSpeed = reader.ReadDouble(); m_dCurrentSpeed = reader.ReadDouble(); if ( m_iRangePerception == OldRangePerception ) m_iRangePerception = DefaultRangePerception; m_pHome.X = reader.ReadInt(); m_pHome.Y = reader.ReadInt(); m_pHome.Z = reader.ReadInt(); if ( version >= 1 ) { m_iRangeHome = reader.ReadInt(); int i, iCount; iCount = reader.ReadInt(); for ( i=0; i< iCount; i++ ) { string str = reader.ReadString(); Type type = Type.GetType( str ); if ( type != null ) { m_arSpellAttack.Add( type ); } } iCount = reader.ReadInt(); for ( i=0; i< iCount; i++ ) { string str = reader.ReadString(); Type type = Type.GetType( str ); if ( type != null ) { m_arSpellDefense.Add( type ); } } } else { m_iRangeHome = 0; } if ( version >= 2 ) { m_FightMode = ( FightMode )reader.ReadInt(); m_bControlled = reader.ReadBool(); m_ControlMaster = reader.ReadMobile(); m_ControlTarget = reader.ReadMobile(); m_ControlDest = reader.ReadPoint3D(); m_ControlOrder = (OrderType) reader.ReadInt(); m_dMinTameSkill = reader.ReadDouble(); if ( version < 9 ) reader.ReadDouble(); m_bTamable = reader.ReadBool(); m_bSummoned = reader.ReadBool(); if ( m_bSummoned ) { m_SummonEnd = reader.ReadDeltaTime(); new UnsummonTimer( m_ControlMaster, this, m_SummonEnd - DateTime.Now ).Start(); } m_iControlSlots = reader.ReadInt(); } else { m_FightMode = FightMode.Closest; m_bControlled = false; m_ControlMaster = null; m_ControlTarget = null; m_ControlOrder = OrderType.None; } if ( version >= 3 ) m_Loyalty = reader.ReadInt(); else m_Loyalty = MaxLoyalty; // Wonderfully Happy if ( version >= 4 ) m_CurrentWayPoint = reader.ReadItem() as WayPoint; if ( version >= 5 ) m_SummonMaster = reader.ReadMobile(); if ( version >= 6 ) { //m_HitsMax = reader.ReadInt(); //m_StamMax = reader.ReadInt(); //m_ManaMax = reader.ReadInt(); m_DamageMin = reader.ReadInt(); m_DamageMax = reader.ReadInt(); } if ( version >= 7 ) { m_PhysicalResistance = reader.ReadInt(); m_PhysicalDamage = reader.ReadInt(); m_FireResistance = reader.ReadInt(); m_FireDamage = reader.ReadInt(); m_ColdResistance = reader.ReadInt(); m_ColdDamage = reader.ReadInt(); m_PoisonResistance = reader.ReadInt(); m_PoisonDamage = reader.ReadInt(); m_EnergyResistance = reader.ReadInt(); m_EnergyDamage = reader.ReadInt(); } if ( version >= 8 ) m_Owners = reader.ReadStrongMobileList(); else m_Owners = new List<Mobile>(); if ( version >= 10 ) { m_IsDeadPet = reader.ReadBool(); m_IsBonded = reader.ReadBool(); m_BondingBegin = reader.ReadDateTime(); m_OwnerAbandonTime = reader.ReadDateTime(); } if ( version >= 11 ) m_HasGeneratedLoot = reader.ReadBool(); else m_HasGeneratedLoot = true; if ( version >= 12 ) m_Paragon = reader.ReadBool(); else m_Paragon = false; if ( version >= 13 && reader.ReadBool() ) m_Friends = reader.ReadStrongMobileList(); else if ( version < 13 && m_ControlOrder >= OrderType.Unfriend ) ++m_ControlOrder; if ( version < 16 ) Loyalty *= 10; double activeSpeed = m_dActiveSpeed; double passiveSpeed = m_dPassiveSpeed; SpeedInfo.GetSpeeds( this, ref activeSpeed, ref passiveSpeed ); bool isStandardActive = false; for ( int i = 0; !isStandardActive && i < m_StandardActiveSpeeds.Length; ++i ) isStandardActive = ( m_dActiveSpeed == m_StandardActiveSpeeds[i] ); bool isStandardPassive = false; for ( int i = 0; !isStandardPassive && i < m_StandardPassiveSpeeds.Length; ++i ) isStandardPassive = ( m_dPassiveSpeed == m_StandardPassiveSpeeds[i] ); if ( isStandardActive && m_dCurrentSpeed == m_dActiveSpeed ) m_dCurrentSpeed = activeSpeed; else if ( isStandardPassive && m_dCurrentSpeed == m_dPassiveSpeed ) m_dCurrentSpeed = passiveSpeed; if ( isStandardActive && !m_Paragon ) m_dActiveSpeed = activeSpeed; if ( isStandardPassive && !m_Paragon ) m_dPassiveSpeed = passiveSpeed; if ( version >= 14 ) { m_RemoveIfUntamed = reader.ReadBool(); m_RemoveStep = reader.ReadInt(); } if( version <= 14 && m_Paragon && Hue == 0x31 ) { Hue = Paragon.Hue; //Paragon hue fixed, should now be 0x501. } m_BluntResistance = reader.ReadInt(); m_BluntDamage = reader.ReadInt(); m_SlashingResistance = reader.ReadInt(); m_SlashingDamage = reader.ReadInt(); m_PiercingResistance = reader.ReadInt(); m_PiercingDamage = reader.ReadInt(); CheckStatTimers(); Timer.DelayCall( TimeSpan.FromSeconds( 5 ), new TimerCallback( WaitToChangeAI ) ); AddFollowers(); if ( IsAnimatedDead ) Spells.Necromancy.AnimateDeadSpell.Register( m_SummonMaster, this ); if( this.Level < 1 ) this.Level = 1; if( this.Blessed && this.Alive ) this.CanBeInformant = true; m_Intimidated = 0; if( !( this is Mercenary ) && version < 34 && this.Level > 1 ) { int bonus = this.Level / 2; int rest = this.Level % 2; this.DamageMax += bonus + rest; this.DamageMin += bonus; } LevelSystem.FixStatsAndSkills( this ); m_Deserialized = true; }
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 = 1000; m_Exp = -1000; m_Level = 0; m_ExpTitle = "TerMur-guest"; } #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(); } if (IsPlayer()) { m_IgnoreMobiles = true; } 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 ) { int version = reader.ReadInt(); switch ( version ) { case 5: { int count = reader.ReadInt(); m_PendingWars = new List<WarDeclaration>(); for( int i = 0; i < count; i++ ) { m_PendingWars.Add( new WarDeclaration( reader ) ); } count = reader.ReadInt(); m_AcceptedWars = new List<WarDeclaration>(); for( int i = 0; i < count; i++ ) { m_AcceptedWars.Add( new WarDeclaration( reader ) ); } bool isAllianceLeader = reader.ReadBool(); if( isAllianceLeader ) m_AllianceInfo = new AllianceInfo( reader ); else m_AllianceLeader = reader.ReadGuild() as Guild; goto case 4; } case 4: { m_AllyDeclarations = reader.ReadStrongGuildList<Guild>(); m_AllyInvitations = reader.ReadStrongGuildList<Guild>(); goto case 3; } case 3: { m_TypeLastChange = reader.ReadDateTime(); goto case 2; } case 2: { m_Type = (GuildType)reader.ReadInt(); goto case 1; } case 1: { m_LastFealty = reader.ReadDateTime(); goto case 0; } case 0: { m_Leader = reader.ReadMobile(); if( m_Leader is PlayerMobile ) ((PlayerMobile)m_Leader).GuildRank = RankDefinition.Leader; m_Name = reader.ReadString(); m_Abbreviation = reader.ReadString(); m_Allies = reader.ReadStrongGuildList<Guild>(); m_Enemies = reader.ReadStrongGuildList<Guild>(); m_WarDeclarations = reader.ReadStrongGuildList<Guild>(); m_WarInvitations = reader.ReadStrongGuildList<Guild>(); m_Members = reader.ReadStrongMobileList(); m_Candidates = reader.ReadStrongMobileList(); m_Accepted = reader.ReadStrongMobileList(); m_Guildstone = reader.ReadItem(); m_Teleporter = reader.ReadItem(); m_Charter = reader.ReadString(); m_Website = reader.ReadString(); break; } } if ( m_AllyDeclarations == null ) m_AllyDeclarations = new List<Guild>(); if ( m_AllyInvitations == null ) m_AllyInvitations = new List<Guild>(); if ( m_AcceptedWars == null ) m_AcceptedWars = new List<WarDeclaration>(); if ( m_PendingWars == null ) m_PendingWars = new List<WarDeclaration>(); /* if ( ( !NewGuildSystem && m_Guildstone == null )|| m_Members.Count == 0 ) Disband(); */ Timer.DelayCall( TimeSpan.Zero, new TimerCallback( VerifyGuild_Callback ) ); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 0: { m_TrueForm = reader.ReadBool(); m_GateItem = reader.ReadItem(); m_Tentacles = reader.ReadStrongMobileList<HarrowerTentacles>(); m_Timer = new TeleportTimer( this ); m_Timer.Start(); break; } } }