ant2ne@Nedimare-01:~$ cat /runuo/devel/Scripts/Misc/DataPath.cs
using System;
using System.IO;
using Microsoft.Win32;
using Server;
namespace Server.Misc
{
public class DataPath
{
/* If you have not installed Ultima Online,
* or wish the server to use a separate set of datafiles,
* change the 'CustomPath' value, example:
*
* private const string CustomPath = @"C:\Program Files\Ultima Online";
*/
private const string CustomPath = @"/runuo/UOML_files";
//private static string CustomPath = null;
/* The following is a list of files which a required for proper execution:
*
* Multi.idx
* Multi.mul
* VerData.mul
* TileData.mul
* Map*.mul
* StaIdx*.mul
* Statics*.mul
* MapDif*.mul
* MapDifL*.mul
* StaDif*.mul
* StaDifL*.mul
* StaDifI*.mul
*/
public static void Configure()
{
string pathUO = GetPath( @"Origin Worlds Online\Ultima Online\1.0", "ExePath" );
string pathTD = GetPath( @"Origin Worlds Online\Ultima Online Third Dawn\1.0", "ExePath" ); //These refer to 2D & 3D, not the Third Dawn expansion
string pathKR = GetPath( @"Origin Worlds Online\Ultima Online\KR Legacy Beta", "ExePath" ); //After KR, This is the new registry key for the 2D client
string pathSA = GetPath( @"Electronic Arts\EA Games\Ultima Online Stygian Abyss Classic", "InstallDir" );
if ( CustomPath != null )
Core.DataDirectories.Add( CustomPath );
if ( pathUO != null )
Core.DataDirectories.Add( pathUO );
if ( pathTD != null )
Core.DataDirectories.Add( pathTD );
if ( pathKR != null )
Core.DataDirectories.Add( pathKR );
if ( pathSA != null )
Core.DataDirectories.Add( pathSA );
if ( Core.DataDirectories.Count == 0 && !Core.Service )
{
Console.WriteLine( "Enter the Ultima Online directory:" );
Console.Write( "> " );
Core.DataDirectories.Add( Console.ReadLine() );
}
}
private static string GetPath( string subName, string keyName )
{
try
{
string keyString;
if( Core.Is64Bit )
keyString = @"SOFTWARE\Wow6432Node\{0}";
else
keyString = @"SOFTWARE\{0}";
using( RegistryKey key = Registry.LocalMachine.OpenSubKey( String.Format( keyString, subName ) ) )
{
if( key == null )
return null;
string v = key.GetValue( keyName ) as string;
if( String.IsNullOrEmpty( v ) )
return null;
if ( keyName == "InstallDir" )
v = v + @"\";
v = Path.GetDirectoryName( v );
if ( String.IsNullOrEmpty( v ) )
return null;
return v;
}
}
catch
{
return null;
}
}
}
}
ant2ne@Nedimare-01:/runuo/UOML_files$ ls
map0.mul map4.mul mapdif2.mul mapdifl2.mul multi.mul stadif1.mul stadifi1.mul stadifl1.mul staidx2.mul statics0.mul statics4.mul
map2.mul mapdif0.mul mapdifl0.mul maps needed.txt stadif2.mul stadifi2.mul stadifl2.mul staidx3.mul statics2.mul tiledata.mul
map3.mul mapdif1.mul mapdifl1.mul multi.idx stadif0.mul stadifi0.mul stadifl0.mul staidx0.mul staidx4.mul statics3.mul
ant2ne@Nedimare-01:/runuo/UOML_files$ pwd
/runuo/UOML_files
TileMatrixPatch.Enabled = false; // OSI Client Patch 6.0.0.0
MultiComponentList.PostHSFormat = true; // OSI Client Patch 7.0.9.0
YesI'm thinking UOML is client 5.0.6 or something like that. I'm not sure exactly what you are telling me to change in MapDefinitions.cs. I suppose the simplest and broadest solution is to patch to 7.0.9, then put the needed map files on the runuo server and tell all the players to patch to 7.0.9 also. Right?
LOL! there used to be, then we switched to this awesome new forum and stuff, then a bunch of stuff stopped working.There is documentation?
Well, there was never any official documentation.LOL! there used to be, then we switched to this awesome new forum and stuff, then a bunch of stuff stopped working.