Exemplo n.º 1
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 1:
                Credit = reader.ReadULong();
                goto case 0;

            case 0:
            {
                Owner  = reader.ReadMobile();
                Opened = reader.ReadBool();

                if (Owner == null)
                {
                    Delete();
                }
            }
            break;
            }
        }
Exemplo n.º 2
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            m_Formula    = reader.ReadULong();
            m_RealName   = reader.ReadString();
            m_Identified = reader.ReadBool();
        }
Exemplo n.º 3
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            m_Leader       = reader.ReadMobile();
            m_Commander    = reader.ReadMobile();
            m_Members      = reader.ReadMobileList();
            m_SiegeWeapons = reader.ReadItemList();
            m_Guards       = reader.ReadMobileList();
            m_GuardPoints  = reader.ReadItemList();
            m_Gold         = reader.ReadULong();
            m_Wood         = reader.ReadULong();
            m_ColorOne     = reader.ReadInt();
            m_ColorTwo     = reader.ReadInt();
        }
Exemplo n.º 4
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            m_Formulas = reader.ReadULong();

            if (LootType != LootType.Blessed)
            {
                LootType = LootType.Blessed;
            }
        }
Exemplo n.º 5
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 5:
            {
                m_Quality = (BookQuality)reader.ReadByte();

                goto case 4;
            }

            case 4:
            {
                m_EngravedText = reader.ReadString();

                goto case 3;
            }

            case 3:
            {
                m_Crafter = reader.ReadMobile();
                goto case 2;
            }

            case 2:
            {
                m_Slayer  = (SlayerName)reader.ReadInt();
                m_Slayer2 = (SlayerName)reader.ReadInt();
                goto case 1;
            }

            case 1:
            {
                goto case 0;
            }

            case 0:
            {
                m_Content = reader.ReadULong();
                m_Count   = reader.ReadInt();

                break;
            }
            }

            if (Parent is Mobile)
            {
                ((Mobile)Parent).CheckStatTimers();
            }
        }
Exemplo n.º 6
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);
            int version = reader.ReadInt();

            if (version >= 0)
            {
                m_Quality     = (BookQuality)reader.ReadInt();
                m_SlayerGroup = (SlayerGroupType)reader.ReadInt();
                m_Content     = reader.ReadULong();
                m_Count       = reader.ReadInt();
            }
        }
Exemplo n.º 7
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            if (version >= 4)
            {
                activeListA = reader.ReadBool();
                DeserializeList(reader, true);
                DeserializeList(reader, false);
            }
            else
            {
                activeListA = false;
                RestoreDefaultList();
                activeListA = true;
                DeserializeList(reader, true);
            }

            GoldLedger  = reader.ReadBool();
            TokenLedger = reader.ReadBool();
            if (version >= 3)
            {
                try { lootSettings = (LootSettingsEnum)reader.ReadInt(); }
                catch { lootSettings = LootSettingsEnum.From_List; }
            }
            else
            {
                lootSettings = reader.ReadBool()?LootSettingsEnum.Currency_Only:LootSettingsEnum.From_List;
            }
            GoldAmount   = reader.ReadULong();
            TokensAmount = reader.ReadULong();
            Owner        = reader.ReadInt();
            if (version > 1)
            {
                DeleteAllCorpses = reader.ReadBool();
            }
        }
Exemplo n.º 8
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);
            int version = reader.ReadInt();

            switch (version)
            {
            // version 0 reads second integer, version 1 no longer
            // needs it. No going to case 0 or serialization error
            // will occur!!
            case 2:
                m_Charges = reader.ReadInt();
                goto case 1;

            case 1:
                m_Content = reader.ReadULong();
                break;

            case 0:
                m_Content = reader.ReadULong();
                int m_Count = reader.ReadInt();
                break;
            }
        }
Exemplo n.º 9
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            m_Crafter = reader.ReadMobile();
            m_Content = reader.ReadULong();
            m_Count   = reader.ReadInt();

            if (Parent is Mobile)
            {
                ((Mobile)Parent).CheckStatTimers();
            }

            LootType = LootType.Regular;
        }
Exemplo n.º 10
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            var v = reader.GetVersion();

            if (v > 0)
            {
                var flags = reader.ReadULong();

                AllowNonExceptional = GetFlag(flags, 0x1);
            }
            else
            {
                AllowNonExceptional = true;
            }
        }
Exemplo n.º 11
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);
            LootType = LootType.Blessed;

            int version = reader.ReadInt();

            switch (version)
            {
            case 0:
            {
                m_Content = reader.ReadULong();
                m_Count   = reader.ReadInt();

                break;
            }
            }
        }
