Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
118
Scripts/Misc/DataPath.cs
Normal file
118
Scripts/Misc/DataPath.cs
Normal file
@@ -0,0 +1,118 @@
|
||||
#region References
|
||||
using System;
|
||||
using System.IO;
|
||||
|
||||
using Microsoft.Win32;
|
||||
|
||||
using Ultima;
|
||||
#endregion
|
||||
|
||||
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 static string CustomPath = @"C:\Program Files\Ultima Online";
|
||||
*/
|
||||
private static readonly string CustomPath = Config.Get(@"DataPath.CustomPath", default(string));
|
||||
|
||||
static DataPath()
|
||||
{
|
||||
string path;
|
||||
|
||||
if (CustomPath != null)
|
||||
{
|
||||
path = CustomPath;
|
||||
}
|
||||
else if (!Core.Unix)
|
||||
{
|
||||
path = Files.LoadDirectory();
|
||||
}
|
||||
else
|
||||
{
|
||||
path = null;
|
||||
}
|
||||
|
||||
if (!String.IsNullOrWhiteSpace(path))
|
||||
{
|
||||
Core.DataDirectories.Add(path);
|
||||
}
|
||||
}
|
||||
|
||||
/* The following is a list of files which a required for proper execution:
|
||||
*
|
||||
* Multi.idx
|
||||
* Multi.mul
|
||||
* VerData.mul
|
||||
* TileData.mul
|
||||
* Map*.mul or Map*LegacyMUL.uop
|
||||
* StaIdx*.mul
|
||||
* Statics*.mul
|
||||
* MapDif*.mul
|
||||
* MapDifL*.mul
|
||||
* StaDif*.mul
|
||||
* StaDifL*.mul
|
||||
* StaDifI*.mul
|
||||
*/
|
||||
public static void Configure()
|
||||
{
|
||||
if (Core.DataDirectories.Count == 0 && !Core.Service)
|
||||
{
|
||||
Console.WriteLine("Enter the Ultima Online directory:");
|
||||
Console.Write("> ");
|
||||
|
||||
Core.DataDirectories.Add(Console.ReadLine());
|
||||
}
|
||||
|
||||
foreach (var path in Core.DataDirectories)
|
||||
{
|
||||
Files.SetMulPath(path);
|
||||
}
|
||||
|
||||
Utility.PushColor(ConsoleColor.DarkYellow);
|
||||
Console.WriteLine("DataPath: " + Core.DataDirectories[0]);
|
||||
Utility.PopColor();
|
||||
}
|
||||
|
||||
private static string GetPath(string subName, string keyName)
|
||||
{
|
||||
try
|
||||
{
|
||||
string keyString;
|
||||
|
||||
if (Core.Is64Bit)
|
||||
keyString = @"SOFTWARE\Wow6432Node\{0}";
|
||||
else
|
||||
keyString = @"SOFTWARE\{0}";
|
||||
|
||||
using (var key = Registry.LocalMachine.OpenSubKey(String.Format(keyString, subName)))
|
||||
{
|
||||
if (key == null)
|
||||
return null;
|
||||
|
||||
var 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user