Здравствуйте, гость ( Вход | Регистрация )

> Надо помощь в RunUO!
Dragon Killer
сообщение 12.5.2015, 15:18
Сообщение #1


***

Novice
Сообщений: 63
Регистрация: 4.4.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 16.748
Возраст: 29



И так пытаюсь разобраться в файлах RanUO сам не скриптер но как по мне ранка этот как лего можно склепать что захочешь, ну по крайней мере я так надеюсь ... FAQ толкового нет ... Хочу вот разобраться что к чему , настроить шард под свои нужды что то добавить что то убрать ....

Помогите разобраться с файлами что за что отвечает файл ExpansionInfo.cs и давайте его разложим его по полочкам за что отвечают флаги и ну вообщем кую функцию они выполняют что включают и отключают хочу знать все ... прошу не ленится а реально описать файл ..... и помочь разобраться...

Код

using System;

namespace Server
{
    public enum Expansion
    {
        None,
        T2A,
        UOR,
        UOTD,
        LBR,        
        AOS,
        SE,
        ML,
        SA,
        HS
    }

    [Flags]
    public enum ClientFlags
    {
        None    = 0x00000000,
        Felucca    = 0x00000001,
        Trammel    = 0x00000002,
        Ilshenar= 0x00000004,
        Malas    = 0x00000008,
        Tokuno    = 0x00000010,
        TerMur    = 0x00000020,
        Unk1    = 0x00000040,
        Unk2    = 0x00000080,
        UOTD    = 0x00000100
    }

    [Flags]
    public enum FeatureFlags
    {
        None                = 0x00000000,
        T2A                    = 0x00000001,
        UOR                    = 0x00000002,
        UOTD                = 0x00000004,
        LBR                    = 0x00000008,
        AOS                    = 0x00000010,
        SixthCharacterSlot    = 0x00000020,
        SE                    = 0x00000040,
        ML                    = 0x00000080,
        EigthAge            = 0x00000100,
        NinthAge            = 0x00000200, /* Crystal/Shadow Custom House Tiles */
        TenthAge            = 0x00000400,
        IncreasedStorage    = 0x00000800, /* Increased Housing/Bank Storage */
        SeventhCharacterSlot= 0x00001000,
        RoleplayFaces        = 0x00002000,
        TrialAccount        = 0x00004000,
        LiveAccount            = 0x00008000,
        SA                    = 0x00010000,
        HS                    = 0x00020000,
        Gothic                = 0x00040000,
        Rustic                = 0x00080000,

        ExpansionNone    = None,
        ExpansionT2A    = T2A,
        ExpansionUOR    = ExpansionT2A    | UOR,
        ExpansionUOTD    = ExpansionUOR    | UOTD,
        ExpansionLBR    = ExpansionUOTD    | LBR,
        ExpansionAOS    = ExpansionLBR    | AOS    | LiveAccount,
        ExpansionSE        = ExpansionAOS    | SE,
        ExpansionML        = ExpansionSE    | ML    | NinthAge,
        ExpansionSA        = ExpansionML    | SA    | Gothic    | Rustic,
        ExpansionHS        = ExpansionSA    | HS
    }

    [Flags]
    public enum    CharacterListFlags
    {
        None                    = 0x00000000,
        Unk1                    = 0x00000001,
        OverwriteConfigButton    = 0x00000002,
        OneCharacterSlot        = 0x00000004,
        ContextMenus            = 0x00000008,
        SlotLimit                = 0x00000010,
        AOS                        = 0x00000020,
        SixthCharacterSlot        = 0x00000040,
        SE                        = 0x00000080,
        ML                        = 0x00000100,
        Unk2                    = 0x00000200,
        UO3DClientType            = 0x00000400,
        Unk3                    = 0x00000800,
        SeventhCharacterSlot    = 0x00001000,
        Unk4                    = 0x00002000,
        NewMovementSystem        = 0x00004000,
        NewFeluccaAreas            = 0x00008000,

