RunUO Community

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

Basic ML & Elf functionality

arul

Sorceror
I can tell you for sure that it has nothing to do with these changes.
Did you patch your clients enryption?
 

James4245

Wanderer
Basic ML & Elf functionality

What i wish is that someone who knew aliitle about compilling the source code would post a help file here for people who don't really get how to do it with out messing it up hehe, I am afraid to try it.. Don't wanna loose all my hard work... I seen the files where in the Source Code beside the CharacterCreation.cs which i don't think has any thing much to do with the core since its in the scripts section.. Just my thoughts....
 

powersky

Wanderer
stop here...

after we join the world as Elf,then we save the world.

when we restart the Server,the problem appear:

World: Loading...failed to load mobile: System.OutOfMemoryException: Exception o
f type System.OutOfMemoryException was thrown.
An error was encountered while loading a saved object
- Type: Server.Mobiles.PlayerMobile
- Serial: 0x00008086
Delete the object? (y/n)




got the wrong same with dashiznit_76,anybody know how to solve this problem?
 

powersky

Wanderer
the problem is that our server only can start after we clear the savefile,we get wrong message when the savefiles established......

it seems that server couldn't start when savefile found...

online waitting.............................................
 

arul

Sorceror
no, you don't need to wipe your save files, you need to fix your serialization problems because you made something wrong.
 

powersky

Wanderer
oh..there is two map files in Nerun's Distro v4.1.1,that we can open the two dungeon in ML.
so we want the other 7 maps......
 

arul

Sorceror
powersky said:
oh..there is two map files in Nerun's Distro v4.1.1,that we can open the two dungeon in ML.
so we want the other 7 maps......
Like I said, there are no new maps, the current maps such as Felucca, Trammel and so forth were extended.
 

RavonTUS

Sorceror
Greetings,