Exemplo n.º 12
0
        private static void DeserializeCams(GenericReader reader)
        {
            int version = reader.GetVersion();

            switch (version)
            {
            case 3:                     // Skip to case 1
                goto case 1;

            case 2:
            {
                reader.ReadBlockDictionary(
                    () =>
                    {
                        var cam    = reader.ReadMobile <PlayerMobile>();
                        var viewed = reader.ReadMobile <PlayerMobile>();

                        return(new KeyValuePair <PlayerMobile, PlayerMobile>(cam, viewed));
                    },
                    CurrentlyViewing);
            }
                goto case 1;

            case 1:
            {
                reader.ReadBlockDictionary(
                    () =>
                    {
                        var player = reader.ReadMobile <PlayerMobile>();
                        int count  = reader.ReadInt();

                        return(new KeyValuePair <PlayerMobile, int>(player, count));
                    },
                    PlayerMurderers);

                reader.ReadBlockDictionary(
                    () =>
                    {
                        BaseCreature mob = reader.ReadMobile <BaseCreature>();
                        int count        = reader.ReadInt();

                        return(new KeyValuePair <BaseCreature, int>(mob, count));
                    },
                    MonsterMurderers);

                CurrentDeathCount     = reader.ReadULong();
                CurrentPlayerMurders  = reader.ReadULong();
                CurrentMonsterMurders = reader.ReadULong();
            }
                goto case 0;

            case 0:
            {
                if (version < 1)
                {
                    CurrentDeathCount     = Convert.ToUInt64(reader.ReadInt());
                    CurrentPlayerMurders  = Convert.ToUInt64(reader.ReadInt());
                    CurrentMonsterMurders = Convert.ToUInt64(reader.ReadInt());
                }

                TopPlayerMurderer  = reader.ReadMobile <PlayerMobile>();
                TopMonsterMurderer = reader.ReadMobile <BaseCreature>();

                if (version < 1)
                {
                    reader.ReadBlockDictionary(
                        () =>
                        {
                            var player    = reader.ReadMobile <PlayerMobile>();
                            DateTime date = reader.ReadDateTime();

                            return(new KeyValuePair <PlayerMobile, DateTime>(player, date));
                        },
                        DeathCams);

                    reader.ReadBlockDictionary(
                        () =>
                        {
                            var player    = reader.ReadMobile <PlayerMobile>();
                            DateTime date = reader.ReadDateTime();

                            return(new KeyValuePair <PlayerMobile, DateTime>(player, date));
                        },
                        DeathCamsEvents);
                }
            }
            break;
            }
        }
Exemplo n.º 13
0
        public void Deserialize(GenericReader r)
        {
            int ver = r.ReadInt();

            switch (ver)
            {
            case 2:
            {
                int length = r.ReadInt();

                if (length > 0)
                {
                    List <Account> accs = new List <Account>(length);

                    for (int i = 0; i < accs.Count; i++)
                    {
                        string  accName = r.ReadString();
                        Account acc     = Accounting.Accounts.GetAccount(accName) as Account;

                        if (acc != null)
                        {
                            accs.Add(acc);
                        }
                    }

                    if (accs.Count > 0)
                    {
                        Accounts = accs.ToArray();
                    }
                }
            }
                goto case 1;

            case 1:
                if (r.ReadByte() != 0)
                {
                    SelectedCharacter = r.ReadMobile();
                }
                goto case 0;

            case 0:
                if (ver >= 2)
                {
                    DiscordUserId = r.ReadULong();
                    break;
                }

                if (r.ReadByte() != 0)
                {
                    IAccount acc = Accounting.Accounts.GetAccount(r.ReadString());

                    if (acc != null)
                    {
                        AddAccount((Account)acc);
                    }
                }

                DiscordUserId = r.ReadULong();
                break;
            }
        }
Exemplo n.º 14
0
        public void Deserialize(GenericReader reader)
        {
            Flag = reader.ReadFlag <DataType>();
            Type = Flag.ToType();

            switch (Flag)
            {
            case DataType.Null:
                Value = null;
                break;

            case DataType.Bool:
                Value = reader.ReadBool();
                break;

            case DataType.Char:
                Value = reader.ReadChar();
                break;

            case DataType.Byte:
                Value = reader.ReadByte();
                break;

            case DataType.SByte:
                Value = reader.ReadSByte();
                break;

            case DataType.Short:
                Value = reader.ReadShort();
                break;

            case DataType.UShort:
                Value = reader.ReadUShort();
                break;

            case DataType.Int:
                Value = reader.ReadInt();
                break;

            case DataType.UInt:
                Value = reader.ReadUInt();
                break;

            case DataType.Long:
                Value = reader.ReadLong();
                break;

            case DataType.ULong:
                Value = reader.ReadULong();
                break;

            case DataType.Float:
                Value = reader.ReadFloat();
                break;

            case DataType.Decimal:
                Value = reader.ReadDecimal();
                break;

            case DataType.Double:
                Value = reader.ReadDouble();
                break;

            case DataType.String:
                Value = reader.ReadString() ?? String.Empty;
                break;

            case DataType.DateTime:
                Value = reader.ReadDateTime();
                break;

            case DataType.TimeSpan:
                Value = reader.ReadTimeSpan();
                break;
            }
        }
