Beispiel #1
0
      public override void Serialize( GenericWriter writer ) 
      { 
         base.Serialize( writer ); 

         writer.Write( (int) 0 ); // version 
          
         writer.WriteMobileList( m_Voteds, true ); 
      } 
		private static bool Serialize(GenericWriter writer)
		{
			writer.WriteBlockDictionary(
				Registry,
				(name, players) =>
				{
					writer.Write(name);
					writer.WriteMobileList(players, true);
				});

			return true;
		}
Beispiel #3
0
        public void SaveGlobalListens(GenericWriter writer)
        {
            writer.Write(1); // Version

            writer.WriteMobileList(c_GIgnores, true);
            writer.WriteMobileList(c_GListens, true);
        }
        public override void Serialize( GenericWriter writer )
        {
            base.Serialize( writer );

            writer.WriteEncodedInt( 0 ); // version

            writer.WriteMobileList<Mobile>( m_Spawned );
        }
Beispiel #5
0
        public override void Serialize( GenericWriter writer )
        {
            base.Serialize( writer );

            //ARTEGORDONMOD
            // changed from version 13 to version 14
            writer.Write( (int) 14 ); // version

            writer.Write( (int)m_CurrentAI );
            writer.Write( (int)m_DefaultAI );

            writer.Write( (int)m_iRangePerception );
            writer.Write( (int)m_iRangeFight );

            writer.Write( (int)m_iTeam );

            writer.Write( (double)m_dActiveSpeed );
            writer.Write( (double)m_dPassiveSpeed );
            writer.Write( (double)m_dCurrentSpeed );

            writer.Write( (int) m_pHome.X );
            writer.Write( (int) m_pHome.Y );
            writer.Write( (int) m_pHome.Z );

            // Version 1
            writer.Write( (int) m_iRangeHome );

            int i=0;

            writer.Write( (int) m_arSpellAttack.Count );
            for ( i=0; i< m_arSpellAttack.Count; i++ )
            {
                writer.Write( m_arSpellAttack[i].ToString() );
            }

            writer.Write( (int) m_arSpellDefense.Count );
            for ( i=0; i< m_arSpellDefense.Count; i++ )
            {
                writer.Write( m_arSpellDefense[i].ToString() );
            }

            // Version 2
            writer.Write( (int) m_FightMode );

            writer.Write( (bool) m_bControled );
            writer.Write( (Mobile) m_ControlMaster );
            writer.Write( (Mobile) m_ControlTarget );
            writer.Write( (Point3D) m_ControlDest );
            writer.Write( (int) m_ControlOrder );
            writer.Write( (double) m_dMinTameSkill );
            // Removed in version 9
            //writer.Write( (double) m_dMaxTameSkill );
            writer.Write( (bool) m_bTamable );
            writer.Write( (bool) m_bSummoned );

            if ( m_bSummoned )
                writer.WriteDeltaTime( m_SummonEnd );

            writer.Write( (int) m_iControlSlots );

            // Version 3
            writer.Write( (int)m_Loyalty );

            // Version 4
            writer.Write( m_CurrentWayPoint );

            // Verison 5
            writer.Write( m_SummonMaster );

            // Version 6
            writer.Write( (int) m_HitsMax );
            writer.Write( (int) m_StamMax );
            writer.Write( (int) m_ManaMax );
            writer.Write( (int) m_DamageMin );
            writer.Write( (int) m_DamageMax );

            // Version 7
            writer.Write( (int) m_PhysicalResistance );
            writer.Write( (int) m_PhysicalDamage );

            writer.Write( (int) m_FireResistance );
            writer.Write( (int) m_FireDamage );

            writer.Write( (int) m_ColdResistance );
            writer.Write( (int) m_ColdDamage );

            writer.Write( (int) m_PoisonResistance );
            writer.Write( (int) m_PoisonDamage );

            writer.Write( (int) m_EnergyResistance );
            writer.Write( (int) m_EnergyDamage );

            // Version 8
            writer.WriteMobileList( m_Owners, true );

            // Version 10
            writer.Write( (bool) m_IsDeadPet );
            writer.Write( (bool) m_IsBonded );
            writer.Write( (DateTime) m_BondingBegin );
            writer.Write( (DateTime) m_OwnerAbandonTime );

            // Version 11
            writer.Write( (bool) m_HasGeneratedLoot );

            // Version 12
            writer.Write( (bool) m_Paragon );

            // Version 13
            writer.Write( (bool) ( m_Friends != null && m_Friends.Count > 0 ) );

            if ( m_Friends != null && m_Friends.Count > 0 )
                writer.WriteMobileList( m_Friends, true );

            // ARTEGORDONMOD
            // Version 14
            if(m_AI != null && m_AI.m_DeactivationTimer != null && m_AI.m_DeactivationTimer.Running){
                 // write out the time left on the deactivation timer
                 writer.Write( (TimeSpan) (m_AI.m_DeactivationTimer.m_End - DateTime.Now));
            } else {
                 // not active so on deserialization deactivate immediately
                 writer.Write( (TimeSpan) TimeSpan.Zero );
            }
        }
        public override void Serialize( GenericWriter writer )
        {
            //cleanup our anti-macro table
            foreach ( Hashtable t in m_AntiMacroTable.Values )
            {
                ArrayList remove = new ArrayList();
                foreach ( CountAndTimeStamp time in t.Values )
                {
                    if ( time.TimeStamp + SkillCheck.AntiMacroExpire <= DateTime.Now )
                        remove.Add( time );
                }

                for (int i=0;i<remove.Count;++i)
                    t.Remove( remove[i] );
            }

            if ( m_NextBountyDecay != DateTime.MinValue )
            {
                bool update = false;
                while ( m_Bounty > 0 && m_NextBountyDecay < DateTime.Now )
                {
                    update = true;
                    m_Bounty -= 100;
                    m_NextBountyDecay += TimeSpan.FromDays( 1.0 );
                }

                if ( m_Bounty < 0 )
                    m_Bounty = 0;

                if ( update )
                    BountyBoard.Update( this );
            }

            base.Serialize( writer );

            writer.Write( (int) 18 ); // version

            writer.Write( m_NextBountyDecay );

            writer.Write( m_LastUpdate );
            writer.Write( m_LastLogin );

            writer.Write( m_NextNotoUp );
            writer.Write( m_Cohesion );
            writer.Write( (TimeSpan)(DateTime.Now - m_LastCohesion) );
            writer.Write( m_AssumeGhost );
            writer.Write( (byte)m_SkillUsageOrder.Length );
            for(int i=0;i<m_SkillUsageOrder.Length;i++)
                writer.Write( (byte)m_SkillUsageOrder[i] );

             	writer.Write( (int) m_Bounty );

            writer.WriteEncodedInt( m_CompassionGains );

            if ( m_CompassionGains > 0 )
                writer.WriteDeltaTime( m_NextCompassionDay );

            bool useMods = ( m_HairModID != -1 || m_BeardModID != -1 );

            writer.Write( useMods );

            if ( useMods )
            {
                writer.Write( (int) m_HairModID );
                writer.Write( (int) m_HairModHue );
                writer.Write( (int) m_BeardModID );
                writer.Write( (int) m_BeardModHue );
            }

            writer.Write( SavagePaintExpiration );

            writer.Write( (int) m_NpcGuild );
            writer.Write( (DateTime) m_NpcGuildJoinTime );
            writer.Write( (TimeSpan) m_NpcGuildGameTime );

            writer.WriteMobileList( m_PermaFlags, true );

            writer.Write( NextTailorBulkOrder );

            writer.Write( NextSmithBulkOrder );

            writer.WriteDeltaTime( m_LastJusticeLoss );
            writer.WriteMobileList( m_JusticeProtectors, true );

            writer.WriteDeltaTime( m_LastSacrificeGain );
            writer.WriteDeltaTime( m_LastSacrificeLoss );
            writer.Write( m_AvailableResurrects );

            writer.Write( (int) m_Flags );

            writer.Write( m_LongTermElapse );
            writer.Write( m_ShortTermElapse );
            writer.Write( this.GameTime );
        }
        public override void Serialize( GenericWriter writer )
        {
            base.Serialize( writer );

            writer.Write( (int) 4 ); // version

            writer.WriteMobileList( m_Identified, true );

            writer.Write( (int)m_Effect );
            writer.Write( (int)m_EffectCharges );
            //writer.Write( m_Identified );

            writer.Write( (bool) m_PlayerConstructed );

            writer.Write( (Mobile) m_Crafter );
            writer.Write( (int) m_Quality );
        }