Would someone mind posting thier mobile.cs scripts? As I read through this and tried to update my core (dumb me, didn't save a copy of the source the first time I did this) I keep running into a serialization error.

If I use the following code, my current world loads and runs until I save it and restart. After restart it wants to start deleting all the mobiles...


Code:
		public virtual void Deserialize( GenericReader reader )
		{
			int version = reader.ReadInt();

			switch ( version )
			{
[COLOR="Red"]                //16MAR2006 ML Support *** START 5/10 ***
                case 29:
                    {
                        m_Elf = reader.ReadBool();

                        goto case 28;
                    }
                //16MAR2006 ML Support *** END   ***[/COLOR]
				case 28:
				{
					m_LastStatGain = reader.ReadDeltaTime();

					goto case 27;
				}
				case 27:
				{
					m_TithingPoints = reader.ReadInt();

					goto case 26;
				}
				case 26:
				case 25:
				case 24:
				{
					m_Corpse = reader.ReadItem() as Container;

					goto case 23;
				}
				case 23:
				{
					m_CreationTime = reader.ReadDateTime();

					goto case 22;
				}
				case 22: // Just removed followers
				case 21:
				{
					m_Stabled = reader.ReadMobileList();

					goto case 20;
				}
				case 20:
				{
					m_CantWalk = reader.ReadBool();

					goto case 19;
				}
				case 19: // Just removed variables
				case 18:
				{
					m_Virtues = new VirtueInfo( reader );

					goto case 17;
				}
				case 17:
				{
					m_Thirst = reader.ReadInt();
					m_BAC = reader.ReadInt();

					goto case 16;
				}
				case 16:
				{
					m_ShortTermMurders = reader.ReadInt();

					if ( version <= 24 )
					{
						reader.ReadDateTime();
						reader.ReadDateTime();
					}

					goto case 15;
				}
				case 15:
				{
					if ( version < 22 )
						reader.ReadInt(); // followers

					m_FollowersMax = reader.ReadInt();

					goto case 14;
				}
				case 14:
				{
					m_MagicDamageAbsorb = reader.ReadInt();

					goto case 13;
				}
				case 13:
				{
					m_GuildFealty = reader.ReadMobile();

					goto case 12;
				}
				case 12:
				{
					m_Guild = reader.ReadGuild();

					goto case 11;
				}
				case 11:
				{
					m_DisplayGuildTitle = reader.ReadBool();

					goto case 10;
				}
				case 10:
				{
					m_CanSwim = reader.ReadBool();

					goto case 9;
				}
				case 9:
				{
					m_Squelched = reader.ReadBool();

					goto case 8;
				}
				case 8:
				{
					m_Holding = reader.ReadItem();

					goto case 7;
				}
				case 7:
				{
					m_VirtualArmor = reader.ReadInt();

					goto case 6;
				}
				case 6:
				{
					m_BaseSoundID = reader.ReadInt();

					goto case 5;
				}
				case 5:
				{
					m_DisarmReady = reader.ReadBool();
					m_StunReady = reader.ReadBool();

					goto case 4;
				}
				case 4:
				{
					if ( version <= 25 )
					{
						Poison.Deserialize( reader );

						/*if ( m_Poison != null )
						{
							m_PoisonTimer = new PoisonTimer( this );
							m_PoisonTimer.Start();
						}*/
					}

					goto case 3;
				}
				case 3:
				{
					m_StatCap = reader.ReadInt();

					goto case 2;
				}
				case 2:
				{
					m_NameHue = reader.ReadInt();

					goto case 1;
				}
				case 1:
				{
					m_Hunger = reader.ReadInt();

					goto case 0;
				}
				case 0:
				{
					if ( version < 21 )
						m_Stabled = new ArrayList();

					if ( version < 18 )
						m_Virtues = new VirtueInfo();

					if ( version < 11 )
						m_DisplayGuildTitle = true;

					if ( version < 3 )
						m_StatCap = 225;

					if ( version < 15 )
					{
						m_Followers = 0;
						m_FollowersMax = 5;
					}

					m_Location = reader.ReadPoint3D();
					m_Body = new Body( reader.ReadInt() );
					m_Name = reader.ReadString();
					m_GuildTitle = reader.ReadString();
					m_Criminal = reader.ReadBool();
					m_Kills = reader.ReadInt();
					m_SpeechHue = reader.ReadInt();
					m_EmoteHue = reader.ReadInt();
					m_WhisperHue = reader.ReadInt();
					m_YellHue = reader.ReadInt();
					m_Language = reader.ReadString();
					m_Female = reader.ReadBool();
[COLOR="Red"]                    //16MAR2006 ML Support *** START 6/10 ***
                    //see case 29 above
                    //m_Elf = reader.ReadBool();
                    //16MAR2006 ML Support *** END   ***[/COLOR]
					m_Warmode = reader.ReadBool();
					m_Hidden = reader.ReadBool();
					m_Direction = (Direction) reader.ReadByte();
					m_Hue = reader.ReadInt();
					m_Str = reader.ReadInt();
					m_Dex = reader.ReadInt();
					m_Int = reader.ReadInt();
					m_Hits = reader.ReadInt();
					m_Stam = reader.ReadInt();
					m_Mana = reader.ReadInt();
					m_Map = reader.ReadMap();
					m_Blessed = reader.ReadBool();
					m_Fame = reader.ReadInt();
					m_Karma = reader.ReadInt();
					m_AccessLevel = (AccessLevel) reader.ReadByte();

					m_Skills = new Skills( this, reader );

					int itemCount = reader.ReadInt();

					m_Items = new ArrayList( itemCount );

					for ( int i = 0; i < itemCount; ++i )
					{
						Item item = reader.ReadItem();

						if ( item != null )
							m_Items.Add( item );
					}

					m_Player = reader.ReadBool();
					m_Title = reader.ReadString();
					m_Profile = reader.ReadString();
					m_ProfileLocked = reader.ReadBool();
					if ( version <= 18 )
					{
						/*m_LightLevel =*/ reader.ReadInt();
						/*m_TotalGold =*/ reader.ReadInt();
						/*m_TotalWeight =*/ reader.ReadInt();
					}
					m_AutoPageNotify = reader.ReadBool();

					m_LogoutLocation = reader.ReadPoint3D();
					m_LogoutMap = reader.ReadMap();

					m_StrLock = (StatLockType)reader.ReadByte();
					m_DexLock = (StatLockType)reader.ReadByte();
					m_IntLock = (StatLockType)reader.ReadByte();

					m_StatMods = new ArrayList();

					if ( reader.ReadBool() )
					{
						m_StuckMenuUses = new DateTime[reader.ReadInt()];

						for ( int i = 0; i < m_StuckMenuUses.Length; ++i )
						{
							m_StuckMenuUses[i] = reader.ReadDateTime();
						}
					}
					else
					{
						m_StuckMenuUses = null;
					}

					if ( m_Player && m_Map != Map.Internal ) 
					{
						m_LogoutLocation = m_Location;
						m_LogoutMap = m_Map;

						m_Map = Map.Internal;
					}

					if ( m_Map != null )
						m_Map.OnEnter( this );

					if ( m_Criminal )
					{
						if ( m_ExpireCriminal == null )
							m_ExpireCriminal = new ExpireCriminalTimer( this );

						m_ExpireCriminal.Start();
					}

					if ( ShouldCheckStatTimers )
						CheckStatTimers();

					if ( !m_Player && m_Dex <= 100 && m_CombatTimer != null )
						m_CombatTimer.Priority = TimerPriority.FiftyMS;
					else if ( m_CombatTimer != null )
						m_CombatTimer.Priority = TimerPriority.EveryTick;

					m_Region = Region.Find( m_Location, m_Map );

					m_Region.InternalEnter( this );

					UpdateResistances();

					break;
				}
			}
		}

		public virtual void Serialize( GenericWriter writer )
		{
[COLOR="Red"]            //16MAR2006 ML Support *** START 7/10 ***
            //writer.Write( (int) 28 ); // version
            writer.Write((int)29); // version
            //16MAR2006 ML Support *** END   ***[/COLOR]
			

			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 );
[COLOR="Red"]            //16MAR2006 ML Support *** START 8/10 ***
            writer.Write(m_Elf);
            //16MAR2006 ML Support *** END   ***[/COLOR]
			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 );
			}
		}