        ExpansionNone    = ContextMenus, //
        ExpansionT2A    = ContextMenus, //
        ExpansionUOR    = ContextMenus, // None
        ExpansionUOTD    = ContextMenus, //
        ExpansionLBR    = ContextMenus, //
        ExpansionAOS    = ContextMenus    | AOS,
        ExpansionSE        = ExpansionAOS    | SE,
        ExpansionML        = ExpansionSE    | ML,
        ExpansionSA        = ExpansionML,
        ExpansionHS        = ExpansionSA
    }

    public class ExpansionInfo
    {
        public static ExpansionInfo[] Table { get { return m_Table; } }
        private static ExpansionInfo[] m_Table = new ExpansionInfo[]
            {
                new ExpansionInfo( 0, "None",                    ClientFlags.None,
                FeatureFlags.ExpansionNone,    CharacterListFlags.ExpansionNone,    0x0000 ),
                new ExpansionInfo( 1, "The Second Age",            ClientFlags.Felucca,
            FeatureFlags.ExpansionT2A,    CharacterListFlags.ExpansionT2A,    0x0000 ),
                new ExpansionInfo( 2, "Renaissance",            ClientFlags.Trammel,
            FeatureFlags.ExpansionUOR,    CharacterListFlags.ExpansionUOR,    0x0000 ),
                new ExpansionInfo( 3, "Third Dawn",                ClientFlags.Ilshenar,
            FeatureFlags.ExpansionUOTD,    CharacterListFlags.ExpansionUOTD,    0x0000 ),
                new ExpansionInfo( 4, "Blackthorn's Revenge",    ClientFlags.Ilshenar,
            FeatureFlags.ExpansionLBR,    CharacterListFlags.ExpansionLBR,    0x0000 ),
                new ExpansionInfo( 5, "Age of Shadows",            ClientFlags.Malas,
                FeatureFlags.ExpansionAOS,    CharacterListFlags.ExpansionAOS,    0x0000 ),
                new ExpansionInfo( 6, "Samurai Empire",            ClientFlags.Tokuno,
                FeatureFlags.ExpansionSE,    CharacterListFlags.ExpansionSE,        0x00C0 ), // 0x20 | 0x80
                new ExpansionInfo( 7, "Mondain's Legacy",        new ClientVersion( "5.0.0a" ),
    FeatureFlags.ExpansionML,    CharacterListFlags.ExpansionML,        0x02C0 ), // 0x20 | 0x80 | 0x200
                new ExpansionInfo( 8, "Stygian Abyss",            ClientFlags.TerMur,
                FeatureFlags.ExpansionSA,    CharacterListFlags.ExpansionSA,
        0xD02C0 ), // 0x20 | 0x80 | 0x200 | 0x10000 | 0x40000 | 0x80000
                new ExpansionInfo( 9, "High Seas",                new ClientVersion( "7.0.9.0" ),
    FeatureFlags.ExpansionHS,
    CharacterListFlags.ExpansionHS,        0xD02C0 ) // 0x20 | 0x80 | 0x200 | 0x10000 | 0x40000 | 0x80000
            };

        private string m_Name;
        private int m_ID, m_CustomHousingFlag;

        private ClientFlags m_ClientFlags;
        private FeatureFlags m_SupportedFeatures;
        private CharacterListFlags m_CharListFlags;

        private ClientVersion m_RequiredClient;    // Used as an alternative to the flags

        public string Name{ get{ return m_Name; } }
        public int ID{ get{ return m_ID; } }
        public ClientFlags ClientFlags{ get{ return m_ClientFlags; } }
        public FeatureFlags SupportedFeatures{ get{ return m_SupportedFeatures; } }
        public CharacterListFlags CharacterListFlags { get { return m_CharListFlags; } }
        public int CustomHousingFlag { get{ return m_CustomHousingFlag; } }
        public ClientVersion RequiredClient { get { return m_RequiredClient; } }