Exemplo n.º 15
0
		public override void Deserialize(GenericReader reader)
		{
			base.Deserialize(reader);

			int version = reader.ReadInt();

			switch (version)
			{
				case 1:
					Credit = reader.ReadULong();
					goto case 0;
				case 0:
					{
						Owner = reader.ReadMobile();
						Opened = reader.ReadBool();

						if (Owner == null)
						{
							Delete();
						}
					}
					break;
			}
		}
Exemplo n.º 16
0
		public object DeserializeObject(GenericReader reader)
		{
			object output = null;
			XmlObjectType xmlObjectType = (XmlObjectType)reader.ReadInt();

			if (xmlObjectType == XmlObjectType.Mobile)
			{
				output = reader.ReadMobile();
			}
			else if (xmlObjectType == XmlObjectType.Item)
			{
				output = reader.ReadItem();
			}
			else if (xmlObjectType == XmlObjectType.MobileList)
			{
				output = reader.ReadStrongMobileList();
			}
			else if (xmlObjectType == XmlObjectType.ItemList)
			{
				output = reader.ReadStrongItemList();
			}
			else if (xmlObjectType == XmlObjectType.ArrayList)
			{
				int elements = reader.ReadInt();
				ArrayList list = new ArrayList(elements);
				for (int i = 0; i < elements; i++)
				{
					list.Add(DeserializeObject(reader));
				}
				output = list;
			}
			else if (xmlObjectType == XmlObjectType.DateTime)
			{
				output = reader.ReadDateTime();
			}
			else if (xmlObjectType == XmlObjectType.DateTimeOffset)
			{
				output = reader.ReadDateTimeOffset();
			}
			else if (xmlObjectType == XmlObjectType.BaseGuild)
			{
				output = reader.ReadGuild();
			}
			else if (xmlObjectType == XmlObjectType.IPAddress)
			{
				output = reader.ReadIPAddress();
			}
			else if (xmlObjectType == XmlObjectType.Map)
			{
				output = reader.ReadMap();
			}
			else if (xmlObjectType == XmlObjectType.Point3D)
			{
				output = reader.ReadPoint3D();
			}
			else if (xmlObjectType == XmlObjectType.Point2D)
			{
				output = reader.ReadPoint2D();
			}
			else if (xmlObjectType == XmlObjectType.TimeSpan)
			{
				output = reader.ReadTimeSpan();
			}
			else if (xmlObjectType == XmlObjectType.Rectangle2D)
			{
				output = reader.ReadRect2D();
			}
			else if (xmlObjectType == XmlObjectType.Rectangle3D)
			{
				output = reader.ReadRect3D();
			}
			else if (xmlObjectType == XmlObjectType.Double)
			{
				output = reader.ReadDouble();
			}
			else if (xmlObjectType == XmlObjectType.Integer)
			{
				output = reader.ReadInt();
			}
			else if (xmlObjectType == XmlObjectType.Boolean)
			{
				output = reader.ReadBool();
			}
			else if (xmlObjectType == XmlObjectType.UInt64)
			{
				output = reader.ReadULong();
			}
			else if (xmlObjectType == XmlObjectType.String)
			{
				output = reader.ReadString();
			}
			else if (xmlObjectType == XmlObjectType.Type)
			{
				output = UberScriptFunctions.Methods.TYPE(null, reader.ReadString());
			}
			else if (xmlObjectType == XmlObjectType.Other)
			{
				LoggingCustom.Log(
					"ERROR_Uberscript.txt",
					DateTime.Now + ": xmlobject: " + Name + " attached to " + AttachedTo +
					" with data of type other was deserialized");
			}
			return output;
		}
Exemplo n.º 17
0
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );

			int version = reader.ReadInt();

			switch ( version )
			{
				case 5:
				{
					m_Quality = (BookQuality) reader.ReadByte();		

					goto case 4;
				}
				case 4:
				{
					m_EngravedText = reader.ReadString();		

					goto case 3;
				}
				case 3:
				{
					m_Crafter = reader.ReadMobile();
					goto case 2;
				}
				case 2:
				{
					m_Slayer = (SlayerName)reader.ReadInt();
					m_Slayer2 = (SlayerName)reader.ReadInt();
					goto case 1;
				}
				case 1:
				{
					goto case 0;
				}
				case 0:
				{
					m_Content = reader.ReadULong();
					m_Count = reader.ReadInt();

					break;
				}
			}

			if ( Parent is Mobile )
				((Mobile)Parent).CheckStatTimers();
		}