If I use this code it wants to delete items from the start...
Code:
		public virtual void Deserialize( GenericReader reader )
		{
			int version = reader.ReadInt();

			switch ( version )
			{
[COLOR="Red"]                ////16MAR2006 ML Support *** START 5/10 ***
                //case 29:
                //    {
                //        m_Elf = reader.ReadBool();

                //        goto case 28;
                //    }
                ////16MAR2006 ML Support *** END   ***
				case 28:[/COLOR]
				{
					m_LastStatGain = reader.ReadDeltaTime();

					goto case 27;
				}
				case 27:
				{
					m_TithingPoints = reader.ReadInt();

					goto case 26;
				}
				case 26:
				case 25:
				case 24:
				{
					m_Corpse = reader.ReadItem() as Container;

					goto case 23;
				}
				case 23:
				{
					m_CreationTime = reader.ReadDateTime();

					goto case 22;
				}
				case 22: // Just removed followers
				case 21:
				{
					m_Stabled = reader.ReadMobileList();

					goto case 20;
				}
				case 20:
				{
					m_CantWalk = reader.ReadBool();

					goto case 19;
				}
				case 19: // Just removed variables
				case 18:
				{
					m_Virtues = new VirtueInfo( reader );

					goto case 17;
				}
				case 17:
				{
					m_Thirst = reader.ReadInt();
					m_BAC = reader.ReadInt();

					goto case 16;
				}
				case 16:
				{
					m_ShortTermMurders = reader.ReadInt();

					if ( version <= 24 )
					{
						reader.ReadDateTime();
						reader.ReadDateTime();
					}

					goto case 15;
				}
				case 15:
				{
					if ( version < 22 )
						reader.ReadInt(); // followers

					m_FollowersMax = reader.ReadInt();

					goto case 14;
				}
				case 14:
				{
					m_MagicDamageAbsorb = reader.ReadInt();

					goto case 13;
				}
				case 13:
				{
					m_GuildFealty = reader.ReadMobile();

					goto case 12;
				}
				case 12:
				{
					m_Guild = reader.ReadGuild();

					goto case 11;
				}
				case 11:
				{
					m_DisplayGuildTitle = reader.ReadBool();

					goto case 10;
				}
				case 10:
				{
					m_CanSwim = reader.ReadBool();

					goto case 9;
				}
				case 9:
				{
					m_Squelched = reader.ReadBool();

					goto case 8;
				}
				case 8:
				{
					m_Holding = reader.ReadItem();

					goto case 7;
				}
				case 7:
				{
					m_VirtualArmor = reader.ReadInt();

					goto case 6;
				}
				case 6:
				{
					m_BaseSoundID = reader.ReadInt();

					goto case 5;
				}
				case 5:
				{
					m_DisarmReady = reader.ReadBool();
					m_StunReady = reader.ReadBool();

					goto case 4;
				}
				case 4:
				{
					if ( version <= 25 )
					{
						Poison.Deserialize( reader );

						/*if ( m_Poison != null )
						{
							m_PoisonTimer = new PoisonTimer( this );
							m_PoisonTimer.Start();
						}*/
					}

					goto case 3;
				}
				case 3:
				{
					m_StatCap = reader.ReadInt();

					goto case 2;
				}
				case 2:
				{
					m_NameHue = reader.ReadInt();

					goto case 1;
				}
				case 1:
				{
					m_Hunger = reader.ReadInt();

					goto case 0;
				}
				case 0:
				{
					if ( version < 21 )
						m_Stabled = new ArrayList();

					if ( version < 18 )
						m_Virtues = new VirtueInfo();

					if ( version < 11 )
						m_DisplayGuildTitle = true;

					if ( version < 3 )
						m_StatCap = 225;

					if ( version < 15 )
					{
						m_Followers = 0;
						m_FollowersMax = 5;
					}

					m_Location = reader.ReadPoint3D();
					m_Body = new Body( reader.ReadInt() );
					m_Name = reader.ReadString();
					m_GuildTitle = reader.ReadString();
					m_Criminal = reader.ReadBool();
					m_Kills = reader.ReadInt();
					m_SpeechHue = reader.ReadInt();
					m_EmoteHue = reader.ReadInt();
					m_WhisperHue = reader.ReadInt();
					m_YellHue = reader.ReadInt();
					m_Language = reader.ReadString();
					m_Female = reader.ReadBool();
[COLOR="Red"]                    //16MAR2006 ML Support *** START 6/10 ***
                    //do not use case 29 above
                    m_Elf = reader.ReadBool();
                    //16MAR2006 ML Support *** END   ***[/COLOR]
					m_Warmode = reader.ReadBool();
					m_Hidden = reader.ReadBool();
					m_Direction = (Direction) reader.ReadByte();
					m_Hue = reader.ReadInt();
					m_Str = reader.ReadInt();
					m_Dex = reader.ReadInt();
					m_Int = reader.ReadInt();
					m_Hits = reader.ReadInt();
					m_Stam = reader.ReadInt();
					m_Mana = reader.ReadInt();
					m_Map = reader.ReadMap();
					m_Blessed = reader.ReadBool();
					m_Fame = reader.ReadInt();
					m_Karma = reader.ReadInt();
					m_AccessLevel = (AccessLevel) reader.ReadByte();

					m_Skills = new Skills( this, reader );

					int itemCount = reader.ReadInt();

					m_Items = new ArrayList( itemCount );

					for ( int i = 0; i < itemCount; ++i )
					{
						Item item = reader.ReadItem();

						if ( item != null )
							m_Items.Add( item );
					}

					m_Player = reader.ReadBool();
					m_Title = reader.ReadString();
					m_Profile = reader.ReadString();
					m_ProfileLocked = reader.ReadBool();
					if ( version <= 18 )
					{
						/*m_LightLevel =*/ reader.ReadInt();
						/*m_TotalGold =*/ reader.ReadInt();
						/*m_TotalWeight =*/ reader.ReadInt();
					}
					m_AutoPageNotify = reader.ReadBool();

					m_LogoutLocation = reader.ReadPoint3D();
					m_LogoutMap = reader.ReadMap();

					m_StrLock = (StatLockType)reader.ReadByte();
					m_DexLock = (StatLockType)reader.ReadByte();
					m_IntLock = (StatLockType)reader.ReadByte();

					m_StatMods = new ArrayList();

					if ( reader.ReadBool() )
					{
						m_StuckMenuUses = new DateTime[reader.ReadInt()];

						for ( int i = 0; i < m_StuckMenuUses.Length; ++i )
						{
							m_StuckMenuUses[i] = reader.ReadDateTime();
						}
					}
					else
					{
						m_StuckMenuUses = null;
					}

					if ( m_Player && m_Map != Map.Internal ) 
					{
						m_LogoutLocation = m_Location;
						m_LogoutMap = m_Map;

						m_Map = Map.Internal;
					}

					if ( m_Map != null )
						m_Map.OnEnter( this );

					if ( m_Criminal )
					{
						if ( m_ExpireCriminal == null )
							m_ExpireCriminal = new ExpireCriminalTimer( this );

						m_ExpireCriminal.Start();
					}

					if ( ShouldCheckStatTimers )
						CheckStatTimers();

					if ( !m_Player && m_Dex <= 100 && m_CombatTimer != null )
						m_CombatTimer.Priority = TimerPriority.FiftyMS;
					else if ( m_CombatTimer != null )
						m_CombatTimer.Priority = TimerPriority.EveryTick;

					m_Region = Region.Find( m_Location, m_Map );

					m_Region.InternalEnter( this );

					UpdateResistances();

					break;
				}
			}
		}
		public virtual void Serialize( GenericWriter writer )
		{
[COLOR="Red"]            //16MAR2006 ML Support *** START 7/10 ***
            writer.Write( (int) 28 ); // version
            //writer.Write((int)29); // version
            //16MAR2006 ML Support *** END   ***[/COLOR]
			

			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 );