Beispiel #8
0
        public virtual void Serialize( GenericWriter writer )
        {
            writer.Write( (int) 28 ); // version

            writer.WriteDeltaTime( m_LastStatGain );

            writer.Write( (int) m_TithingPoints );

            writer.Write( m_Corpse );

            writer.Write( m_CreationTime );

            writer.WriteMobileList( m_Stabled, true );

            writer.Write( m_CantWalk );

            VirtueInfo.Serialize( writer, m_Virtues );

            writer.Write( m_Thirst );
            writer.Write( m_BAC );

            writer.Write( m_ShortTermMurders );
            //writer.Write( m_ShortTermElapse );
            //writer.Write( m_LongTermElapse );

            //writer.Write( m_Followers );
            writer.Write( m_FollowersMax );

            writer.Write( m_MagicDamageAbsorb );

            writer.Write( m_GuildFealty );

            writer.Write( m_Guild );

            writer.Write( m_DisplayGuildTitle );

            writer.Write( m_CanSwim );

            writer.Write( m_Squelched );

            writer.Write( m_Holding );

            writer.Write( m_VirtualArmor );

            writer.Write( m_BaseSoundID );

            writer.Write( m_DisarmReady );
            writer.Write( m_StunReady );

            //Poison.Serialize( m_Poison, writer );

            writer.Write( m_StatCap );

            writer.Write( m_NameHue );

            writer.Write( m_Hunger );

            writer.Write( m_Location );
            writer.Write( (int) m_Body );
            writer.Write( m_Name );
            writer.Write( m_GuildTitle );
            writer.Write( m_Criminal );
            writer.Write( m_Kills );
            writer.Write( m_SpeechHue );
            writer.Write( m_EmoteHue );
            writer.Write( m_WhisperHue );
            writer.Write( m_YellHue );
            writer.Write( m_Language );
            writer.Write( m_Female );
            writer.Write( m_Warmode );
            writer.Write( m_Hidden );
            writer.Write( (byte) m_Direction );
            writer.Write( m_Hue );
            writer.Write( m_Str );
            writer.Write( m_Dex );
            writer.Write( m_Int );
            writer.Write( m_Hits );
            writer.Write( m_Stam );
            writer.Write( m_Mana );

            writer.Write( m_Map );

            writer.Write( m_Blessed );
            writer.Write( m_Fame );
            writer.Write( m_Karma );
            writer.Write( (byte) m_AccessLevel );
            m_Skills.Serialize( writer );

            writer.Write( m_Items.Count );

            for ( int i = 0; i < m_Items.Count; ++i )
                writer.Write( (Item)m_Items[i] );

            writer.Write( m_Player );
            writer.Write( m_Title );
            writer.Write( m_Profile );
            writer.Write( m_ProfileLocked );
            //writer.Write( m_LightLevel );
            //writer.Write( m_TotalGold );
            //writer.Write( m_TotalWeight );
            writer.Write( m_AutoPageNotify );

            writer.Write( m_LogoutLocation );
            writer.Write( m_LogoutMap );

            writer.Write( (byte) m_StrLock );
            writer.Write( (byte) m_DexLock );
            writer.Write( (byte) m_IntLock );

            if ( m_StuckMenuUses != null )
            {
                writer.Write( true );

                writer.Write( m_StuckMenuUses.Length );

                for ( int i = 0; i < m_StuckMenuUses.Length; ++i )
                {
                    writer.Write( m_StuckMenuUses[i] );
                }
            }
            else
            {
                writer.Write( false );
            }
        }