Exemplo n.º 18
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);
            int version = reader.ReadInt();
            m_Active = reader.ReadBool();
            m_Theme = (ThemeType)reader.ReadInt();
            m_TotalSpins = reader.ReadULong();
            m_TotalCollected = reader.ReadULong();
            m_TotalWon = reader.ReadULong();
            m_ErrorCode = reader.ReadInt();
            m_OrigHue = reader.ReadInt();
            m_Throttle = reader.ReadBool();
            m_ThrottleSeconds = reader.ReadDouble();
            m_CardClubOnly = reader.ReadBool();
            m_MembershipCard = reader.ReadBool();

            m_LastWonBy = reader.ReadMobile();
            m_LastWonByDate = reader.ReadDateTime();
            m_LastWonAmount = reader.ReadInt();

            m_SecurityCamMobile = reader.ReadMobile();
            m_SecurityChatter = (VerboseType)reader.ReadInt();
            m_TotalPlayers = reader.ReadInt();
            InvalidateProperties();
            if (m_TotalPlayers > 0)
            {
                for (int i = 0; i < m_TotalPlayers; i++)
                {
                    PlayerInfo player = new PlayerInfo();

                    player.mobile = reader.ReadMobile();
                    player.LastPlayed = reader.ReadDateTime();
                    player.OnCredit = reader.ReadInt();
                    player.Cost = reader.ReadInt();
                    PlayerList.Add(player);
                }
            }

            for (int i = 0; i < m_HitStats.Length; i++)
                m_HitStats[i] = reader.ReadULong();

            if (m_OrigHue != -1 && m_Active)
            {
                Hue = m_OrigHue;
                m_OrigHue = -1;
            }
            SetupTheme(m_Theme);
            ActivateIdleTimer(TimeSpan.FromMinutes(5));
            m_GameSpeed = Utility.RandomList(5, 6, 7, 8, 9, 10, 11, 12);
        }
Exemplo n.º 19
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 0:
                drawing = reader.ReadUInt();

                for (uint i = 0; i < jackpot.Length; i++)
                {
                    jackpot[i] = reader.ReadULong();
                }

                for (uint i = 0; i < awards.Length; i++)
                {
                    awards[i] = reader.ReadULong();
                }

                award     = reader.ReadULong();
                given     = reader.ReadULong();
                destroyed = reader.ReadULong();
                mode      = (LotteryBasketMode)reader.ReadInt();

                if (reader.ReadBool())
                {
                    outcome = new uint[LotteryConstants.Picks];
                    for (uint p = 0; p < LotteryConstants.Picks; p++)
                    {
                        outcome[p] = reader.ReadUInt();
                    }
                }

                uint count = reader.ReadUInt();
                for (uint i = 0; i < count; i++)
                {
                    int    id   = reader.ReadInt();
                    uint[] data = new uint[LotteryConstants.Picks];
                    for (uint p = 0; p < LotteryConstants.Picks; p++)
                    {
                        data[p] = reader.ReadUInt();
                    }
                    RegisteredTicket rt = new RegisteredTicket(id, data);
                    rt.Class    = reader.ReadInt();
                    tickets[id] = rt;
                }

                count = reader.ReadUInt();
                for (uint i = 0; i < count; i++)
                {
                    int    id   = reader.ReadInt();
                    uint[] data = new uint[LotteryConstants.Picks];
                    for (uint p = 0; p < LotteryConstants.Picks; p++)
                    {
                        data[p] = reader.ReadUInt();
                    }
                    incoming[id] = new RegisteredTicket(id, data);
                }

                board     = reader.ReadItem();
                itemPrize = reader.ReadBool();
                break;

            case 1:
                drawing = reader.ReadUInt();

                for (uint i = 0; i < drawingCount.Length; i++)
                {
                    drawingCount[i] = reader.ReadUInt();
                }

                for (uint i = 0; i < jackpot.Length; i++)
                {
                    jackpot[i] = reader.ReadULong();
                }

                for (uint i = 0; i < awards.Length; i++)
                {
                    awards[i] = reader.ReadULong();
                }

                for (uint i = 0; i < winners.Length; i++)
                {
                    winners[i] = reader.ReadInt();
                }

                oldParticipants = reader.ReadUInt();

                award     = reader.ReadULong();
                given     = reader.ReadULong();
                destroyed = reader.ReadULong();
                mode      = (LotteryBasketMode)reader.ReadInt();

                if (reader.ReadBool())
                {
                    outcome = new uint[LotteryConstants.Picks];
                    for (uint p = 0; p < LotteryConstants.Picks; p++)
                    {
                        outcome[p] = reader.ReadUInt();
                    }
                }

                count = reader.ReadUInt();
                for (uint i = 0; i < count; i++)
                {
                    int    id   = reader.ReadInt();
                    uint[] data = new uint[LotteryConstants.Picks];
                    for (uint p = 0; p < LotteryConstants.Picks; p++)
                    {
                        data[p] = reader.ReadUInt();
                    }
                    RegisteredTicket rt = new RegisteredTicket(id, data);
                    rt.Class    = reader.ReadInt();
                    tickets[id] = rt;
                }

                count = reader.ReadUInt();
                for (uint i = 0; i < count; i++)
                {
                    int    id   = reader.ReadInt();
                    uint[] data = new uint[LotteryConstants.Picks];
                    for (uint p = 0; p < LotteryConstants.Picks; p++)
                    {
                        data[p] = reader.ReadUInt();
                    }
                    incoming[id] = new RegisteredTicket(id, data);
                }

                board     = reader.ReadItem();
                itemPrize = reader.ReadBool();
                break;
            }
        }
