UoKit.com Форумы > Ultima Online : Dev > RunUO Server > Вопросы по RunUO
Страницы: 1, 2, 3
Vosmerik
Доброго времени суток.
У меня такой вопрос, как сделать в РунУо что б персонаж не проваливался под землю, в файле MapDefinitions.cs в строках:
TileMatrixPatch.Enabled = false; // OSI Client Patch 6.0.0.0 и

MultiComponentList.PostHSFormat = true; // OSI Client Patch 7.0.9.0

true, false и там и там пробовал менять ничего не получается. Продавцы тоже все под землей.
Кто сможет подсказать в чем проблема?

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 static string CustomPath = @"D:\games\Electronic Arts\Ultima Online Classic";
*/
private static string CustomPath = @"D:\games\Electronic Arts\Ultima Online Classic";

/* 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()
{
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" );
string pathHS = GetPath( @"Electronic Arts\EA Games\Ultima Online 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 ( pathHS != null )
Core.DataDirectories.Add( pathHS );

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;
}
}
}
}

MapDefinitions.cs
using System;
using Server;

namespace Server.Misc
{
public class MapDefinitions
{
public static void Configure()
{
/* Here we configure all maps. Some notes:
*
* 1) The first 32 maps are reserved for core use.
* 2) Map 0x7F is reserved for core use.
* 3) Map 0xFF is reserved for core use.
* 4) Changing or removing any predefined maps may cause server instability.
*/

RegisterMap( 0, 0, 0, 7168, 4096, 4, "Felucca", MapRules.FeluccaRules );
RegisterMap( 1, 1, 1, 7168, 4096, 0, "Trammel", MapRules.TrammelRules );
RegisterMap( 2, 2, 2, 2304, 1600, 1, "Ilshenar", MapRules.TrammelRules );
RegisterMap( 3, 3, 3, 2560, 2048, 1, "Malas", MapRules.TrammelRules );
RegisterMap( 4, 4, 4, 1448, 1448, 1, "Tokuno", MapRules.TrammelRules );
RegisterMap( 5, 5, 5, 1280, 4096, 1, "TerMur", MapRules.TrammelRules );

RegisterMap( 0x7F, 0x7F, 0x7F, Map.SectorSize, Map.SectorSize, 1, "Internal", MapRules.Internal );

/* Example of registering a custom map:
* RegisterMap( 32, 0, 0, 6144, 4096, 3, "Iceland", MapRules.FeluccaRules );
*
* Defined:
* RegisterMap( <index>, <mapID>, <fileIndex>, <width>, <height>, <season>, <name>, <rules> );
* - <index> : An unreserved unique index for this map
* - <mapID> : An identification number used in client communications. For any visible maps, this value must be from 0-5
* - <fileIndex> : A file identification number. For any visible maps, this value must be from 0-5
* - <width>, <height> : Size of the map (in tiles)
* - <season> : Season of the map. 0 = Spring, 1 = Summer, 2 = Fall, 3 = Winter, 4 = Desolation
* - <name> : Reference name for the map, used in props gump, get/set commands, region loading, etc
* - <rules> : Rules and restrictions associated with the map. See documentation for details
*/

TileMatrixPatch.Enabled = true; // OSI Client Patch 6.0.0.0

MultiComponentList.PostHSFormat = false; // OSI Client Patch 7.0.9.0
}

public static void RegisterMap( int mapIndex, int mapID, int fileIndex, int width, int height, int season, string name, MapRules rules )
{
Map newMap = new Map( mapID, mapIndex, fileIndex, width, height, season, name, rules );

Map.Maps[mapIndex] = newMap;
Map.AllMaps.Add( newMap );
}
}
}
Вверх
Mirage
ЭЭэээ...
Берем клиент игры. Берем ранку. В файле DataPath.cfg указываем путь до фалов игры. Играем и не проваливаемся никуда.
Работает на 6-7.30 клиентах.
Вверх
Vosmerik
Цитата(Mirage @ 20.5.2017, 9:52)

ЭЭэээ...
Берем клиент игры. Берем ранку. В файле DataPath.cfg указываем путь до фалов игры. Играем и не проваливаемся никуда.
Работает на 6-7.30 клиентах.


в DataPath.cfg путь указан я уже все перепробовал, раньше ставил все норм было. Может что то упустил.
Вверх
Juzzver
Какая версия клиента используется для входа на сервер?
Вверх
Vosmerik
Цитата(Juzzver @ 20.5.2017, 12:50)

Какая версия клиента используется для входа на сервер?


4 - 7.0.53

ваще в принципе вроде исправилось, но вопрос не подскажешь как сделать что бы армор можно было делать из разных сталей а не только с простого метала ?
Вверх
Juzzver
Для клиентов выше 7.0.9 версии необходимо включить PostHSFormat, а MatrixPatch отключить:
Код

TileMatrixPatch.Enabled = false; // OSI Client Patch 6.0.0.0
MultiComponentList.PostHSFormat = true; // OSI Client Patch 7.0.9.0

Цитата
ваще в принципе вроде исправилось, но вопрос не подскажешь как сделать что бы армор можно было делать из разных сталей а не только с простого метала ?

В крафт гампе блексмита, в левом нижнем углу есть кнопка для выбора металла. По умолчанию там светится "IRON" кнопка.
Чтобы иметь возможность выбирать более высшие металлы, необходим навык Mining.
Вверх
Vosmerik
Цитата(Juzzver @ 20.5.2017, 14:44)

Для клиентов выше 7.0.9 версии необходимо включить PostHSFormat, а MatrixPatch отключить:
Код