Beispiel #9
0
        public override void Serialize( GenericWriter writer )
        {
            base.Serialize( writer );

            writer.Write( (int) 1 ); // version

            writer.Write( (bool) ( m_Tasters != null && m_Tasters.Count > 0 ) );
            if ( m_Tasters != null && m_Tasters.Count > 0 )
                writer.WriteMobileList( m_Tasters, true );

            writer.Write( (int) m_PotionEffect );
        }
		//	public void On

		/// <summary>
		/// Serializes the specified writer.
		/// </summary>
		/// <param name="writer">The writer.</param>
		public override void Serialize(GenericWriter writer)
		{
			base.Serialize(writer);

			writer.Write((int)3); // version
			writer.Write(m_LastAnnounceTime);
			writer.WriteMobileList<PlayerMobile>(new List<PlayerMobile>(m_ShopperQueue));
			writer.WriteMobileList<PlayerMobile>(new List<PlayerMobile>(m_VisitorQueue));
			writer.Write((int)m_City);
			writer.WriteItemList<ChampKinCity>(m_Champs);
		}
Beispiel #11
0
		public override void Serialize(GenericWriter writer)
		{
			base.Serialize(writer);
			writer.Write((int)0); // version

			// version 0 
			writer.WriteMobileList<Mobile>(m_mobiles, true);
			writer.WriteItemList<Item>(m_items, true);
		}
Beispiel #12
0
        public override void Serialize( GenericWriter writer )
        {
            if ( this.LastFealty+TimeSpan.FromDays( 1.0 ) < DateTime.Now )
                this.CalculateGuildmaster();

            writer.Write( (int) 4 );//version

            writer.WriteGuildList( m_AllyDeclarations, true );
            writer.WriteGuildList( m_AllyInvitations, true );

            writer.Write( m_TypeLastChange );

            writer.Write( (int)m_Type );

            writer.Write( m_LastFealty );

            writer.Write( m_Leader );
            writer.Write( m_Name );
            writer.Write( m_Abbreviation );

            writer.WriteGuildList( m_Allies, true );
            writer.WriteGuildList( m_Enemies, true );
            writer.WriteGuildList( m_WarDeclarations, true );
            writer.WriteGuildList( m_WarInvitations, true );

            writer.WriteMobileList( m_Members, true );
            writer.WriteMobileList( m_Candidates, true );
            writer.WriteMobileList( m_Accepted, true );

            writer.Write( m_Guildstone );
            writer.Write( m_Teleporter );

            writer.Write( m_Charter );
            writer.Write( m_Website );
        }
Beispiel #13
0
        protected void Save(GenericWriter writer)
        {
            writer.Write(1); // Version

            writer.WriteMobileList(c_Mobiles, true);
            writer.Write(c_Filter);
            writer.Write(c_Delay);
            writer.Write(c_Name);
            writer.Write((int)c_Style);
            writer.Write(c_ToIrc);
            writer.Write(c_NewChars);
            writer.Write(c_ShowStaff);
            writer.Write(c_Enabled);

            writer.Write(c_Colors.Count);
            foreach(Mobile m in c_Colors.Keys)
            {
                writer.Write(m);
                writer.Write((int)c_Colors[m]);
            }

            writer.Write(c_Commands.Count);
            foreach (string str in c_Commands)
                writer.Write(str);
        }