Exemplo n.º 20
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            if (!(this is TomeOfEnlightenment || this is TomeOfLostKnowledge))
            {
                LootType = LootType.Blessed;
            }

            int version = reader.ReadInt();

            switch (version)
            {
            case 3:
            {
                m_Crafter_Name = reader.ReadString();

                m_Crafter = reader.ReadMobile();

                m_Quality = (SpellbookQuality)reader.ReadEncodedInt();

                goto case 2;
            }

            case 2:
            {
                m_Slayer = (SlayerName)reader.ReadEncodedInt();

                goto case 1;
            }

            case 1:
            {
                m_AosAttributes   = new AosAttributes(this, reader);
                m_AosSkillBonuses = new AosSkillBonuses(this, reader);

                if (this is TomeOfEnlightenment)
                {
                    Attributes.BonusInt    = 5;
                    Attributes.SpellDamage = 10;
                    Attributes.CastSpeed   = 1;
                }
                else if (this is TomeOfLostKnowledge)
                {
                    SkillBonuses.SetValues(0, SkillName.Magery, 15.0);
                    Attributes.BonusInt      = 8;
                    Attributes.SpellDamage   = 15;
                    Attributes.LowerManaCost = 15;
                }
                else
                {
                    FixAttributes();
                }

                goto case 0;
            }

            case 0:
            {
                m_Content = reader.ReadULong();
                m_Count   = reader.ReadInt();

                break;
            }
            }

            if (m_AosAttributes == null)
            {
                m_AosAttributes = new AosAttributes(this);
            }

            if (m_AosSkillBonuses == null)
            {
                m_AosSkillBonuses = new AosSkillBonuses(this);
            }

            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();
            }
        }
        public override void Deserialize(GenericReader reader) {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch ( version ) {
            case 0:
                drawing = reader.ReadUInt();

                for (uint i = 0; i < jackpot.Length; i++)
                    jackpot[i] = reader.ReadULong();

                for (uint i = 0; i < awards.Length; i++)
                    awards[i] = reader.ReadULong();

                award = reader.ReadULong();
                given = reader.ReadULong();
                destroyed = reader.ReadULong();
                mode = (LotteryBasketMode)reader.ReadInt();

                if (reader.ReadBool()) {
                    outcome = new uint[LotteryConstants.Picks];
                    for (uint p = 0; p < LotteryConstants.Picks; p++)
                        outcome[p] = reader.ReadUInt();
                }

                uint count = reader.ReadUInt();
                for (uint i = 0; i < count; i++) {
                    int id = reader.ReadInt();
                    uint[] data = new uint[LotteryConstants.Picks];
                    for (uint p = 0; p < LotteryConstants.Picks; p++)
                        data[p] = reader.ReadUInt();
                    RegisteredTicket rt = new RegisteredTicket(id, data);
                    rt.Class = reader.ReadInt();
                    tickets[id] = rt;
                }

                count = reader.ReadUInt();
                for (uint i = 0; i < count; i++) {
                    int id = reader.ReadInt();
                    uint[] data = new uint[LotteryConstants.Picks];
                    for (uint p = 0; p < LotteryConstants.Picks; p++)
                        data[p] = reader.ReadUInt();
                    incoming[id] = new RegisteredTicket(id, data);
                }

		board = reader.ReadItem();
		itemPrize = reader.ReadBool();
                break;

	    case 1:
	        drawing = reader.ReadUInt();

                for (uint i = 0; i < drawingCount.Length; i++)
                    drawingCount[i] = reader.ReadUInt();

                for (uint i = 0; i < jackpot.Length; i++)
                    jackpot[i] = reader.ReadULong();

                for (uint i = 0; i < awards.Length; i++)
                    awards[i] = reader.ReadULong();

		for (uint i = 0; i < winners.Length; i++)
                    winners[i] = reader.ReadInt();

		oldParticipants = reader.ReadUInt();

		award = reader.ReadULong();
                given = reader.ReadULong();
                destroyed = reader.ReadULong();
                mode = (LotteryBasketMode)reader.ReadInt();

                if (reader.ReadBool()) {
                    outcome = new uint[LotteryConstants.Picks];
                    for (uint p = 0; p < LotteryConstants.Picks; p++)
                        outcome[p] = reader.ReadUInt();
                }

                count = reader.ReadUInt();
                for (uint i = 0; i < count; i++) {
                    int id = reader.ReadInt();
                    uint[] data = new uint[LotteryConstants.Picks];
                    for (uint p = 0; p < LotteryConstants.Picks; p++)
                        data[p] = reader.ReadUInt();
                    RegisteredTicket rt = new RegisteredTicket(id, data);
                    rt.Class = reader.ReadInt();
                    tickets[id] = rt;
                }

                count = reader.ReadUInt();
                for (uint i = 0; i < count; i++) {
                    int id = reader.ReadInt();
                    uint[] data = new uint[LotteryConstants.Picks];
                    for (uint p = 0; p < LotteryConstants.Picks; p++)
		        data[p] = reader.ReadUInt();
                    incoming[id] = new RegisteredTicket(id, data);
                }

		board = reader.ReadItem();
		itemPrize = reader.ReadBool();
	      break;
            }
        }
