public static void Convert_OnCommand( CommandEventArgs e )
		{
			e.Mobile.SendMessage( "Converting all players to PlayerMobile.  You will be disconnected.  Please Restart the server after the world has finished saving." );
			List<Mobile> mobs = new List<Mobile>( World.Mobiles.Values );
			int count = 0;
			
			foreach ( Mobile m in mobs )
			{
				if ( m.Player && !(m is PlayerMobile ) )
				{
					count++;
					if ( m.NetState != null )
						m.NetState.Dispose();
					
					PlayerMobile pm = new PlayerMobile( m.Serial );
					pm.DefaultMobileInit();
					
					List<Item> copy = new List<Item>( m.Items );
					for (int i=0;i<copy.Count;i++)
						pm.AddItem( copy[i] );
					
					CopyProps( pm, m );
					
					for (int i=0;i<m.Skills.Length;i++)
					{
						pm.Skills[i].Base = m.Skills[i].Base;
						pm.Skills[i].SetLockNoRelay( m.Skills[i].Lock );
					}
					
					World.Mobiles[m.Serial] = pm;
				}
			}
			
			if ( count > 0 )
			{
				NetState.ProcessDisposedQueue();
				World.Save();
			
				Console.WriteLine( "{0} players have been converted to PlayerMobile. {1}.", count, Core.Service ? "The server is now restarting" : "Press any key to restart the server" );
				
				if ( !Core.Service )
					Console.ReadKey( true );

				Core.Kill( true );
			}
			else
			{
				e.Mobile.SendMessage( "Couldn't find any Players to convert." );
			}
		}
        public static void Convert_OnCommand( CommandEventArgs e )
        {
            e.Mobile.SendMessage( "Converting all players to PlayerMobile.  You will be disconnected.  Please Restart the server after the world has finished saving." );
            ArrayList mobs = new ArrayList( World.Mobiles.Values );
            int count = 0;

            foreach ( Mobile m in mobs )
            {
                if ( m.Player && !(m is PlayerMobile ) )
                {
                    count++;
                    if ( m.NetState != null )
                        m.NetState.Dispose();

                    PlayerMobile pm = new PlayerMobile( m.Serial );
                    pm.DefaultMobileInit();

                    ArrayList copy = new ArrayList( m.Items );
                    for (int i=0;i<copy.Count;i++)
                        pm.AddItem( (Item)copy[i] );

                    CopyProps( pm, m );

                    for (int i=0;i<m.Skills.Length;i++)
                    {
                        pm.Skills[i].Base = m.Skills[i].Base;
                        pm.Skills[i].SetLockNoRelay( m.Skills[i].Lock );
                    }

                    World.Mobiles[m.Serial] = pm;
                }
            }

            if ( count > 0 )
            {
                NetState.ProcessDisposedQueue();
                World.Save();

                log.InfoFormat("{0} players have been converted to PlayerMobile.  Restarting the server.",
                               count);
                Core.Shutdown(true);
            }
            else
            {
                log.Info( "Couldn't find any Players to convert." );
            }
        }