Beispiel #14
0
		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );

			writer.Write( (int) 0 ); // version
			
			writer.Write( (Mobile) m_Peerless );
			writer.Write( (Point3D) m_BossLocation );
			writer.Write( (Point3D) m_TeleportDest );
			writer.Write( (Point3D) m_ExitDest );
			
			writer.Write( (DateTime) m_Deadline );
			
			// serialize master keys						
			writer.WriteItemList( m_MasterKeys );
			
			// serialize fighters							
			writer.WriteMobileList( m_Fighters );
				
			// serialize pets
			writer.Write( (int) m_Pets.Count );
			
			foreach ( KeyValuePair<Mobile,List<Mobile>> pair in m_Pets )
			{
				writer.Write( (Mobile) pair.Key );
				
				writer.WriteMobileList( pair.Value );
			}
			
			writer.Write( (bool) m_Spawned );
		}
Beispiel #15
0
		//Serialize
		#region serialize

		public override void Serialize(GenericWriter writer)
		{
			base.Serialize (writer);
			
			writer.Write( (int) 3 );		    // version

			// version 3
			writer.Write((double)m_LevelScale);  // errors for this level

			// version 2
			writer.Write( (int)m_LevelError );  // errors for this level

			// version 1
			writer.WriteDeltaTime(m_End);       //Next spawn time
            
			// first up is the spawn data       // version 0
			writer.Write( (int)m_Type );					
			writer.Write( (int)SpawnLevels.Count );
			foreach( ChampLevelData data in SpawnLevels )
				data.Serialize(writer);  

			//now the monsters + misc data
			writer.WriteMobileList ( m_Monsters );			
			writer.WriteMobileList( m_FreeMonsters );
			writer.Write( (int)m_LevelCounter );
			writer.Write( (int)m_Kills );
			writer.Write((DateTime) m_ExpireTime );		
			//  nav dest
			writer.Write( (int)m_NavDest ); 

			// the bools
			writer.Write( (bool)m_bActive );

			//pla: 02/11/07
			//Check here incase the altar or platform has been deleted.
			//in which case we just set the grpahics to false and they can be
			//switched back on on reload.  Prevents the champ from crashing on load
			//if the gfx were accidentally deleted through [delete
			/////////////////////////////////////////////////////////////////////
			if (m_bGraphics && !m_Graphics.IsHealthy())
			{
				//call delete code as these save on world save anyway
				m_Graphics.Delete();
				m_bGraphics = false;
			}

			writer.Write( (bool)m_bGraphics );

			// NavDest

			// the altar and platform
			if( m_bGraphics )
			{
				m_Graphics.Serialize( writer );
			}
			writer.Write( (bool)m_bRestart );
			writer.Write( m_RestartDelay );
			// And finally if the restart timer is currently on or not, and the delay value.
			writer.Write( m_Restart != null );
			
		}
Beispiel #16
0
		public override void Serialize( GenericWriter writer )
		{
            base.Serialize(writer);
            writer.Write(1); // Version
            writer.WriteItemList(m_market, true);
            writer.WriteMobileList(m_marketmob, true);
		}
Beispiel #17
0
        public override void Serialize( GenericWriter writer )
        {
            base.Serialize( writer );

            writer.Write( (int) 10 ); // version

            writer.WriteDeltaTime( m_TimeOfDeath );

            ArrayList list = ( m_RestoreTable == null ? null : new ArrayList( m_RestoreTable ) );
            int count = ( list == null ? 0 : list.Count );

            writer.Write( count );

            for ( int i = 0; list != null && i < list.Count; ++i )
            {
                DictionaryEntry de = (DictionaryEntry)list[i];
                Item item = (Item)de.Key;
                Point3D loc = (Point3D)de.Value;

                writer.Write( item );

                if ( item.Location == loc )
                {
                    writer.Write( false );
                }
                else
                {
                    writer.Write( true );
                    writer.Write( loc );
                }
            }

            writer.Write( m_VisitedByTaxidermist );

            writer.Write( m_DecayTimer != null );

            if ( m_DecayTimer != null )
                writer.WriteDeltaTime( m_DecayTime );

            writer.WriteMobileList( m_Looters );
            writer.Write( m_Killer );

            writer.Write( (bool) m_Carved );

            writer.WriteMobileList( m_Aggressors );

            writer.Write( m_Owner );

            writer.Write( m_NoBones );

            writer.Write( (string) m_CorpseName );

            writer.Write( (int) m_AccessLevel );
            writer.Write( (Guild) m_Guild );
            writer.Write( (int) m_Kills );
            writer.Write( (bool) m_Criminal );

            writer.Write( (int) m_EquipItems.Count );

            for ( int i = 0; i < m_EquipItems.Count; ++i )
                writer.Write( (Item)m_EquipItems[i] );
        }