Exemplo n.º 22
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            if (!(this is TomeOfEnlightenment || this is TomeOfLostKnowledge || this is FactionTomeOfLostKnowledge))
            {
                LootType = LootType.Blessed;
            }

            int version = reader.ReadInt();

            switch (version)
            {
            case 7:
            {
                m_Exceptional = reader.ReadBool();
                m_Crafter     = reader.ReadMobile();

                goto case 6;
            }

            case 6:
            case 5:
            {
                m_Slayer2 = (SlayerName)reader.ReadEncodedInt();
                goto case 4;
            }

            case 4:
            {
                m_EngraveString = reader.ReadString();
                goto case 3;
            }

            case 3:
            case 2:
            {
                m_Slayer = (SlayerName)reader.ReadEncodedInt();

                goto case 1;
            }

            case 1:
            {
                m_MagicalAttributes = new MagicalAttributes(this, reader);
                m_SkillBonuses      = new SkillBonuses(this, reader);

                if (this is ScrappersCompendium)
                {
                    Attributes.SpellDamage   = 25;
                    Attributes.LowerManaCost = 10;
                }
                else if (this is ClaininsSpellbook)
                {
                    Attributes.LowerRegCost = 15;
                    Attributes.RegenMana    = 3;
                }
                else if (this is TomeOfEnlightenment)
                {
                    Attributes.BonusInt    = 5;
                    Attributes.SpellDamage = 10;
                    Attributes.CastSpeed   = 1;
                }
                else if (this is TomeOfLostKnowledge)
                {
                    SkillBonuses.SetValues(0, SkillName.Magery, 15.0);
                    Attributes.BonusInt      = 8;
                    Attributes.SpellDamage   = 15;
                    Attributes.LowerManaCost = 15;
                }
                else if (this is FactionTomeOfLostKnowledge)
                {
                    SkillBonuses.SetValues(0, SkillName.Magery, 15.0);
                    Attributes.BonusInt      = 8;
                    Attributes.SpellDamage   = 15;
                    Attributes.LowerManaCost = 15;
                    Attributes.RegenMana     = 3;
                }
                else if (this is ConjurersGrimoire)
                {
                    SkillBonuses.SetValues(0, SkillName.Magery, 15.0);
                    Attributes.BonusInt      = 8;
                    Attributes.SpellDamage   = 15;
                    Attributes.LowerManaCost = 10;
                }
                else if (this is FallenMysticsSpellbook)
                {
                    Attributes.SpellDamage = 10;
                }
                else
                {
                    FixAttributes();
                }

                goto case 0;
            }

            case 0:
            {
                m_Content = reader.ReadULong();
                m_Count   = reader.ReadInt();

                break;
            }
            }

            if (m_MagicalAttributes == null)
            {
                m_MagicalAttributes = new MagicalAttributes(this);
            }

            if (m_SkillBonuses == null)
            {
                m_SkillBonuses = new SkillBonuses(this);
            }

            if (Parent is Mobile)
            {
                m_SkillBonuses.AddTo((Mobile)Parent);
            }

            int strBonus = m_MagicalAttributes.BonusStr;
            int dexBonus = m_MagicalAttributes.BonusDex;
            int intBonus = m_MagicalAttributes.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();
            }
        }