        public ExpansionInfo( int id, string name, ClientFlags clientFlags, FeatureFlags supportedFeatures, CharacterListFlags charListFlags, int customHousingFlag )
        {
            m_Name = name;
            m_ID = id;
            m_ClientFlags = clientFlags;
            m_SupportedFeatures = supportedFeatures;
            m_CharListFlags = charListFlags;
            m_CustomHousingFlag = customHousingFlag;
        }

        public ExpansionInfo( int id, string name, ClientVersion requiredClient, FeatureFlags supportedFeatures, CharacterListFlags charListFlags, int customHousingFlag )
        {
            m_Name = name;
            m_ID = id;
            m_SupportedFeatures = supportedFeatures;
            m_CharListFlags = charListFlags;
            m_CustomHousingFlag = customHousingFlag;
            m_RequiredClient = requiredClient;
        }

        public static ExpansionInfo GetInfo( Expansion ex )
        {
            return GetInfo( (int)ex );
        }

        public static ExpansionInfo GetInfo( int ex )
        {
            int v = (int)ex;

            if( v < 0 || v >= m_Table.Length )
                v = 0;

            return m_Table[v];
        }

        public static ExpansionInfo CurrentExpansion { get { return GetInfo( Core.Expansion ); } }

        public override string ToString()
        {
            return m_Name;
        }
    }
}


Сообщение отредактировал Juzzver - 12.5.2015, 20:56
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
Soteric
сообщение 12.5.2015, 16:03
Сообщение #2


********

Master
Сообщений: 1.377
Регистрация: 7.8.2006
Группа: Пользователи
Наличность: 509
Пользователь №: 7.166



Здесь ничего не настраивается. Это скорее шаблон/инструкция для сервера как вести себя при подключении клиентов определенных версий. Например, клиент должен знать сколько персонажей на аккаунте поддерживается сервером: шесть как в старых версиях или семь как в новых. Если в Account классе определено, что на аккаунте можно завести семь персонажей, то сервер включит в ответ флаг SeventhCharacterSlot, если шесть, то флаг SixthCharacterSlot.

Однако рулить фичами отсюда не надо. Это не файл настройки, а описание протокола по которому сервер и клиент согласуют свои настройки. Если здесь что-то поправить, то может случиться, что клиент и сервер перестанут понимать друг друга.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме
Dragon Killer   Надо помощь в RunUO!   12.5.2015, 15:18
Aimed   Я довольно плотно пишу на ранке уже 2 года, ниразу...   12.5.2015, 16:57
Dragon Killer   типо сфер ... но и в направлении оси хочу откзатся...   12.5.2015, 17:18
Aimed   типо сфер ... но и в направлении оси хочу откзатс...   12.5.2015, 17:38
Soteric   В Scripts\Data\CurrentExpansion.cs priva...   12.5.2015, 17:37
Dragon Killer   там язык какой то рагульный ,я когда в ранку смотр...   12.5.2015, 17:41
Aimed   там язык какой то рагульный ,я когда в ранку смот...   12.5.2015, 18:05
Dragon Killer   Soteric это сработало но уникорн стал как обычн...   12.5.2015, 18:04
Aimed   это сработало но уникорн стал как обычная белая л...   12.5.2015, 18:12
Dragon Killer   ну с каждым днем ноли добавляются типо 0+0 ..... д...   12.5.2015, 18:08
Soteric   А уникорны точно были в Pre-AOS?   12.5.2015, 18:28
Aimed   А уникорны точно были в Pre-AOS? Не было их.   12.5.2015, 18:30
Juzzver   Это касается всей папки Server в целом, куда лезт...   12.5.2015, 18:32
Dragon Killer   абалдеть нема слов сам бог ранки ответил ) спасиб...   12.5.2015, 18:41


Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 17.7.2025, 5:11
Designed by Nickostyle