Beispiel #18
0
		public override void Serialize( GenericWriter writer )
        {
            #region garbage?
            //cleanup our anti-macro table
			foreach ( Hashtable t in m_AntiMacroTable.Values )
			{
				ArrayList remove = new ArrayList();
				foreach ( CountAndTimeStamp time in t.Values )
				{
					if ( time.TimeStamp + AntiMacroExpire <= DateTime.Now )
						remove.Add( time );
				}

				for (int i=0;i<remove.Count;++i)
					t.Remove( remove[i] );
			}
            #endregion
            base.Serialize( writer );
            int version = 32;                           // updates for NPCGuils 'smart serialization'
			writer.Write( version );                    // write the version    
            SaveFlag saveFlags = WriteSaveBits(writer); // calculate and write the bits that describe what we will write

			///////////////////////////////////////////////////
			// put all normal serialization below this line
			///////////////////////////////////////////////////

			//Adam: v32 add mini game ID and save data.
			if (GetSaveFlag(saveFlags, SaveFlag.ZCodeMiniGame) == true)
			{	// assert (record) this case 
				if (Misc.Diagnostics.Assert(m_ZCodeMiniGameData != null && m_ZCodeMiniGameData.Length > 0, "In PlayerMobile.cs the following is NOT true: m_ZCodeMiniGameData != null && m_ZCodeMiniGameData.Length > 0"))
				{
					writer.Write(m_ZCodeMiniGameID);									// hash code of the string naming the mini game
					writer.Write(m_ZCodeMiniGameData.Length);							// buffer size
					writer.Write(m_ZCodeMiniGameData, 0, m_ZCodeMiniGameData.Length);	// saved game
				}
			}

            //Adam: v31 Add in new points tracker for NPCGuilds
            if (GetSaveFlag(saveFlags, SaveFlag.NPCGuild) == true)
                writer.Write(m_NpcGuildPoints);

            //Adam: v.30 Dummy version, removed NPCGuild vars when not needed

			//Pla: v.29 - dummy version for duel system removal

          //Pix: v.28 - Kin Faction Stuff
          writer.Write(m_KinSoloPoints);
          writer.Write(m_KinTeamPoints);

			//Pix: v.27 - Challenge Duel
			//Pla: No longer used as of v.29
			//writer.Write(m_iChallengeDuelWins);
			//writer.Write(m_iChallengeDuelLosses);

          //Adam: v.26
          writer.Write(m_Blind);
          writer.Write(m_SightExpire);

			//Pix: v.25 Watchlist enhancements
			writer.Write(m_WatchReason);
			writer.Write(m_WatchExpire);

			//Rhi: [FilterMusic
			writer.Write( m_FilterMusic );

			//PIX: new IOB funcionality
			writer.Write( m_IOBKillPoints );
			writer.Write( (int)m_LastGuildIOBAlignment );
			writer.Write( this.m_LastGuildChange );

			// tk - [report
			writer.Write(m_Reported);

			//Pix: Offline short count decay
			writer.Write( m_LastShortDecayed );

			//Pix: TimeSpan for RANK of bretheren
			TimeSpan ranktime = m_IOBRankTime;
			if( IOBEquipped && m_IOBStartedWearing > DateTime.MinValue )
			{
				ranktime += (DateTime.Now - m_IOBStartedWearing);
			}
			writer.Write( ranktime );

			//Pix: 3/26/06 - changes to IOB system
			// no longer store IOBAlignment or IOBTimer in PMs
			//writer.Write( (int) m_IOBAlignment );
			//writer.Write( IOBTimer );
			writer.Write( (bool) m_IOBEquipped );

			QuestSerializer.Serialize( m_Quest, writer );

			if ( m_DoneQuests == null )
			{
				writer.WriteEncodedInt( (int) 0 );
			}
			else
			{
				writer.WriteEncodedInt( (int) m_DoneQuests.Count );

				for ( int i = 0; i < m_DoneQuests.Count; ++i )
				{
					QuestRestartInfo restartInfo = (QuestRestartInfo)m_DoneQuests[i];

					QuestSerializer.Write( (Type) restartInfo.QuestType, QuestSystem.QuestTypes, writer );
					writer.Write( (DateTime) restartInfo.RestartTime );
				}
			}

			writer.WriteEncodedInt( (int) m_Profession );

			writer.WriteDeltaTime( m_LastCompassionLoss );

			writer.WriteEncodedInt( m_CompassionGains );

			if ( m_CompassionGains > 0 )
				writer.WriteDeltaTime( m_NextCompassionDay );

			m_BOBFilter.Serialize( writer );

			bool useMods = ( m_HairModID != -1 || m_BeardModID != -1 );

			writer.Write( useMods );

			if ( useMods )
			{
				writer.Write( (int) m_HairModID );
				writer.Write( (int) m_HairModHue );
				writer.Write( (int) m_BeardModID );
				writer.Write( (int) m_BeardModHue );
			}

			writer.Write( SavagePaintExpiration );

            // Adam: Version 30 optimization: Only write values if we belong to a guild
            if (GetSaveFlag(saveFlags, SaveFlag.NPCGuild) == true)
            {
                writer.Write((int)m_NpcGuild);
                writer.Write((DateTime)m_NpcGuildJoinTime);
                writer.Write((TimeSpan)m_NpcGuildGameTime);
            }

			writer.WriteMobileList( m_PermaFlags, true );

			writer.Write( NextTailorBulkOrder );

			writer.Write( NextSmithBulkOrder );

			writer.WriteDeltaTime( m_LastJusticeLoss );
			writer.WriteMobileList( m_JusticeProtectors, true );

			writer.WriteDeltaTime( m_LastSacrificeGain );
			writer.WriteDeltaTime( m_LastSacrificeLoss );
			writer.Write( m_AvailableResurrects );

			writer.Write( (int) m_Flags );

			writer.Write( m_LongTermElapse );
			writer.Write( m_ShortTermElapse );
			writer.Write( this.GameTime );
		}
        public override void Serialize( GenericWriter writer )
        {
            base.Serialize( writer );

            writer.Write( (int) 1 ); // version

            writer.Write( m_RegionBounds );

            writer.WriteItemList( m_Traps, false );

            writer.WriteMobileList( m_Creatures, false );

            writer.Write( m_TypeName );
            writer.Write( m_Door );
            writer.Write( m_Addon );
            writer.Write( m_Sequence );

            writer.Write( (int) m_State );
        }
        public override void Serialize( GenericWriter writer )
        {
            base.Serialize( writer );

            writer.Write( (int)4 ); // version

            writer.Write( m_ConfinedRoaming );
            writer.Write( m_Idol );
            writer.Write( m_HasBeenAdvanced );
            writer.Write( m_SpawnArea );

            writer.Write( m_RandomizeType );

            //			writer.Write( m_SpawnRange );
            writer.Write( m_Kills );

            writer.Write( (bool)m_Active );
            writer.Write( (int)m_Type );
            writer.WriteMobileList( m_Creatures, true );
            writer.WriteItemList( m_RedSkulls, true );
            writer.WriteItemList( m_WhiteSkulls, true );
            writer.Write( m_Platform );
            writer.Write( m_Altar );
            writer.Write( m_ExpireDelay );
            writer.WriteDeltaTime( m_ExpireTime );
            writer.Write( m_Champion );
            writer.Write( m_RestartDelay );

            writer.Write( m_RestartTimer != null );

            if( m_RestartTimer != null )
                writer.WriteDeltaTime( m_RestartTime );
        }
