public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); m_StoredColorName = reader.ReadString(); m_StoredColorNamePrefix = reader.ReadString(); m_StoredColor = (int) reader.ReadShort(); m_Prepped = reader.ReadBool(); m_Uses = (int) reader.ReadShort(); // Handle tubs which have been lightened / darkened and not marked prepped for vice versa if( version == 0 ) { Prepped = true; for(int i = 0; i < 8; i++ ) if( StoredColor == m_SpecialColors[i, 0] ) Prepped = false; } }
public void Deserialize( GenericReader gr ) { place = gr.ReadByte(); action = (ushort)gr.ReadShort(); type = gr.ReadByte(); other = gr.ReadByte(); }
public void Load(GenericReader sr) { // Load instancing data // version short version = sr.ReadShort(); switch (version) { case 0: { m_Name = sr.ReadString(); m_StartIndex = sr.ReadShort(); m_LastIndex = sr.ReadShort(); m_CurIndex = sr.ReadShort(); m_StartDate = sr.ReadDateTime(); m_EndDate = sr.ReadDateTime(); m_Serial = (Serial)sr.ReadInt(); break; } } return; }
public bool Load(GenericReader sr) { // Load instancing data // version short version = sr.ReadShort(); switch (version) { case 0: { m_Name = sr.ReadString(); // get the name m_Rarity = sr.ReadShort(); // Now grab the rarity level! int numDODs = sr.ReadShort(); // How many DODs does this group link? if( numDODs == 0 ) // are there any to process? return true; // Read them all in for (int ig = 0; ig < numDODs; ig++) { string sDOD = sr.ReadString(); // Match the equivalent DOD instances and link for (int ii = 0; ii < RareFactory.DODInst.Count; ii++) { if (RareFactory.DODInst[ii] is DODInstance) { if (((DODInstance)RareFactory.DODInst[ii]).Name == sDOD) { m_DODInst.Add( (DODInstance) RareFactory.DODInst[ii] ); // adam: shouldn't we be breaking here?!! } } } } } break; } return true; }
public override void Deserialize( GenericReader gr, int ind, bool fake ) { base.Deserialize( gr, ind, true ); int version = gr.ReadInt(); id = gr.ReadInt(); level = (ProfessionLevels)gr.ReadShort(); // castingTime = gr.ReadInt(); // coolDown = gr.ReadInt(); }
public virtual void Deserialize( GenericReader gr ) { int version = gr.ReadInt(); guid = gr.ReadInt64(); X = gr.ReadFloat(); Y = gr.ReadFloat(); Z = gr.ReadFloat(); Orientation = gr.ReadFloat(); MapId = (UInt16)gr.ReadShort(); ZoneId = (int)gr.ReadInt(); /* int dec = gr.ReadInt(); if ( dec == 1 ) decay = DateTime.Now;*/ }
public virtual void Deserialize( GenericReader gr, int ind, bool fake ) { int version = gr.ReadInt(); index = (ushort)ind; current = (ushort)gr.ReadShort(); max = (ushort)gr.ReadShort(); }
public void Deserialize(GenericReader reader) { Flag = reader.ReadFlag <DataType>(); Type = Flag.ToType(); switch (Flag) { case DataType.Null: Value = null; break; case DataType.Bool: Value = reader.ReadBool(); break; case DataType.Char: Value = reader.ReadChar(); break; case DataType.Byte: Value = reader.ReadByte(); break; case DataType.SByte: Value = reader.ReadSByte(); break; case DataType.Short: Value = reader.ReadShort(); break; case DataType.UShort: Value = reader.ReadUShort(); break; case DataType.Int: Value = reader.ReadInt(); break; case DataType.UInt: Value = reader.ReadUInt(); break; case DataType.Long: Value = reader.ReadLong(); break; case DataType.ULong: Value = reader.ReadULong(); break; case DataType.Float: Value = reader.ReadFloat(); break; case DataType.Decimal: Value = reader.ReadDecimal(); break; case DataType.Double: Value = reader.ReadDouble(); break; case DataType.String: Value = reader.ReadString() ?? String.Empty; break; case DataType.DateTime: Value = reader.ReadDateTime(); break; case DataType.TimeSpan: Value = reader.ReadTimeSpan(); break; } }
public override void Deserialize( GenericReader gr ) { int version = gr.ReadInt(); // id = gr.ReadInt(); UInt64 g = gr.ReadInt64(); SpawnerLink = null;//(BaseSpawner)MobileList.TempSpawner[ g ]; int esu = 0; int ech = 0; esu = gr.ReadInt(); ech = gr.ReadInt(); name = gr.ReadString(); if ( version > 0 ) classe = (Classes)gr.ReadInt(); talent = gr.ReadInt(); Level = gr.ReadInt(); model = gr.ReadInt(); exp = (uint)gr.ReadInt(); guildId = (uint)gr.ReadInt(); petLevel = (uint)gr.ReadInt(); petCreatureFamily = (uint)gr.ReadInt(); petDisplayId = (uint)gr.ReadInt(); speed = gr.ReadFloat(); size = gr.ReadFloat(); faction = (Factions)gr.ReadInt(); str = gr.ReadInt(); agility = gr.ReadInt(); stamina = gr.ReadInt(); iq = gr.ReadInt(); spirit = gr.ReadInt(); baseStr = gr.ReadFloat(); baseAgility = gr.ReadFloat(); baseStamina = gr.ReadFloat(); baseIq = gr.ReadFloat(); baseSpirit = gr.ReadFloat(); walkSpeed = gr.ReadFloat(); if ( walkSpeed == 0 ) walkSpeed = 4.7777f; runSpeed = gr.ReadFloat(); if ( runSpeed == 0 ) runSpeed = 7f; swimSpeed = gr.ReadFloat(); if ( swimSpeed == 0 ) swimSpeed = 4.72f; swimBackSpeed = gr.ReadFloat(); if ( swimBackSpeed == 0 ) swimBackSpeed = 2.5f; hitPoints = gr.ReadInt(); mana = gr.ReadInt(); energy = gr.ReadInt(); rage = gr.ReadInt(); focus = gr.ReadInt(); baseHitPoints = gr.ReadInt(); baseMana = gr.ReadInt(); baseEnergy = gr.ReadInt(); baseRage = gr.ReadInt(); baseFocus = gr.ReadInt(); block = gr.ReadInt(); armor = gr.ReadInt(); resistHoly = gr.ReadInt(); resistFire = gr.ReadInt(); resistNature = gr.ReadInt(); resistFrost = gr.ReadInt(); resistShadow = gr.ReadInt(); resistArcane = gr.ReadInt(); int nSkills = gr.ReadInt(); for(int t = 0;t < nSkills;t++ ) { ushort skill = (ushort)gr.ReadShort(); allSkills[ skill ] = Skill.Deserialize( gr, t ); } int nSpells = gr.ReadInt(); for(int t = 0;t < nSpells;t++ ) { ushort spell = (ushort)gr.ReadShort(); byte place = gr.ReadByte(); knownAbilities[ (int)spell ] = (int)place; /* if ( TalentDescription.IsTalent( (int)spell ) ) { if ( onInitialiseTalent[ (int)spell ] != null ) { ( onInitialiseTalent[ (int)spell ] as TalentHandlers.TalentHandler )( Abilities.abilities[ (int)spell ], this ); } // this.AddPermanentAura( Abilities.abilities[ (int)spell ], new Aura() ); // permanentAura.Add( spell ); }*/ } int nTalentList = gr.ReadInt(); for(int t = 0;t < nTalentList;t++ ) { int spell = gr.ReadInt(); int lev = gr.ReadInt(); talentList[ spell ] = (int)lev; } if ( gr.ReadInt() != 0 ) freeze = true; int nit = gr.ReadInt(); for(int t = 0;t < nit;t++ ) { int n = gr.ReadInt(); if ( n == 1 ) items[ t ] = Item.Load( gr ); else items[ t ] = null; } if ( gr.ReadInt() != 0 ) movementChange = true; manaType = gr.ReadInt(); professions = gr.ReadByte(); standState = (StandStates)gr.ReadInt(); base.Deserialize( gr ); moveVector = new MoveVector( this, X, Y, Z ); // if ( this is BaseSpawner ) // MobileList.TempSpawner[ Guid ] = this; if ( esu != 0 ) MobileList.TempSummon[ Guid ] = this; if ( ech != 0 ) MobileList.TempSummon[ Guid ] = this; //movementTimer = new MovementTimer( this ); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); short version = reader.ReadShort(); switch( version ) { case 1 : goto case 0; case 0 : m_Identified = reader.ReadBool(); string sType =reader.ReadString(); ItemType = ScriptCompiler.FindTypeByName( sType ); // iProps iProps = new int[4]; iProps[0] = (int) reader.ReadShort(); iProps[1] = (int) reader.ReadShort(); iProps[2] = (int) reader.ReadShort(); iProps[3] = (int) reader.ReadShort(); if( version < 1 ) reader.ReadString(); // ID label // Approx label sApproxLabel = reader.ReadString(); // Skill stuff SkillReq = new int[52]; iMajorSkill = (int) reader.ReadShort(); if( version < 1 ) { // Add new lines to name property if( m_Identified ) this.Name = string.Format( "an enchanted {0} scroll\n\n", sApproxLabel); // Fix any BlackStaffs or Pitchforks if( iMajorSkill == (int) SkillName.Blacksmith && ( ItemType == typeof( BlackStaff ) || ItemType == typeof( Pitchfork ) ) ) iMajorSkill = (int) SkillName.Tinkering; } SkillReq[(int) SkillName.Magery] = 80; SkillReq[ iMajorSkill ] = 90; // Determine skill required : if( ItemType.IsSubclassOf(typeof(BaseJewel)) || ItemType.IsSubclassOf(typeof(BaseClothing)) ) SkillReq[(int) SkillName.ItemID] = 80; else SkillReq[(int) SkillName.ArmsLore] = 80; break; } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 8: //erl - added to handle packing out of PlayerConstructed property { goto case 7; } case 7: //erl - added for clothing wear { m_HitPoints = reader.ReadShort(); m_MaxHitPoints = reader.ReadShort(); goto case 6; } case 6: //Adam - Addition for Scissorable attribute { m_Scissorable = reader.ReadBool(); goto case 5; } case 5: //Adam - Addition for Dyable attribute { m_Dyable = reader.ReadBool(); goto case 4; } case 4: //Pigpen - Addition for IOB System { m_IOBAlignment = (IOBAlignment)reader.ReadInt(); goto case 3; } case 3: { m_MagicType = (MagicEffect)reader.ReadInt(); m_MagicCharges = reader.ReadInt(); m_Identified = reader.ReadBool(); goto case 2; } case 2: { // erl: this is the old PlayerConstructed flag, which will no longer // exist for anything over version 7... made obsolete by PlayerCrafted if (version < 8) { PlayerCrafted = 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 < 5) // Adam - addition for dye control { // Allow for other non-dyable clothes outside the IOB system if (m_IOBAlignment != IOBAlignment.None) { m_Dyable = false; } } if (version < 7) { // erl: this pre-dates hit point additions, so calculate values // .. // Check the quality of the piece. If it's exceptional or low, we want // the piece's hitpoint to reflect this int iMax = InitMaxHits; int iMin = InitMinHits; if (Quality == ClothingQuality.Exceptional) { // Add 50% to both iMax = (iMax * 3) / 2; // Fixed order of precedence bug iMin = (iMin * 3) / 2; } else if (Quality == ClothingQuality.Low) { // Lose 20% to both iMax = (iMax * 4) / 5; // Fixed order of precedence bug iMin = (iMin * 4) / 5; } m_HitPoints = m_MaxHitPoints = (short)Utility.RandomMinMax(iMin, iMax); } // adam: To keep players from farming new characters for newbie clothes // we are moving this valuable resource into the hands of crafters. if (version <= 7) { if (Quality == ClothingQuality.Exceptional && MagicCharges == 0) { // make exceptional clothes newbied LootType = LootType.Newbied; } else if (MagicCharges > 0) { // erl: explicitly change these pieces so they aren't newbied LootType = LootType.Regular; } } }
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; } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.GetVersion(); switch (version) { case 3: AllowNoOwner = reader.ReadBool(); goto case 2; case 2: case 1: Silent = reader.ReadBool(); goto case 0; case 0: { Usage = reader.ReadString(); Token = reader.ReadString(); AllowCombat = reader.ReadBool(); AllowDeadUser = reader.ReadBool(); Consumable = reader.ReadBool(); ClearHands = reader.ReadBool(); DismountUser = reader.ReadBool(); EffectID = reader.ReadInt(); EffectHue = reader.ReadInt(); EffectSpeed = reader.ReadInt(); if (version < 2) { EffectRender = (EffectRender)reader.ReadShort(); TargetFlags = (TargetFlags)reader.ReadByte(); } else { EffectRender = reader.ReadFlag <EffectRender>(); TargetFlags = reader.ReadFlag <TargetFlags>(); } ThrowSound = reader.ReadInt(); ImpactSound = reader.ReadInt(); ThrowRange = reader.ReadInt(); ThrowRecovery = reader.ReadTimeSpan(); ThrownLast = reader.ReadDateTime(); if (version < 2) { RequiredSkill = (SkillName)reader.ReadShort(); } else { RequiredSkill = reader.ReadFlag <SkillName>(); } RequiredSkillValue = reader.ReadDouble(); } break; } }
public override void Deserialize( GenericReader gr ) { base.Deserialize( gr ); int version = gr.ReadInt(); if ( version > 6 ) { int nreput = gr.ReadInt(); for(int t = 0;t < nreput;t++ ) { int krep = gr.ReadInt(); int vrep = gr.ReadInt(); reputationAdjustments[ krep ] = vrep; } } if ( version > 5 ) { int nact = gr.ReadInt(); for(int t = 0;t < nact;t++ ) actionBar.Add( new Action( gr ) ); } if ( version > 4 ) { int nf = gr.ReadInt(); for(int t = 0;t < nf;t++ ) { UInt64 gu = (UInt64)gr.ReadInt64(); friends.Add( gu ); string user = gr.ReadString(); friends.Add( user ); } } if ( version > 2 ) { BindingPointX = gr.ReadFloat(); BindingPointY = gr.ReadFloat(); BindingPointZ = gr.ReadFloat(); BindingPointMapId = (UInt16)gr.ReadInt(); } if ( version > 1 ) { bool pa = gr.ReadBool(); if ( pa ) { petActions = new int[ 11 ]; for(int t = 0;t < 11;t++ ) petActions[ t ] = gr.ReadInt(); } } int sum = gr.ReadInt(); if ( sum != 0 ) { UInt64 g = gr.ReadInt64(); if ( version > 7 ) { int sid = gr.ReadInt(); Summon = new BaseCreature( gr ); Summon.Id = sid; } // Summon = (Mobile)MobileList.TempSummon[ g ]; Summon.SummonedBy = this; ( Summon as BaseCreature ).AIEngine = new SummonedAI( this, Summon as BaseCreature ); } sum = gr.ReadInt(); if ( sum != 0 ) { Charm = (Mobile)MobileList.TempSummon[ gr.ReadInt64() ]; Charm.CharmedBy = this; ( Charm as BaseCreature ).AIEngine = new SummonedAI( this, Charm as BaseCreature ); } CorpseLocationX = gr.ReadFloat(); CorpseLocationY = gr.ReadFloat(); CorpseLocationZ = gr.ReadFloat(); if ( version > 3 ) CorpseMapId = (ushort)gr.ReadShort(); corpsGuid = gr.ReadInt64(); zones = new uint[ 32 ]; for(int t = 0;t < 32;t++ ) zones[ t ] = (uint)gr.ReadInt(); int exi = gr.ReadInt(); if ( exi == 1 ) { mark = new Position( gr.ReadFloat(), gr.ReadFloat(), gr.ReadFloat(), gr.ReadInt() ); } ammoType = gr.ReadInt(); race = (Races)gr.ReadByte(); if ( version == 0 ) Classe = (Classes)gr.ReadByte(); gender = gr.ReadByte(); skin = gr.ReadByte(); face = gr.ReadByte(); hairStyle = gr.ReadByte(); hairColour = gr.ReadByte(); facialHair = gr.ReadByte(); copper = (uint)gr.ReadInt(); int nactq = 20; for(int t = 0;t < nactq;t++ ) { int vv = gr.ReadInt(); if ( vv == 1 ) { ActiveQuest aq = new ActiveQuest( gr ); if ( aq.Id > 0 ) AddQuest( aq ); } } int nq = gr.ReadInt(); for(int t = 0;t < nq;t++ ) { int id = gr.ReadInt(); questsDone[ id ] = true; } for(int g = 0;g < 8;g++ ) { int field = gr.ReadInt(); TaxiField[ g ] = (uint)field; } // RunSpeed = 11f; }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); m_TreasureLevel = (TreasureLevel)reader.ReadByte(); m_MinSpawnTime = reader.ReadShort(); m_MaxSpawnTime = reader.ReadShort(); if( !Locked ) StartResetTimer(); }
public DesignState( HouseFoundation foundation, GenericReader reader ) { m_Foundation = foundation; int version = reader.ReadInt(); switch( version ) { case 0: { m_Components = new MultiComponentList( reader ); int length = reader.ReadInt(); m_Fixtures = new MultiTileEntry[length]; for( int i = 0; i < length; ++i ) { m_Fixtures[i].m_ItemID = reader.ReadUShort(); m_Fixtures[i].m_OffsetX = reader.ReadShort(); m_Fixtures[i].m_OffsetY = reader.ReadShort(); m_Fixtures[i].m_OffsetZ = reader.ReadShort(); m_Fixtures[i].m_Flags = reader.ReadInt(); } m_Revision = reader.ReadInt(); break; } } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 5: { // erl: New "crafted by" and quality properties m_Crafter = reader.ReadMobile(); m_Quality = (JewelQuality)reader.ReadShort(); goto case 4; } case 4: { // remove AOS crap // see case 1 below goto case 3; } case 3: { m_MagicType = (JewelMagicEffect)reader.ReadInt(); m_MagicCharges = reader.ReadInt(); m_Identified = reader.ReadBool(); goto case 2; } case 2: { m_Resource = (CraftResource)reader.ReadEncodedInt(); m_GemType = (GemType)reader.ReadEncodedInt(); goto case 1; } case 1: { // pack these out of furture versions. if (version < 4) { AosAttributes dmy_AosAttributes; AosElementAttributes dmy_AosResistances; AosSkillBonuses dmy_AosSkillBonuses; dmy_AosAttributes = new AosAttributes(this, reader); dmy_AosResistances = new AosElementAttributes(this, reader); dmy_AosSkillBonuses = new AosSkillBonuses(this, reader); if (Core.AOS && Parent is Mobile) { dmy_AosSkillBonuses.AddTo((Mobile)Parent); } int strBonus = dmy_AosAttributes.BonusStr; int dexBonus = dmy_AosAttributes.BonusDex; int intBonus = dmy_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(); } break; } case 0: { // pack these out of furture versions. if (version < 4) { AosAttributes dmy_AosAttributes; AosElementAttributes dmy_AosResistances; AosSkillBonuses dmy_AosSkillBonuses; dmy_AosAttributes = new AosAttributes(this); dmy_AosResistances = new AosElementAttributes(this); dmy_AosSkillBonuses = new AosSkillBonuses(this); } break; } } if (version < 2) { m_Resource = CraftResource.Iron; m_GemType = GemType.None; } if (version < 5) { m_Quality = JewelQuality.Regular; } }