Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

UoKit.com Форумы _ Вопросы по RunUO _ Верхняя и нижняя координаты

Автор: Blutto 6.8.2015, 14:30

Приветствую!
Подскажите пожалуйста, сервер RunUO 2.3, персонаж всё время проваливается под мостики и другие объекты которые расположены на 1 точку выше уровня земли, телепортеры входа в данжи парят в воздухе. В DATApatch указал расположение мул файлов и адрес к клиенту. В чём может быть проблема?

Автор: Soteric 6.8.2015, 16:39

Запость DataPath.cs

Автор: Blutto 6.8.2015, 16:47

Код
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:\uo\Ultima Online ML";
         */
        private static string CustomPath = @"D:\uo\Ultima Online ML";

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

Автор: Juzzver 6.8.2015, 17:54

для ML клиентов нужно TileMatrix изменить на патч для старых клиентов:

Scripts\Misc\MapDefinitions.cs

Цитата
TileMatrixPatch.Enabled = false; // OSI Client Patch 6.0.0.0
MultiComponentList.PostHSFormat = true; // OSI Client Patch 7.0.9.0

изменить на:
Код
            TileMatrixPatch.Enabled = true; // OSI Client Patch 6.0.0.0
            MultiComponentList.PostHSFormat = false; // OSI Client Patch 7.0.9.0


А еще лучше, ничего не менять, просто взять клиенты 7+ версии.
Например вот: 7.0.18.0 версия https://yadi.sk/d/RpaVzLARPF7TS

Автор: Blutto 13.8.2015, 16:48

Спасибо огромное!

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)