Beispiel #21
0
        public override void Serialize( GenericWriter writer )
        {
            base.Serialize( writer );

            writer.Write( (int) 0 ); // version

            writer.WriteItemList( m_Items, true );
            writer.WriteMobileList( m_Mobiles, true );
            writer.WriteDeltaTime( m_DecayTime );
        }
		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );

			writer.Write( (int) 14 ); // version

			writer.Write( (int)m_CurrentAI );
			writer.Write( (int)m_DefaultAI );

			writer.Write( (int)m_iRangePerception );
			writer.Write( (int)m_iRangeFight );

			writer.Write( (int)m_iTeam );

			writer.Write( (double)m_dActiveSpeed );
			writer.Write( (double)m_dPassiveSpeed );
			writer.Write( (double)m_dCurrentSpeed );

			writer.Write( (int) m_pHome.X );
			writer.Write( (int) m_pHome.Y );
			writer.Write( (int) m_pHome.Z );

			// Version 1
			writer.Write( (int) m_iRangeHome );

            WriteTypeArray(writer, m_arSpellAttack);
            WriteTypeArray(writer, m_arSpellDefense);

			// Version 2
			writer.Write( (int) m_FightMode );

			writer.Write( (bool) ( m_bControlled || m_CannotControl.Contains( this ) ) );
			writer.Write( (Mobile) m_ControlMaster );
			writer.Write( (Mobile) m_ControlTarget );
			writer.Write( (Point3D) m_ControlDest );
			writer.Write( (int) m_ControlOrder );
			writer.Write( (double) m_dMinTameSkill );
			// Removed in version 9
			//writer.Write( (double) m_dMaxTameSkill );
			writer.Write( (bool) m_bTamable );
			writer.Write( (bool) m_bSummoned );

			if ( m_bSummoned )
				writer.WriteDeltaTime( m_SummonEnd );

			writer.Write( (int) m_iControlSlots );

			// Version 3
			writer.Write( (int)m_Loyalty );

			// Version 4
			writer.Write( m_CurrentWayPoint );

			// Verison 5
			writer.Write( m_SummonMaster );

			// Version 6
			writer.Write( (int) m_HitsMax );
			writer.Write( (int) m_StamMax );
			writer.Write( (int) m_ManaMax );
			writer.Write( (int) m_DamageMin );
			writer.Write( (int) m_DamageMax );

			// Version 7
			writer.Write( (int) m_PhysicalResistance );
			writer.Write( (int) m_PhysicalDamage );

			writer.Write( (int) m_FireResistance );
			writer.Write( (int) m_FireDamage );

			writer.Write( (int) m_ColdResistance );
			writer.Write( (int) m_ColdDamage );

			writer.Write( (int) m_PoisonResistance );
			writer.Write( (int) m_PoisonDamage );

			writer.Write( (int) m_EnergyResistance );
			writer.Write( (int) m_EnergyDamage );

			// Version 8
			writer.WriteMobileList( m_Owners == null ? ms_EmptyArrayList : m_Owners, true );

			// Version 10
			writer.Write( (bool) m_IsDeadPet );
			writer.Write( (bool) m_IsBonded );
			writer.Write( (DateTime) m_BondingBegin );
			writer.Write( (DateTime) m_OwnerAbandonTime );

			// Version 11
			writer.Write( (bool) m_HasGeneratedLoot );

			// Version 12
			writer.Write( (bool) m_Paragon );

			// Version 13
			writer.Write( (bool) ( m_Friends != null && m_Friends.Count > 0 ) );

			if ( m_Friends != null && m_Friends.Count > 0 )
				writer.WriteMobileList( m_Friends, true );

			// Version 14
			writer.Write( (bool)m_RemoveIfUntamed );
			writer.Write( (int)m_RemoveStep );
			writer.Write( (bool) m_IsChampionMonster );
			writer.Write( (int) m_SpawnLevel );
		}
		public override void Serialize(GenericWriter writer)
		{
			base.Serialize(writer);
			writer.Write((int) 0);
			writer.WriteMobileList( m_sheep, true );
            writer.WriteMobileList(m_dog, true);
		}