Exemplo n.º 23
0
		private static void DeserializeCams(GenericReader reader)
		{
			int version = reader.GetVersion();

			switch (version)
			{
				case 3: // Skip to case 1
					goto case 1;
                case 2:
			        {
                        reader.ReadBlockDictionary(
                            () =>
                            {
                                var cam = reader.ReadMobile<PlayerMobile>();
                                var viewed = reader.ReadMobile<PlayerMobile>();

								return new KeyValuePair<PlayerMobile, PlayerMobile>(cam, viewed);
                            },
                            CurrentlyViewing);			        
			        }
			        goto case 1;
				case 1:
					{
						reader.ReadBlockDictionary(
							() =>
							{
								var player = reader.ReadMobile<PlayerMobile>();
								int count = reader.ReadInt();

								return new KeyValuePair<PlayerMobile, int>(player, count);
							},
							PlayerMurderers);

						reader.ReadBlockDictionary(
							() =>
							{
								BaseCreature mob = reader.ReadMobile<BaseCreature>();
								int count = reader.ReadInt();

								return new KeyValuePair<BaseCreature, int>(mob, count);
							},
							MonsterMurderers);

						CurrentDeathCount = reader.ReadULong();
						CurrentPlayerMurders = reader.ReadULong();
						CurrentMonsterMurders = reader.ReadULong();
					}
					goto case 0;
				case 0:
					{
						if (version < 1)
						{
							CurrentDeathCount = Convert.ToUInt64(reader.ReadInt());
							CurrentPlayerMurders = Convert.ToUInt64(reader.ReadInt());
							CurrentMonsterMurders = Convert.ToUInt64(reader.ReadInt());
						}

						TopPlayerMurderer = reader.ReadMobile<PlayerMobile>();
						TopMonsterMurderer = reader.ReadMobile<BaseCreature>();

						if (version < 1)
						{
							reader.ReadBlockDictionary(
								() =>
								{
									var player = reader.ReadMobile<PlayerMobile>();
									DateTime date = reader.ReadDateTime();

									return new KeyValuePair<PlayerMobile, DateTime>(player, date);
								},
								DeathCams);

							reader.ReadBlockDictionary(
								() =>
								{
									var player = reader.ReadMobile<PlayerMobile>();
									DateTime date = reader.ReadDateTime();

									return new KeyValuePair<PlayerMobile, DateTime>(player, date);
								},
								DeathCamsEvents);
						}
					}
					break;
			}
		}
Exemplo n.º 24
0
		public override void Deserialize(GenericReader reader)
		{
			base.Deserialize(reader);

			int version = reader.ReadInt();

			switch (version)
			{
				case 5:
					{
						m_Quality = (BookQuality)reader.ReadByte();

						goto case 4;
					}
				case 4:
					{
						m_EngravedText = reader.ReadString();

						goto case 3;
					}
				case 3:
					{
						m_Crafter = reader.ReadMobile();
						goto case 2;
					}
				case 2:
					{
						m_Slayer = (SlayerName)reader.ReadInt();
						m_Slayer2 = (SlayerName)reader.ReadInt();
						goto case 1;
					}
				case 1:
					{
						m_AosAttributes = new AosAttributes(this, reader);
						m_AosSkillBonuses = new AosSkillBonuses(this, reader);

						goto case 0;
					}
				case 0:
					{
						m_Content = reader.ReadULong();
						m_Count = reader.ReadInt();

						break;
					}
			}

			if (m_AosAttributes == null)
			{
				m_AosAttributes = new AosAttributes(this);
			}

			if (m_AosSkillBonuses == null)
			{
				m_AosSkillBonuses = new AosSkillBonuses(this);
			}

			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();
			}
		}
Exemplo n.º 25
0
		public override void Deserialize(GenericReader reader)
		{
			base.Deserialize(reader);
			int version = reader.ReadInt();
			m_Active = reader.ReadBool();
			m_Casino = (Casino)reader.ReadInt();
			m_CasinoName = reader.ReadString();
			m_TotalPlays = reader.ReadULong();
			m_TotalCollected = reader.ReadULong();
			m_TotalWon = reader.ReadULong();
			m_ErrorCode = reader.ReadInt();
			m_OrigHue = reader.ReadInt();

			m_InUseBy = reader.ReadMobile();
			m_OnCredit = reader.ReadInt();
			m_Escrow = reader.ReadInt();

			m_SecurityCamMobile = reader.ReadMobile();
			m_SecurityChatter = (VerboseType)reader.ReadInt();

			m_Bet = reader.ReadInt();
			m_TestMode = reader.ReadBool();

			m_DealerDelay = reader.ReadBool();
			m_DoubleAfterSplit = reader.ReadBool();
			m_DealerHitsSoft17 = reader.ReadBool();
			m_DealerTakesPush = reader.ReadBool();
			m_Resplits = reader.ReadBool();
			m_SplitAces = (SplitAces)reader.ReadInt();
			m_BJSplitAces21 = reader.ReadBool();
			m_BJSplitAcesPaysEven = reader.ReadBool();
			m_DoubleDown = (DoubleDown)reader.ReadInt();
			m_PlayerCardsFaceUp = reader.ReadBool();
			m_DealerCardsFaceUp = reader.ReadBool();
			m_NumberOfDecks = reader.ReadShort();
			m_ContinuousShuffle = reader.ReadBool();
			m_MinBet = (BetValues)reader.ReadInt();
			m_MaxBet = (BetValues)reader.ReadInt();
			m_BlackJackPays = (BlackJackPays)reader.ReadInt();
			m_CardSounds = reader.ReadBool();
			carddeck = new CardDeck(m_NumberOfDecks,0);
			m_BJInfo.HandInfo = new HandStruct[5];
			for (int h = 0; h < 5; h++)
			{
				m_BJInfo.HandInfo[h].bet = 0;
				m_BJInfo.HandInfo[h].totalcards = 0;
				m_BJInfo.HandInfo[h].card = new short[12];
				for (int c = 0; c < 12; c++)
					m_BJInfo.HandInfo[h].card[c] = -1;
				m_BJInfo.HandInfo[h].bestscore = 0;
				m_BJInfo.HandInfo[h].altscore = 0;
			}
		}