TileMatrixPatch.Enabled = false; // OSI Client Patch 6.0.0.0
MultiComponentList.PostHSFormat = true; // OSI Client Patch 7.0.9.0


В крафт гампе блексмита, в левом нижнем углу есть кнопка для выбора металла. По умолчанию там светится "IRON" кнопка.
Чтобы иметь возможность выбирать более высшие металлы, необходим навык Mining.



Приветствую !
менял по разному c true на false и на оборот и так и сяк БЛИН все равно чего то под землю стал проваливаться в чем еще причини не подскажеш????
Вверх
Juzzver
Цитата
чем еще причини не подскажеш????

Проблемы могут возникать только из-за неверно указанного пути к папке с игрой в DataPatch.cs
Или же из-за не верно выбранного TileMatrix для разных клиентов:
Цитата

Для клиентов выше 7.0.9 версии необходимо включить PostHSFormat, а MatrixPatch отключить:
Код

TileMatrixPatch.Enabled = false; // OSI Client Patch 6.0.0.0
MultiComponentList.PostHSFormat = true; // OSI Client Patch 7.0.9.0


Если делал и не сработало - возможно не сохранил или не скомпилировал или еще чего не так сделал. Повтори действия повнимательнее.

Есть еще одна возможная ситуация, когда сервер берет данные из одной сборки уо, а игра ведется на сервере - совсем на другой, при этом так же возможны несоответствия, косяки и проваливания.
Вверх
Vosmerik
БЛИН !!! тема не закрыта, кто может направить на путь истинный уже пробовал менять в DataPath по разному с true на false и наоборот и так и сяк (и с бубеном плясал во круг компа) все равно на сервере все под землей и я проваливаюсь, почему это происходит ведь раньше все РАБОТАЛО достаточно было только в DataPath поменять в каких то строках true на false или на оборот и все норм так что ж щас произошло что еще и где нужно изменить или может клиент надо подобрать нормальный (клиент использую UOML версия 4.0.11с), путь к игре прописан в DataPath, RunUO2.3r987_Full


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 static string CustomPath = @"C:\UO";
*/
private static string CustomPath = @"C:\UO";

/* 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()
{
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" );
string pathHS = GetPath( @"Electronic Arts\EA Games\Ultima Online 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 ( pathHS != null )
Core.DataDirectories.Add( pathHS );

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;
}
}
}
}


MapDefinitions.cs

using System;
using Server;

namespace Server.Misc
{
public class MapDefinitions
{
public static void Configure()
{
/* Here we configure all maps. Some notes:
*
* 1) The first 32 maps are reserved for core use.
* 2) Map 0x7F is reserved for core use.
* 3) Map 0xFF is reserved for core use.
* 4) Changing or removing any predefined maps may cause server instability.
*/

RegisterMap( 0, 0, 0, 7168, 4096, 4, "Felucca", MapRules.FeluccaRules );
RegisterMap( 1, 1, 1, 7168, 4096, 0, "Trammel", MapRules.TrammelRules );
RegisterMap( 2, 2, 2, 2304, 1600, 1, "Ilshenar", MapRules.TrammelRules );
RegisterMap( 3, 3, 3, 2560, 2048, 1, "Malas", MapRules.TrammelRules );
RegisterMap( 4, 4, 4, 1448, 1448, 1, "Tokuno", MapRules.TrammelRules );
RegisterMap( 5, 5, 5, 1280, 4096, 1, "TerMur", MapRules.TrammelRules );

RegisterMap( 0x7F, 0x7F, 0x7F, Map.SectorSize, Map.SectorSize, 1, "Internal", MapRules.Internal );

/* Example of registering a custom map:
* RegisterMap( 32, 0, 0, 6144, 4096, 3, "Iceland", MapRules.FeluccaRules );
*
* Defined:
* RegisterMap( <index>, <mapID>, <fileIndex>, <width>, <height>, <season>, <name>, <rules> );
* - <index> : An unreserved unique index for this map
* - <mapID> : An identification number used in client communications. For any visible maps, this value must be from 0-5
* - <fileIndex> : A file identification number. For any visible maps, this value must be from 0-5
* - <width>, <height> : Size of the map (in tiles)
* - <season> : Season of the map. 0 = Spring, 1 = Summer, 2 = Fall, 3 = Winter, 4 = Desolation
* - <name> : Reference name for the map, used in props gump, get/set commands, region loading, etc
* - <rules> : Rules and restrictions associated with the map. See documentation for details
*/

TileMatrixPatch.Enabled = true; // OSI Client Patch 6.0.0.0

MultiComponentList.PostHSFormat = true; // OSI Client Patch 7.0.9.0
}

public static void RegisterMap( int mapIndex, int mapID, int fileIndex, int width, int height, int season, string name, MapRules rules )
{
Map newMap = new Map( mapID, mapIndex, fileIndex, width, height, season, name, rules );

Map.Maps[mapIndex] = newMap;
Map.AllMaps.Add( newMap );
}
Подскажите кто разбирается ???
Вверх
Soteric
Попробуй удалить эти строчки:
Код
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 ( pathHS != null )
Core.DataDirectories.Add( pathHS );

if ( Core.DataDirectories.Count == 0 && !Core.Service )
{
Console.WriteLine( "Enter the Ultima Online directory:" );
Console.Write( "> " );

Core.DataDirectories.Add( Console.ReadLine() );
}

А здесь поставить false
Код
TileMatrixPatch.Enabled = false; // OSI Client Patch 6.0.0.0

MultiComponentList.PostHSFormat = false; // OSI Client Patch 7.0.9.0

Вверх
Invision Power Board © 2001-2024 Invision Power Services, Inc.
Version for Pocket PC © 2006-2024, IPBest Studio.