Beispiel #24
0
        public virtual void Serialize( GenericWriter writer )
        {
            writer.Write( (int) 36 ); // version

            /* Version 32 */
            byte hairflag = 0x00;

            if ( m_Hair != null )
                hairflag |= 0x01;
            if ( m_FacialHair != null )
                hairflag |= 0x02;

            writer.Write( (byte) hairflag );

            if ( ( hairflag & 0x01 ) != 0 )
                m_Hair.Serialize( writer );
            if ( ( hairflag & 0x02 ) != 0 )
                m_FacialHair.Serialize( writer );

            /* Version 31 */
            writer.Write( m_InstanceID );

            /* Version 30 */
            writer.Write( m_Race );

            writer.Write( (int) m_TithingPoints );

            writer.Write( m_Corpse );

            writer.Write( m_CreationTime );

            writer.WriteMobileList( m_Stabled, true );

            writer.Write( m_CantWalk );

            VirtueInfo.Serialize( writer, m_Virtues );

            writer.Write( m_Thirst );
            writer.Write( m_BAC );

            writer.Write( m_ShortTermMurders );

            writer.Write( m_MagicDamageAbsorb );

            writer.Write( m_GuildFealty );

            writer.Write( m_Guild );

            writer.Write( m_DisplayGuildTitle );

            writer.Write( m_CanSwim );

            writer.Write( m_Squelched );

            writer.Write( m_Holding );

            writer.Write( m_BaseSoundID );

            writer.Write( m_DisarmReady );
            writer.Write( m_StunReady );

            //Poison.Serialize( m_Poison, writer );

            writer.Write( m_StatCap );

            writer.Write( m_NameHue );

            writer.Write( m_Hunger );

            writer.Write( m_Location );
            writer.Write( (int) m_Body );
            writer.Write( m_Name );
            writer.Write( m_GuildTitle );
            writer.Write( m_Criminal );
            writer.Write( m_Kills );
            writer.Write( m_SpeechHue );
            writer.Write( m_EmoteHue );
            writer.Write( m_WhisperHue );
            writer.Write( m_YellHue );
            writer.Write( m_Language );
            writer.Write( m_Female );
            writer.Write( m_Warmode );
            writer.Write( m_Hidden );
            writer.Write( (byte) m_Direction );
            writer.Write( m_Hue );
            writer.Write( m_Str );
            writer.Write( m_Dex );
            writer.Write( m_Int );
            writer.Write( m_Hits );
            writer.Write( m_Stam );
            writer.Write( m_Mana );

            writer.Write( m_Map );

            writer.Write( m_Blessed );
            writer.Write( m_Fame );
            writer.Write( m_Karma );
            writer.Write( (byte) m_AccessLevel );
            m_Skills.Serialize( writer );

            writer.Write( m_EquippedItems.Count );

            for ( int i = 0; i < m_EquippedItems.Count; ++i )
                writer.Write( (Item) m_EquippedItems[i] );

            writer.Write( m_IsPlayer );
            writer.Write( m_Title );
            writer.Write( m_Profile );
            writer.Write( m_ProfileLocked );
            writer.Write( m_AutoPageNotify );

            writer.Write( m_LogoutLocation );
            writer.Write( m_LogoutMap );

            writer.Write( (byte) m_StrLock );
            writer.Write( (byte) m_DexLock );
            writer.Write( (byte) m_IntLock );

            if ( m_StuckMenuUses != null )
            {
                writer.Write( true );

                writer.Write( m_StuckMenuUses.Length );

                for ( int i = 0; i < m_StuckMenuUses.Length; ++i )
                {
                    writer.Write( m_StuckMenuUses[i] );
                }
            }
            else
            {
                writer.Write( false );
            }
        }