[COLOR="Red"]            //16MAR2006 ML Support *** START 8/10 ***
            writer.Write(m_Elf);
            //16MAR2006 ML Support *** END   ***[/COLOR]
			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 );
			}
		}

Any suggestions? What am I missing or misunderstanding?

-Ravon
 

RavonTUS

Sorceror
Greetings,

Thank you for the quick responses. However, I think I have figured out the answer myself.

BlueOcean's code will work fine, if, IMHO, you are starting a new shard or if you delete all the mobiles and start with new one.

The code I needed is for a current shard. It needs a "case" in deserialize. My error was in where I placed "writer.Write(m_Elf);".

The serialize section should look like this...

Code:
		public virtual void Serialize( GenericWriter writer )
		{
[COLOR="Red"]            //16MAR2006 ML Support *** START 7/10 ***
            writer.Write((int)29); // version
            writer.Write(m_Elf);
            //16MAR2006 ML Support *** END   ***[/COLOR]

            //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 );
[COLOR="Red"]            //16MAR2006 ML Support *** START 8/10 ***
            //this needs to be at the beginning, not here.
            //writer.Write(m_Elf);
            //16MAR2006 ML Support *** END   ***[/COLOR]
			writer.Write( m_Warmode );

And the deserialize section should look like this...
Code:
		public virtual void Deserialize( GenericReader reader )
		{
			int version = reader.ReadInt();

			switch ( version )
			{[COLOR="Red"]
                //16MAR2006 ML Support *** START 5/10 ***
                case 29:
                    {
                        m_Elf = reader.ReadBool();

                        goto case 28;
                    }
                //16MAR2006 ML Support *** END   ***[/COLOR]
				case 28:
				{
					m_LastStatGain = reader.ReadDeltaTime();

Thank you again,
-Ravon
 
Top