Exemplo n.º 26
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 5:
            {
                m_Quality = (BookQuality)reader.ReadByte();

                goto case 4;
            }

            case 4:
            {
                m_EngravedText = reader.ReadString();

                goto case 3;
            }

            case 3:
            {
                m_Crafter = reader.ReadMobile();
                goto case 2;
            }

            case 2:
            {
                m_Slayer  = (SlayerName)reader.ReadInt();
                m_Slayer2 = (SlayerName)reader.ReadInt();
                goto case 1;
            }

            case 1:
            {
                m_AosAttributes   = new AosAttributes(this, reader);
                m_AosSkillBonuses = new AosSkillBonuses(this, reader);

                goto case 0;
            }

            case 0:
            {
                m_Content = reader.ReadULong();
                m_Count   = reader.ReadInt();

                break;
            }
            }

            if (m_AosAttributes == null)
            {
                m_AosAttributes = new AosAttributes(this);
            }

            if (m_AosSkillBonuses == null)
            {
                m_AosSkillBonuses = new AosSkillBonuses(this);
            }

            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();
            }
        }
Exemplo n.º 27
0
        public object DeserializeObject(GenericReader reader)
        {
            object        output        = null;
            XmlObjectType xmlObjectType = (XmlObjectType)reader.ReadInt();

            if (xmlObjectType == XmlObjectType.Mobile)
            {
                output = reader.ReadMobile();
            }
            else if (xmlObjectType == XmlObjectType.Item)
            {
                output = reader.ReadItem();
            }
            else if (xmlObjectType == XmlObjectType.MobileList)
            {
                output = reader.ReadStrongMobileList();
            }
            else if (xmlObjectType == XmlObjectType.ItemList)
            {
                output = reader.ReadStrongItemList();
            }
            else if (xmlObjectType == XmlObjectType.ArrayList)
            {
                int       elements = reader.ReadInt();
                ArrayList list     = new ArrayList(elements);
                for (int i = 0; i < elements; i++)
                {
                    list.Add(DeserializeObject(reader));
                }
                output = list;
            }
            else if (xmlObjectType == XmlObjectType.DateTime)
            {
                output = reader.ReadDateTime();
            }
            else if (xmlObjectType == XmlObjectType.DateTimeOffset)
            {
                output = reader.ReadDateTimeOffset();
            }
            else if (xmlObjectType == XmlObjectType.BaseGuild)
            {
                output = reader.ReadGuild();
            }
            else if (xmlObjectType == XmlObjectType.IPAddress)
            {
                output = reader.ReadIPAddress();
            }
            else if (xmlObjectType == XmlObjectType.Map)
            {
                output = reader.ReadMap();
            }
            else if (xmlObjectType == XmlObjectType.Point3D)
            {
                output = reader.ReadPoint3D();
            }
            else if (xmlObjectType == XmlObjectType.Point2D)
            {
                output = reader.ReadPoint2D();
            }
            else if (xmlObjectType == XmlObjectType.TimeSpan)
            {
                output = reader.ReadTimeSpan();
            }
            else if (xmlObjectType == XmlObjectType.Rectangle2D)
            {
                output = reader.ReadRect2D();
            }
            else if (xmlObjectType == XmlObjectType.Rectangle3D)
            {
                output = reader.ReadRect3D();
            }
            else if (xmlObjectType == XmlObjectType.Double)
            {
                output = reader.ReadDouble();
            }
            else if (xmlObjectType == XmlObjectType.Integer)
            {
                output = reader.ReadInt();
            }
            else if (xmlObjectType == XmlObjectType.Boolean)
            {
                output = reader.ReadBool();
            }
            else if (xmlObjectType == XmlObjectType.UInt64)
            {
                output = reader.ReadULong();
            }
            else if (xmlObjectType == XmlObjectType.String)
            {
                output = reader.ReadString();
            }
            else if (xmlObjectType == XmlObjectType.Type)
            {
                output = UberScriptFunctions.Methods.TYPE(null, reader.ReadString());
            }
            else if (xmlObjectType == XmlObjectType.Other)
            {
                LoggingCustom.Log(
                    "ERROR_Uberscript.txt",
                    DateTime.Now + ": xmlobject: " + Name + " attached to " + AttachedTo +
                    " with data of type other was deserialized");
            }
            return(output);
        }