Beispiel #25
0
		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );

			writer.Write( (int) 14 ); // version

			writer.Write( (Point3D) m_RelativeBanLocation );

			writer.WriteItemList( m_VendorRentalContracts, true );
			writer.WriteMobileList( m_InternalizedVendors, true );

			writer.WriteEncodedInt( m_RelocatedEntities.Count );
			foreach ( RelocatedEntity relEntity in m_RelocatedEntities )
			{
				writer.Write( (Point3D) relEntity.RelativeLocation );

				if ( ( relEntity.Entity is Item && ((Item)relEntity.Entity).Deleted ) || ( relEntity.Entity is Mobile && ((Mobile)relEntity.Entity).Deleted ) )
					writer.Write( (int) Serial.MinusOne );
				else
					writer.Write( (int) relEntity.Entity.Serial );
			}

			writer.WriteEncodedInt( m_VendorInventories.Count );
			for ( int i = 0; i < m_VendorInventories.Count; i++ )
			{
				VendorInventory inventory = (VendorInventory) m_VendorInventories[i];
				inventory.Serialize( writer );
			}

			writer.Write( (DateTime) m_LastRefreshed );
			writer.Write( (bool) m_RestrictDecay );

			writer.Write( (int) m_Visits );

			writer.Write( (int) m_Price );

			writer.WriteMobileList( m_Access );

			writer.Write( m_BuiltOn );
			writer.Write( m_LastTraded );

			writer.WriteItemList( m_Addons, true );

			writer.Write( m_Secures.Count );

			for ( int i = 0; i < m_Secures.Count; ++i )
				((SecureInfo)m_Secures[i]).Serialize( writer );

			writer.Write( m_Public );

			//writer.Write( BanLocation );

			writer.Write( m_Owner );

			// Version 5 no longer serializes region coords
			/*writer.Write( (int)m_Region.Coords.Count );
			foreach( Rectangle2D rect in m_Region.Coords )
			{
				writer.Write( rect );
			}*/

			writer.WriteMobileList( m_CoOwners, true );
			writer.WriteMobileList( m_Friends, true );
			writer.WriteMobileList( m_Bans, true );

			writer.Write( m_Sign );
			writer.Write( m_Trash );

			writer.WriteItemList( m_Doors, true );
			writer.WriteItemList( m_LockDowns, true );
			//writer.WriteItemList( m_Secures, true );

			writer.Write( (int) m_MaxLockDowns );
			writer.Write( (int) m_MaxSecures );

			// Items in locked down containers that aren't locked down themselves must decay!
			for ( int i = 0; i < m_LockDowns.Count; ++i )
			{
				Item item = (Item)m_LockDowns[i];

				if ( item is Container && !(item is BaseBoard) )
				{
					Container cont = (Container)item;
					List<Item> children = cont.Items;

					for ( int j = 0; j < children.Count; ++j )
					{
						Item child = children[j];

						if ( child.Decays && !child.IsLockedDown && !child.IsSecure && (child.LastMoved + child.DecayTime) <= DateTime.Now )
							Timer.DelayCall( TimeSpan.Zero, new TimerCallback( child.Delete ) );
					}
				}
			}
		}
Beispiel #26
0
		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );

			writer.Write( (int) 0 ); // version

			writer.Write( m_TrueForm );
			writer.Write( m_GateItem );
			writer.WriteMobileList<HarrowerTentacles>( m_Tentacles );
		}
Beispiel #27
0
        public void SaveFriends(GenericWriter writer)
        {
            writer.Write(1); // Version

            writer.WriteMobileList(c_Friends, true);
        }
Beispiel #28
0
        public override void Serialize( GenericWriter writer )
        {
            base.Serialize( writer );

            writer.WriteEncodedInt( 0 ); // version

            writer.WriteEncodedInt( m_Topic.Length );

            for ( int i = 0; i < m_Topic.Length; i++ )
                writer.Write( (string) m_Topic[i] );

            writer.WriteMobileList( m_Yes, true );
            writer.WriteMobileList( m_No, true );
        }
Beispiel #29
0
        public void SaveIgnores(GenericWriter writer)
        {
            writer.Write(1); // Version

            writer.WriteMobileList(c_Ignores, true);
        }
        public override void Serialize( GenericWriter writer )
        {
            base.Serialize( writer );

            writer.Write( (int) 2 ); // version

            writer.WriteMobileList( m_Guardians, true );
            writer.Write( (bool) m_Temporary );

            writer.Write( m_Owner );

            writer.Write( (int) m_Level );
            writer.WriteDeltaTime( m_DeleteTime );
            writer.WriteItemList( m_Lifted, true );
        }